Add support for arcs.

Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp
index 8714997..200e248 100644
--- a/libs/hwui/DisplayListRenderer.cpp
+++ b/libs/hwui/DisplayListRenderer.cpp
@@ -108,6 +108,7 @@
     "DrawRoundRect",
     "DrawCircle",
     "DrawOval",
+    "DrawArc",
     "DrawPath",
     "DrawLines",
     "DrawText",
@@ -363,6 +364,11 @@
                 renderer.drawOval(getFloat(), getFloat(), getFloat(), getFloat(), getPaint());
             }
             break;
+            case DrawArc: {
+                renderer.drawArc(getFloat(), getFloat(), getFloat(), getFloat(),
+                        getFloat(), getFloat(), getInt() == 1, getPaint());
+            }
+            break;
             case DrawPath: {
                 renderer.drawPath(getPath(), getPaint());
             }
@@ -675,6 +681,15 @@
     addPaint(paint);
 }
 
+void DisplayListRenderer::drawArc(float left, float top, float right, float bottom,
+        float startAngle, float sweepAngle, bool useCenter, SkPaint* paint) {
+    addOp(DisplayList::DrawOval);
+    addBounds(left, top, right, bottom);
+    addPoint(startAngle, sweepAngle);
+    addInt(useCenter ? 1 : 0);
+    addPaint(paint);
+}
+
 void DisplayListRenderer::drawPath(SkPath* path, SkPaint* paint) {
     addOp(DisplayList::DrawPath);
     addPath(path);