diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/ThreadedRenderer.java | 4 | ||||
-rw-r--r-- | core/jni/android/graphics/Shader.cpp | 9 | ||||
-rw-r--r-- | core/jni/android_graphics_Canvas.cpp | 13 | ||||
-rw-r--r-- | core/jni/android_view_ThreadedRenderer.cpp | 8 |
4 files changed, 18 insertions, 16 deletions
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java index 87d5d9a..5017a38 100644 --- a/core/java/android/view/ThreadedRenderer.java +++ b/core/java/android/view/ThreadedRenderer.java @@ -360,7 +360,7 @@ public class ThreadedRenderer extends HardwareRenderer { @Override boolean copyLayerInto(final HardwareLayer layer, final Bitmap bitmap) { return nCopyLayerInto(mNativeProxy, - layer.getDeferredLayerUpdater(), bitmap.getSkBitmap()); + layer.getDeferredLayerUpdater(), bitmap); } @Override @@ -531,7 +531,7 @@ public class ThreadedRenderer extends HardwareRenderer { private static native long nCreateTextureLayer(long nativeProxy); private static native void nBuildLayer(long nativeProxy, long node); - private static native boolean nCopyLayerInto(long nativeProxy, long layer, long bitmap); + private static native boolean nCopyLayerInto(long nativeProxy, long layer, Bitmap bitmap); private static native void nPushLayerUpdate(long nativeProxy, long layer); private static native void nCancelLayerUpdate(long nativeProxy, long layer); private static native void nDetachSurfaceTexture(long nativeProxy, long layer); diff --git a/core/jni/android/graphics/Shader.cpp b/core/jni/android/graphics/Shader.cpp index 6591d29..d0f7591 100644 --- a/core/jni/android/graphics/Shader.cpp +++ b/core/jni/android/graphics/Shader.cpp @@ -80,11 +80,12 @@ static jlong Shader_setLocalMatrix(JNIEnv* env, jobject o, jlong shaderHandle, j /////////////////////////////////////////////////////////////////////////////////////////////// -static jlong BitmapShader_constructor(JNIEnv* env, jobject o, jlong bitmapHandle, +static jlong BitmapShader_constructor(JNIEnv* env, jobject o, jobject jbitmap, jint tileModeX, jint tileModeY) { - const SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle); - SkShader* s = SkShader::CreateBitmapShader(*bitmap, + SkBitmap bitmap; + GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap); + SkShader* s = SkShader::CreateBitmapShader(bitmap, (SkShader::TileMode)tileModeX, (SkShader::TileMode)tileModeY); @@ -249,7 +250,7 @@ static JNINativeMethod gShaderMethods[] = { }; static JNINativeMethod gBitmapShaderMethods[] = { - { "nativeCreate", "(JII)J", (void*)BitmapShader_constructor }, + { "nativeCreate", "(Landroid/graphics/Bitmap;II)J", (void*)BitmapShader_constructor }, }; static JNINativeMethod gLinearGradientMethods[] = { diff --git a/core/jni/android_graphics_Canvas.cpp b/core/jni/android_graphics_Canvas.cpp index 5d08532..50a1069 100644 --- a/core/jni/android_graphics_Canvas.cpp +++ b/core/jni/android_graphics_Canvas.cpp @@ -40,22 +40,21 @@ static void finalizer(JNIEnv* env, jobject clazz, jlong canvasHandle) { // Native wrapper constructor used by Canvas(Bitmap) static jlong initRaster(JNIEnv* env, jobject, jobject jbitmap) { - SkBitmap* bitmap = nullptr; + SkBitmap bitmap; if (jbitmap != NULL) { - bitmap = GraphicsJNI::getSkBitmapDeprecated(env, jbitmap); + GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap); } - return reinterpret_cast<jlong>(Canvas::create_canvas( - bitmap ? *bitmap : SkBitmap())); + return reinterpret_cast<jlong>(Canvas::create_canvas(bitmap)); } // Set the given bitmap as the new draw target (wrapped in a new SkCanvas), // optionally copying canvas matrix & clip state. static void setBitmap(JNIEnv* env, jobject, jlong canvasHandle, jobject jbitmap) { - SkBitmap* bitmap = nullptr; + SkBitmap bitmap; if (jbitmap != NULL) { - bitmap = GraphicsJNI::getSkBitmapDeprecated(env, jbitmap); + GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap); } - get_canvas(canvasHandle)->setBitmap(bitmap ? *bitmap : SkBitmap()); + get_canvas(canvasHandle)->setBitmap(bitmap); } static jboolean isOpaque(JNIEnv*, jobject, jlong canvasHandle) { diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp index 11b3805..4ccbb41 100644 --- a/core/jni/android_view_ThreadedRenderer.cpp +++ b/core/jni/android_view_ThreadedRenderer.cpp @@ -21,6 +21,7 @@ #include "jni.h" #include <nativehelper/JNIHelp.h> #include "core_jni_helpers.h" +#include <GraphicsJNI.h> #include <ScopedPrimitiveArray.h> #include <EGL/egl.h> @@ -347,10 +348,11 @@ static void android_view_ThreadedRenderer_buildLayer(JNIEnv* env, jobject clazz, } static jboolean android_view_ThreadedRenderer_copyLayerInto(JNIEnv* env, jobject clazz, - jlong proxyPtr, jlong layerPtr, jlong bitmapPtr) { + jlong proxyPtr, jlong layerPtr, jobject jbitmap) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerPtr); - SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapPtr); + SkBitmap bitmap; + GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap); return proxy->copyLayerInto(layer, bitmap); } @@ -458,7 +460,7 @@ static JNINativeMethod gMethods[] = { { "nInvokeFunctor", "(JZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor }, { "nCreateTextureLayer", "(J)J", (void*) android_view_ThreadedRenderer_createTextureLayer }, { "nBuildLayer", "(JJ)V", (void*) android_view_ThreadedRenderer_buildLayer }, - { "nCopyLayerInto", "(JJJ)Z", (void*) android_view_ThreadedRenderer_copyLayerInto }, + { "nCopyLayerInto", "(JJLandroid/graphics/Bitmap;)Z", (void*) android_view_ThreadedRenderer_copyLayerInto }, { "nPushLayerUpdate", "(JJ)V", (void*) android_view_ThreadedRenderer_pushLayerUpdate }, { "nCancelLayerUpdate", "(JJ)V", (void*) android_view_ThreadedRenderer_cancelLayerUpdate }, { "nDetachSurfaceTexture", "(JJ)V", (void*) android_view_ThreadedRenderer_detachSurfaceTexture }, |