diff options
author | Romain Guy <romainguy@google.com> | 2011-01-23 16:12:50 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-23 16:12:50 -0800 |
commit | 502d41d85958fb729a17e0651e80134e1c41c621 (patch) | |
tree | 58c627472bd756089179f477d6980e715b1c7e50 /core | |
parent | 8ccea78c01a6098e96189799b46b72cbfeba7bae (diff) | |
parent | 8b2f5267f16c295f12faab810527cd6311997e34 (diff) | |
download | frameworks_base-502d41d85958fb729a17e0651e80134e1c41c621.zip frameworks_base-502d41d85958fb729a17e0651e80134e1c41c621.tar.gz frameworks_base-502d41d85958fb729a17e0651e80134e1c41c621.tar.bz2 |
Merge "Add support for arcs." into honeycomb
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/GLES20Canvas.java | 8 | ||||
-rw-r--r-- | core/jni/android_view_GLES20Canvas.cpp | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java index 936e9d2..f6c5e0b 100644 --- a/core/java/android/view/GLES20Canvas.java +++ b/core/java/android/view/GLES20Canvas.java @@ -525,9 +525,15 @@ class GLES20Canvas extends HardwareCanvas { @Override public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint) { - // TODO: Implement + boolean hasModifier = setupModifiers(paint); + nDrawArc(mRenderer, oval.left, oval.top, oval.right, oval.bottom, startAngle, sweepAngle, + useCenter, paint.mNativePaint); + if (hasModifier) nResetModifiers(mRenderer); } + private native void nDrawArc(int renderer, float left, float top, float right, float bottom, + float startAngle, float sweepAngle, boolean useCenter, int paint); + @Override public void drawARGB(int a, int r, int g, int b) { drawColor((a & 0xFF) << 24 | (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF)); diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index 2daffbb..8d074af 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -332,6 +332,12 @@ static void android_view_GLES20Canvas_drawOval(JNIEnv* env, jobject canvas, renderer->drawOval(left, top, right, bottom, paint); } +static void android_view_GLES20Canvas_drawArc(JNIEnv* env, jobject canvas, + OpenGLRenderer* renderer, jfloat left, jfloat top, jfloat right, jfloat bottom, + jfloat startAngle, jfloat sweepAngle, jboolean useCenter, SkPaint* paint) { + renderer->drawArc(left, top, right, bottom, startAngle, sweepAngle, useCenter, paint); +} + static void android_view_GLES20Canvas_drawRects(JNIEnv* env, jobject canvas, OpenGLRenderer* renderer, SkRegion* region, SkPaint* paint) { SkRegion::Iterator it(*region); @@ -609,6 +615,8 @@ static JNINativeMethod gMethods[] = { { "nDrawRoundRect", "(IFFFFFFI)V", (void*) android_view_GLES20Canvas_drawRoundRect }, { "nDrawCircle", "(IFFFI)V", (void*) android_view_GLES20Canvas_drawCircle }, { "nDrawOval", "(IFFFFI)V", (void*) android_view_GLES20Canvas_drawOval }, + { "nDrawArc", "(IFFFFFFZI)V", (void*) android_view_GLES20Canvas_drawArc }, + { "nDrawPath", "(III)V", (void*) android_view_GLES20Canvas_drawPath }, { "nDrawLines", "(I[FIII)V", (void*) android_view_GLES20Canvas_drawLines }, |