diff options
author | 2014-03-26 15:10:40 -0700 | |
---|---|---|
committer | 2014-03-27 10:00:04 -0700 | |
commit | 668f0e38ef0277d55d3118af37e17b8c435df85c (patch) | |
tree | d0703be6cce376c8a982d7c491445d2e94009375 /libs/hwui/Layer.cpp | |
parent | bcad68ad80e5a44e5dc6988eddb8acabdc01a737 (diff) |
Async drawing!
Change-Id: I7e728356f58af88174328a8c0b90d27b128bfe01
Diffstat (limited to 'libs/hwui/Layer.cpp')
-rw-r--r-- | libs/hwui/Layer.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp index bd9bfe95c057..4457c61bd736 100644 --- a/libs/hwui/Layer.cpp +++ b/libs/hwui/Layer.cpp @@ -58,6 +58,7 @@ Layer::~Layer() { delete[] mesh; delete deferredList; + delete renderer; } uint32_t Layer::computeIdealWidth(uint32_t layerWidth) { @@ -68,6 +69,13 @@ uint32_t Layer::computeIdealHeight(uint32_t layerHeight) { return uint32_t(ceilf(layerHeight / float(LAYER_SIZE)) * LAYER_SIZE); } +void Layer::requireRenderer() { + if (!renderer) { + renderer = new LayerRenderer(this); + renderer->initProperties(); + } +} + bool Layer::resize(const uint32_t width, const uint32_t height) { uint32_t desiredWidth = computeIdealWidth(width); uint32_t desiredHeight = computeIdealWidth(height); @@ -207,7 +215,6 @@ void Layer::defer() { } void Layer::cancelDefer() { - renderer = NULL; displayList = NULL; deferredUpdateScheduled = false; if (deferredList) { @@ -226,7 +233,6 @@ void Layer::flush() { deferredList->flush(*renderer, dirtyRect); renderer->finish(); - renderer = NULL; dirtyRect.setEmpty(); displayList = NULL; @@ -241,7 +247,6 @@ void Layer::render() { renderer->drawDisplayList(displayList, dirtyRect, RenderNode::kReplayFlag_ClipChildren); renderer->finish(); - renderer = NULL; dirtyRect.setEmpty(); |