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);