summaryrefslogtreecommitdiffstats
path: root/core/jni
diff options
context:
space:
mode:
authorLeon Scroggins III <scroggo@google.com>2014-07-11 14:35:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-07-10 21:35:02 +0000
commitd66a8719b019e948d1dfbda2dace8762189e298f (patch)
treeeebc49784b515232020950942d55e8a170c80051 /core/jni
parent219cca781b1e76c01a538e3eefedfb9c96305a19 (diff)
parentab87983a11e0bd2e08d752d86d5e945ea7d39a04 (diff)
downloadframeworks_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.cpp13
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[] = {