Support nested display lists.
Change-Id: I3815a2832fc0f722c668ba8f51c5f177edb77c94
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp
index 23ccef6..770e596 100644
--- a/libs/hwui/DisplayListRenderer.cpp
+++ b/libs/hwui/DisplayListRenderer.cpp
@@ -226,6 +226,10 @@
(SkRegion::Op) getInt());
}
break;
+ case DrawDisplayList: {
+ renderer.drawDisplayList(getDisplayList());
+ }
+ break;
case DrawBitmap: {
renderer.drawBitmap(getBitmap(), getFloat(), getFloat(), getPaint());
}
@@ -453,6 +457,11 @@
return OpenGLRenderer::clipRect(left, top, right, bottom, op);
}
+void DisplayListRenderer::drawDisplayList(DisplayList* displayList) {
+ addOp(DisplayList::DrawDisplayList);
+ addDisplayList(displayList);
+}
+
void DisplayListRenderer::drawBitmap(SkBitmap* bitmap, float left, float top,
SkPaint* paint) {
addOp(DisplayList::DrawBitmap);