diff options
Diffstat (limited to 'libs/hwui/Layer.cpp')
-rw-r--r-- | libs/hwui/Layer.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp index 0267a66a39a3..63bb73f12775 100644 --- a/libs/hwui/Layer.cpp +++ b/libs/hwui/Layer.cpp @@ -165,6 +165,9 @@ void Layer::defer() { dirtyRect.right, dirtyRect.bottom, !isBlend()); displayList->defer(deferredState, 0); + + deferredUpdateScheduled = false; + displayList = NULL; } void Layer::flush() { @@ -183,5 +186,21 @@ void Layer::flush() { } } +void Layer::render() { + renderer->setViewport(layer.getWidth(), layer.getHeight()); + renderer->prepareDirty(dirtyRect.left, dirtyRect.top, dirtyRect.right, dirtyRect.bottom, + !isBlend()); + + renderer->drawDisplayList(displayList, dirtyRect, DisplayList::kReplayFlag_ClipChildren); + + renderer->finish(); + renderer = NULL; + + dirtyRect.setEmpty(); + + deferredUpdateScheduled = false; + displayList = NULL; +} + }; // namespace uirenderer }; // namespace android |