diff options
| author | Romain Guy <romainguy@google.com> | 2010-08-13 19:39:53 -0700 |
|---|---|---|
| committer | Romain Guy <romainguy@google.com> | 2010-08-13 19:41:14 -0700 |
| commit | 1e45aae5de003657e5d18f74d34998f5de5db5b7 (patch) | |
| tree | 355320038d0de8ed9b39c0cd3d3865b7fbbae1fd /core | |
| parent | 029a74a38b56b97cbfe02b3d8e23536cea71609d (diff) | |
| download | frameworks_base-1e45aae5de003657e5d18f74d34998f5de5db5b7.zip frameworks_base-1e45aae5de003657e5d18f74d34998f5de5db5b7.tar.gz frameworks_base-1e45aae5de003657e5d18f74d34998f5de5db5b7.tar.bz2 | |
Add drop shadows.
Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
Diffstat (limited to 'core')
| -rw-r--r-- | core/java/android/view/GLES20Canvas.java | 10 | ||||
| -rw-r--r-- | core/jni/android/graphics/Paint.cpp | 2 | ||||
| -rw-r--r-- | core/jni/android_view_GLES20Canvas.cpp | 7 |
3 files changed, 17 insertions, 2 deletions
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java index 91dbe1f..4c72e95 100644 --- a/core/java/android/view/GLES20Canvas.java +++ b/core/java/android/view/GLES20Canvas.java @@ -756,6 +756,12 @@ class GLES20Canvas extends Canvas { private boolean setupModifiers(Paint paint) { boolean hasModifier = false; + if (paint.hasShadow) { + nSetupShadow(mRenderer, paint.shadowRadius, paint.shadowDx, paint.shadowDy, + paint.shadowColor); + hasModifier = true; + } + final Shader shader = paint.getShader(); if (shader != null) { nSetupShader(mRenderer, shader.native_shader); @@ -770,7 +776,7 @@ class GLES20Canvas extends Canvas { return hasModifier; } - + private boolean setupColorFilter(Paint paint) { final ColorFilter filter = paint.getColorFilter(); if (filter != null) { @@ -782,5 +788,7 @@ class GLES20Canvas extends Canvas { private native void nSetupShader(int renderer, int shader); private native void nSetupColorFilter(int renderer, int colorFilter); + private native void nSetupShadow(int renderer, float radius, float dx, float dy, int color); + private native void nResetModifiers(int renderer); } diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp index e4d4850..ca9f371 100644 --- a/core/jni/android/graphics/Paint.cpp +++ b/core/jni/android/graphics/Paint.cpp @@ -738,7 +738,7 @@ static JNINativeMethod methods[] = { (void*) SkPaintGlue::getStringBounds }, {"nativeGetCharArrayBounds", "(I[CIILandroid/graphics/Rect;)V", (void*) SkPaintGlue::getCharArrayBounds }, - {"setShadowLayer", "(FFFI)V", (void*)SkPaintGlue::setShadowLayer} + {"nSetShadowLayer", "(FFFI)V", (void*)SkPaintGlue::setShadowLayer} }; static jfieldID req_fieldID(jfieldID id) { diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index 9f94af9..4c6eced 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -259,6 +259,7 @@ static void android_view_GLES20Canvas_resetModifiers(JNIEnv* env, jobject canvas OpenGLRenderer* renderer) { renderer->resetShader(); renderer->resetColorFilter(); + renderer->resetShadow(); } static void android_view_GLES20Canvas_setupShader(JNIEnv* env, jobject canvas, @@ -271,6 +272,11 @@ static void android_view_GLES20Canvas_setupColorFilter(JNIEnv* env, jobject canv renderer->setupColorFilter(filter); } +static void android_view_GLES20Canvas_setupShadow(JNIEnv* env, jobject canvas, + OpenGLRenderer* renderer, jfloat radius, jfloat dx, jfloat dy, jint color) { + renderer->setupShadow(radius, dx, dy, color); +} + // ---------------------------------------------------------------------------- // Text // ---------------------------------------------------------------------------- @@ -402,6 +408,7 @@ static JNINativeMethod gMethods[] = { { "nResetModifiers", "(I)V", (void*) android_view_GLES20Canvas_resetModifiers }, { "nSetupShader", "(II)V", (void*) android_view_GLES20Canvas_setupShader }, { "nSetupColorFilter", "(II)V", (void*) android_view_GLES20Canvas_setupColorFilter }, + { "nSetupShadow", "(IFFFI)V", (void*) android_view_GLES20Canvas_setupShadow }, { "nDrawText", "(I[CIIFFII)V", (void*) android_view_GLES20Canvas_drawTextArray }, { "nDrawText", "(ILjava/lang/String;IIFFII)V", |
