summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-08-13 19:39:53 -0700
committerRomain Guy <romainguy@google.com>2010-08-13 19:41:14 -0700
commit1e45aae5de003657e5d18f74d34998f5de5db5b7 (patch)
tree355320038d0de8ed9b39c0cd3d3865b7fbbae1fd /core
parent029a74a38b56b97cbfe02b3d8e23536cea71609d (diff)
downloadframeworks_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.java10
-rw-r--r--core/jni/android/graphics/Paint.cpp2
-rw-r--r--core/jni/android_view_GLES20Canvas.cpp7
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",