diff options
Diffstat (limited to 'libs/hwui/DisplayListRenderer.cpp')
| -rw-r--r-- | libs/hwui/DisplayListRenderer.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index 0dd9c5a..23ccef6 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -169,7 +169,8 @@ void DisplayList::replay(OpenGLRenderer& renderer) { int saveCount = renderer.getSaveCount() - 1; while (!mReader.eof()) { - switch (mReader.readInt()) { + int op = mReader.readInt(); + switch (op) { case AcquireContext: { renderer.acquireContext(); } @@ -195,6 +196,11 @@ void DisplayList::replay(OpenGLRenderer& renderer) { getPaint(), getInt()); } break; + case SaveLayerAlpha: { + renderer.saveLayerAlpha(getFloat(), getFloat(), getFloat(), getFloat(), + getInt(), getInt()); + } + break; case Translate: { renderer.translate(getFloat(), getFloat()); } @@ -400,6 +406,15 @@ int DisplayListRenderer::saveLayer(float left, float top, float right, float bot return OpenGLRenderer::save(flags); } +int DisplayListRenderer::saveLayerAlpha(float left, float top, float right, float bottom, + int alpha, int flags) { + addOp(DisplayList::SaveLayerAlpha); + addBounds(left, top, right, bottom); + addInt(alpha); + addInt(flags); + return OpenGLRenderer::save(flags); +} + void DisplayListRenderer::translate(float dx, float dy) { addOp(DisplayList::Translate); addPoint(dx, dy); |
