summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DisplayListRenderer.cpp
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-01-23 16:15:02 -0800
committerRomain Guy <romainguy@google.com>2011-01-23 16:15:02 -0800
commit8b2f5267f16c295f12faab810527cd6311997e34 (patch)
tree2f81ab177ebfadee474c44f3aa8e44cdc539665e /libs/hwui/DisplayListRenderer.cpp
parentc1cd9ba335b293f11e1082447ef08e474710a05f (diff)
downloadframeworks_base-8b2f5267f16c295f12faab810527cd6311997e34.zip
frameworks_base-8b2f5267f16c295f12faab810527cd6311997e34.tar.gz
frameworks_base-8b2f5267f16c295f12faab810527cd6311997e34.tar.bz2
Add support for arcs.
Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
Diffstat (limited to 'libs/hwui/DisplayListRenderer.cpp')
-rw-r--r--libs/hwui/DisplayListRenderer.cpp15
1 files changed, 15 insertions, 0 deletions
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 @@ const char* DisplayList::OP_NAMES[] = {
"DrawRoundRect",
"DrawCircle",
"DrawOval",
+ "DrawArc",
"DrawPath",
"DrawLines",
"DrawText",
@@ -363,6 +364,11 @@ void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) {
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 @@ void DisplayListRenderer::drawOval(float left, float top, float right, float bot
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);