diff options
Diffstat (limited to 'libs/hwui')
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 22 | ||||
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 18 | ||||
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.h | 1 |
3 files changed, 3 insertions, 38 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index d808735..b730d30 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -409,15 +409,6 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) { for (size_t i = 0; i < count; i++) { Functor* f = functors.itemAt(i); result |= (*f)(DrawGlInfo::kModeProcess, &info); - - if (result & DrawGlInfo::kStatusDraw) { - Rect localDirty(info.dirtyLeft, info.dirtyTop, info.dirtyRight, info.dirtyBottom); - dirty.unionWith(localDirty); - } - - if (result & DrawGlInfo::kStatusInvoke) { - mFunctors.add(f); - } } resume(); } @@ -461,19 +452,10 @@ status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) { interrupt(); // call functor immediately after GL state setup - status_t result = (*functor)(DrawGlInfo::kModeDraw, &info); - - if (result != DrawGlInfo::kStatusDone) { - Rect localDirty(info.dirtyLeft, info.dirtyTop, info.dirtyRight, info.dirtyBottom); - dirty.unionWith(localDirty); - - if (result & DrawGlInfo::kStatusInvoke) { - mFunctors.add(functor); - } - } + (*functor)(DrawGlInfo::kModeDraw, &info); resume(); - return result | DrawGlInfo::kStatusDrew; + return DrawGlInfo::kStatusDrew; } /////////////////////////////////////////////////////////////////////////////// diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 8ebffc2..017fb56 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -411,7 +411,6 @@ void CanvasContext::drawDisplayList(RenderNode* displayList, Rect* dirty) { Rect outBounds; status |= mCanvas->drawDisplayList(displayList, outBounds); - handleFunctorStatus(status, outBounds); // TODO: Draw debug info // TODO: Performance tracking @@ -448,22 +447,7 @@ void CanvasContext::invokeFunctors() { makeCurrent(); Rect dirty; - int status = mCanvas->invokeFunctors(dirty); - handleFunctorStatus(status, dirty); -} - -void CanvasContext::handleFunctorStatus(int status, const Rect& redrawClip) { - if (status & DrawGlInfo::kStatusDraw) { - // TODO: Invalidate the redrawClip - // Do we need to post to ViewRootImpl like the current renderer? - // Can we just enqueue ourselves to re-invoke the same display list? - // Something else entirely? Does ChromiumView still want this in a - // RenderThread world? - } - - if (status & DrawGlInfo::kStatusInvoke) { - queueFunctorsTask(); - } + mCanvas->invokeFunctors(dirty); } void CanvasContext::removeFunctorsTask() { diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h index e3fdf97..746c1bf 100644 --- a/libs/hwui/renderthread/CanvasContext.h +++ b/libs/hwui/renderthread/CanvasContext.h @@ -82,7 +82,6 @@ private: friend class InvokeFunctorsTask; void invokeFunctors(); - void handleFunctorStatus(int status, const Rect& redrawClip); void removeFunctorsTask(); void queueFunctorsTask(int delayMs = FUNCTOR_PROCESS_DELAY); |