diff options
author | Jason Sams <rjsams@android.com> | 2009-09-25 14:51:22 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-09-25 14:51:22 -0700 |
commit | a9e7a05b84470257637c97d65f6562aa832c66ef (patch) | |
tree | 04a3175485ae7492c3387003c244953b6880c514 /libs/rs/rsProgramFragmentStore.cpp | |
parent | a0cad2f5d19d95cfe496ebb82f3227dd4ed7c169 (diff) |
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.
Diffstat (limited to 'libs/rs/rsProgramFragmentStore.cpp')
-rw-r--r-- | libs/rs/rsProgramFragmentStore.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libs/rs/rsProgramFragmentStore.cpp b/libs/rs/rsProgramFragmentStore.cpp index 317948496777..39802c7b9d1a 100644 --- a/libs/rs/rsProgramFragmentStore.cpp +++ b/libs/rs/rsProgramFragmentStore.cpp @@ -24,8 +24,8 @@ using namespace android; using namespace android::renderscript; -ProgramFragmentStore::ProgramFragmentStore(Element *in, Element *out) : - Program(in, out) +ProgramFragmentStore::ProgramFragmentStore(Context *rsc, Element *in, Element *out) : + Program(rsc, in, out) { mDitherEnable = true; mBlendEnable = false; @@ -213,7 +213,7 @@ ProgramFragmentStoreState::~ProgramFragmentStoreState() void ProgramFragmentStoreState::init(Context *rsc, int32_t w, int32_t h) { - ProgramFragmentStore *pfs = new ProgramFragmentStore(NULL, NULL); + ProgramFragmentStore *pfs = new ProgramFragmentStore(rsc, NULL, NULL); mDefault.set(pfs); } @@ -224,7 +224,7 @@ namespace renderscript { void rsi_ProgramFragmentStoreBegin(Context * rsc, RsElement in, RsElement out) { delete rsc->mStateFragmentStore.mPFS; - rsc->mStateFragmentStore.mPFS = new ProgramFragmentStore((Element *)in, (Element *)out); + rsc->mStateFragmentStore.mPFS = new ProgramFragmentStore(rsc, (Element *)in, (Element *)out); } |