diff options
author | Romain Guy <romainguy@google.com> | 2011-01-23 16:15:02 -0800 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2011-01-23 16:15:02 -0800 |
commit | 8b2f5267f16c295f12faab810527cd6311997e34 (patch) | |
tree | 2f81ab177ebfadee474c44f3aa8e44cdc539665e /libs/hwui/OpenGLRenderer.cpp | |
parent | c1cd9ba335b293f11e1082447ef08e474710a05f (diff) | |
download | frameworks_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/OpenGLRenderer.cpp')
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 99c0600..2467d8e 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1396,6 +1396,21 @@ void OpenGLRenderer::drawOval(float left, float top, float right, float bottom, drawShape(left, top, texture, paint); } +void OpenGLRenderer::drawArc(float left, float top, float right, float bottom, + float startAngle, float sweepAngle, bool useCenter, SkPaint* paint) { + if (mSnapshot->isIgnored()) return; + + if (fabs(sweepAngle) >= 360.0f) { + drawOval(left, top, right, bottom, paint); + return; + } + + glActiveTexture(gTextureUnits[0]); + const PathTexture* texture = mCaches.arcShapeCache.getArc(right - left, bottom - top, + startAngle, sweepAngle, useCenter, paint); + drawShape(left, top, texture, paint); +} + void OpenGLRenderer::drawRectAsShape(float left, float top, float right, float bottom, SkPaint* paint) { if (mSnapshot->isIgnored()) return; |