From c8538ade8df2c2f013f8b93094912057ee1cc417 Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Tue, 22 May 2012 11:54:06 -0700 Subject: Don't clear the functor at every draw instead clear functors at invoke time, and let them detach themselves as needed. bug:6511995 Change-Id: I9115fcadffb27eb850c1d1773c098d3d2e22788b --- libs/hwui/OpenGLRenderer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libs') diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 50f5d57..766a199 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -170,7 +170,6 @@ void OpenGLRenderer::prepare(bool opaque) { void OpenGLRenderer::prepareDirty(float left, float top, float right, float bottom, bool opaque) { mCaches.clearGarbage(); - mFunctors.clear(); mSnapshot = new Snapshot(mFirstSnapshot, SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag); @@ -303,6 +302,8 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) { status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) { interrupt(); + detachFunctor(functor); + if (mDirtyClip) { setScissorFromClip(); } -- cgit v1.1