Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ec2eabe authored by Florin Malita's avatar Florin Malita Committed by Android (Google) Code Review
Browse files

Merge "Add a native Canvas wrapper."

parents 05259114 5c3d927e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@

#include "SkCamera.h"

#include "GraphicsJNI.h"

static jfieldID gNativeInstanceFieldID;

static void Camera_constructor(JNIEnv* env, jobject obj) {
@@ -93,7 +95,7 @@ static void Camera_getMatrix(JNIEnv* env, jobject obj, jlong matrixHandle) {
}

static void Camera_applyToCanvas(JNIEnv* env, jobject obj, jlong canvasHandle) {
    SkCanvas* native_canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
    SkCanvas* native_canvas = GraphicsJNI::getNativeCanvas(canvasHandle);
    jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
    Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
    v->applyToCanvas((SkCanvas*)native_canvas);
+130 −80

File changed.

Preview size limit exceeded, changes collapsed.

+2 −2
Original line number Diff line number Diff line
@@ -320,7 +320,7 @@ SkCanvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
    SkASSERT(canvas);
    SkASSERT(env->IsInstanceOf(canvas, gCanvas_class));
    jlong canvasHandle = env->GetLongField(canvas, gCanvas_nativeInstanceID);
    SkCanvas* c = reinterpret_cast<SkCanvas*>(canvasHandle);
    SkCanvas* c = getNativeCanvas(canvasHandle);
    SkASSERT(c);
    return c;
}
@@ -698,7 +698,7 @@ int register_android_graphics_Graphics(JNIEnv* env)
                                                     "nativeInt", "I");

    gCanvas_class = make_globalref(env, "android/graphics/Canvas");
    gCanvas_nativeInstanceID = getFieldIDCheck(env, gCanvas_class, "mNativeCanvas", "J");
    gCanvas_nativeInstanceID = getFieldIDCheck(env, gCanvas_class, "mNativeCanvasWrapper", "J");

    gPaint_class = make_globalref(env, "android/graphics/Paint");
    gPaint_nativeInstanceID = getFieldIDCheck(env, gPaint_class, "mNativePaint", "J");
+1 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ public:
    static SkPoint* jpointf_to_point(JNIEnv*, jobject jpointf, SkPoint* point);
    static void point_to_jpointf(const SkPoint& point, JNIEnv*, jobject jpointf);

    static SkCanvas* getNativeCanvas(jlong nativeHandle);
    static SkCanvas* getNativeCanvas(JNIEnv*, jobject canvas);
    static SkPaint*  getNativePaint(JNIEnv*, jobject paint);
    static android::TypefaceImpl* getNativeTypeface(JNIEnv*, jobject paint);
+2 −2
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ public:
    static void drawF(JNIEnv* env, jobject, jlong canvasHandle, jobject boundsRectF,
            jlong bitmapHandle, jlong chunkHandle, jlong paintHandle,
            jint destDensity, jint srcDensity) {
        SkCanvas* canvas       = reinterpret_cast<SkCanvas*>(canvasHandle);
        SkCanvas* canvas       = GraphicsJNI::getNativeCanvas(canvasHandle);
        const SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
        Res_png_9patch* chunk  = reinterpret_cast<Res_png_9patch*>(chunkHandle);
        const SkPaint* paint   = reinterpret_cast<SkPaint*>(paintHandle);
@@ -138,7 +138,7 @@ public:
    static void drawI(JNIEnv* env, jobject, jlong canvasHandle, jobject boundsRect,
            jlong bitmapHandle, jlong chunkHandle, jlong paintHandle,
            jint destDensity, jint srcDensity) {
        SkCanvas* canvas       = reinterpret_cast<SkCanvas*>(canvasHandle);
        SkCanvas* canvas       = GraphicsJNI::getNativeCanvas(canvasHandle);
        const SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
        Res_png_9patch* chunk  = reinterpret_cast<Res_png_9patch*>(chunkHandle);
        const SkPaint* paint   = reinterpret_cast<SkPaint*>(paintHandle);
Loading