diff options
author | Leon Scroggins III <scroggo@google.com> | 2014-07-11 14:35:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-07-10 21:35:02 +0000 |
commit | d66a8719b019e948d1dfbda2dace8762189e298f (patch) | |
tree | eebc49784b515232020950942d55e8a170c80051 /core/jni | |
parent | 219cca781b1e76c01a538e3eefedfb9c96305a19 (diff) | |
parent | ab87983a11e0bd2e08d752d86d5e945ea7d39a04 (diff) | |
download | frameworks_base-d66a8719b019e948d1dfbda2dace8762189e298f.zip frameworks_base-d66a8719b019e948d1dfbda2dace8762189e298f.tar.gz frameworks_base-d66a8719b019e948d1dfbda2dace8762189e298f.tar.bz2 |
Merge "Simplify Shader.setLocalMatrix."
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android/graphics/Shader.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/core/jni/android/graphics/Shader.cpp b/core/jni/android/graphics/Shader.cpp index 0cfcaef..c71f226 100644 --- a/core/jni/android/graphics/Shader.cpp +++ b/core/jni/android/graphics/Shader.cpp @@ -56,19 +56,20 @@ static void Shader_destructor(JNIEnv* env, jobject o, jlong shaderHandle) SkSafeUnref(shader); } -static void Shader_setLocalMatrix(JNIEnv* env, jobject o, jlong shaderHandle, +static jlong Shader_setLocalMatrix(JNIEnv* env, jobject o, jlong shaderHandle, jlong matrixHandle) { SkShader* shader = reinterpret_cast<SkShader*>(shaderHandle); const SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixHandle); if (shader) { if (NULL == matrix) { - shader->resetLocalMatrix(); - } - else { - shader->setLocalMatrix(*matrix); + matrix = &SkMatrix::I(); } + SkShader* newShader = SkShader::CreateLocalMatrixShader(shader, *matrix); + shader->unref(); + shader = newShader; } + return reinterpret_cast<jlong>(shader); } /////////////////////////////////////////////////////////////////////////////////////////////// @@ -239,7 +240,7 @@ static JNINativeMethod gColorMethods[] = { static JNINativeMethod gShaderMethods[] = { { "nativeDestructor", "(J)V", (void*)Shader_destructor }, - { "nativeSetLocalMatrix", "(JJ)V", (void*)Shader_setLocalMatrix } + { "nativeSetLocalMatrix", "(JJ)J", (void*)Shader_setLocalMatrix } }; static JNINativeMethod gBitmapShaderMethods[] = { |