From a9e7a05b84470257637c97d65f6562aa832c66ef Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Fri, 25 Sep 2009 14:51:22 -0700 Subject: Improve renderscript context teardown. Track object in the system and then force their cleanup by releasing all user references once destroy context is called. Java layer will no longer send destroy notifications for objects garbage collected once a context is destroyed. --- libs/rs/rsProgramVertex.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libs/rs/rsProgramVertex.cpp') diff --git a/libs/rs/rsProgramVertex.cpp b/libs/rs/rsProgramVertex.cpp index dda56d7..9eb32ff 100644 --- a/libs/rs/rsProgramVertex.cpp +++ b/libs/rs/rsProgramVertex.cpp @@ -24,8 +24,8 @@ using namespace android; using namespace android::renderscript; -ProgramVertex::ProgramVertex(Element *in, Element *out) : - Program(in, out) +ProgramVertex::ProgramVertex(Context *rsc, Element *in, Element *out) : + Program(rsc, in, out) { mTextureMatrixEnable = false; mLightCount = 0; @@ -141,7 +141,7 @@ void ProgramVertexState::init(Context *rsc, int32_t w, int32_t h) rsi_TypeAdd(rsc, RS_DIMENSION_X, 48); mAllocType = rsi_TypeCreate(rsc); - ProgramVertex *pv = new ProgramVertex(NULL, NULL); + ProgramVertex *pv = new ProgramVertex(rsc, NULL, NULL); Allocation *alloc = (Allocation *)rsi_AllocationCreateTyped(rsc, mAllocType); mDefaultAlloc.set(alloc); mDefault.set(pv); @@ -163,7 +163,7 @@ namespace renderscript { void rsi_ProgramVertexBegin(Context *rsc, RsElement in, RsElement out) { delete rsc->mStateVertex.mPV; - rsc->mStateVertex.mPV = new ProgramVertex((Element *)in, (Element *)out); + rsc->mStateVertex.mPV = new ProgramVertex(rsc, (Element *)in, (Element *)out); } RsProgramVertex rsi_ProgramVertexCreate(Context *rsc) -- cgit v1.1