summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-08-05 17:25:48 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-08-05 17:25:48 -0700
commit8cc44cb6696995d8387226cd131fc22386aa4f7f (patch)
tree21b9feb715bce7f3d019b8d93e205b5c480818e5 /core
parent434e4b4b64235a756047a55e642f0858252f2dd2 (diff)
parent7fbcc0492fca03857e3c45064f4aa040af817d55 (diff)
downloadframeworks_base-8cc44cb6696995d8387226cd131fc22386aa4f7f.zip
frameworks_base-8cc44cb6696995d8387226cd131fc22386aa4f7f.tar.gz
frameworks_base-8cc44cb6696995d8387226cd131fc22386aa4f7f.tar.bz2
Merge "Add support for paths."
Diffstat (limited to 'core')
-rw-r--r--core/java/android/view/GLES20Canvas.java7
-rw-r--r--core/jni/android_view_GLES20Canvas.cpp6
2 files changed, 11 insertions, 2 deletions
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java
index 63a0c4c..8e1338d 100644
--- a/core/java/android/view/GLES20Canvas.java
+++ b/core/java/android/view/GLES20Canvas.java
@@ -350,7 +350,6 @@ class GLES20Canvas extends Canvas {
@Override
public void setDrawFilter(DrawFilter filter) {
- // TODO: Implement PaintDrawFilter
mFilter = filter;
}
@@ -522,9 +521,13 @@ class GLES20Canvas extends Canvas {
@Override
public void drawPath(Path path, Paint paint) {
- throw new UnsupportedOperationException();
+ boolean hasModifier = setupModifiers(paint);
+ nDrawPath(mRenderer, path.mNativePath, paint.mNativePaint);
+ if (hasModifier) nResetModifiers(mRenderer);
}
+ private native void nDrawPath(int renderer, int path, int paint);
+
@Override
public void drawPicture(Picture picture) {
throw new UnsupportedOperationException();
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp
index 142e194..9fd2b86 100644
--- a/core/jni/android_view_GLES20Canvas.cpp
+++ b/core/jni/android_view_GLES20Canvas.cpp
@@ -228,6 +228,11 @@ static void android_view_GLES20Canvas_drawRect(JNIEnv* env, jobject canvas,
renderer->drawRect(left, top, right, bottom, paint);
}
+static void android_view_GLES20Canvas_drawPath(JNIEnv* env, jobject canvas,
+ OpenGLRenderer* renderer, SkPath* path, SkPaint* paint) {
+ renderer->drawPath(path, paint);
+}
+
// ----------------------------------------------------------------------------
// Shaders and color filters
// ----------------------------------------------------------------------------
@@ -317,6 +322,7 @@ static JNINativeMethod gMethods[] = {
{ "nDrawPatch", "(II[BFFFFI)V", (void*) android_view_GLES20Canvas_drawPatch },
{ "nDrawColor", "(III)V", (void*) android_view_GLES20Canvas_drawColor },
{ "nDrawRect", "(IFFFFI)V", (void*) android_view_GLES20Canvas_drawRect },
+ { "nDrawPath", "(III)V", (void*) android_view_GLES20Canvas_drawPath },
{ "nResetModifiers", "(I)V", (void*) android_view_GLES20Canvas_resetModifiers },
{ "nSetupShader", "(II)V", (void*) android_view_GLES20Canvas_setupShader },