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

Commit 7716b7d8 authored by Leon Scroggins's avatar Leon Scroggins Committed by Android (Google) Code Review
Browse files

Merge "Update to call new Skia APIs."

parents f20a5eb2 cc11f15f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -329,7 +329,7 @@ static jobject Bitmap_copy(JNIEnv* env, jobject, jlong srcHandle,
    SkBitmap            result;
    JavaPixelAllocator  allocator(env);

    if (!src->copyTo(&result, dstConfig, &allocator)) {
    if (!src->copyTo(&result, SkBitmapConfigToColorType(dstConfig), &allocator)) {
        return NULL;
    }
    return GraphicsJNI::createBitmap(env, new SkBitmap(result), allocator.getStorageObj(),
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ static SkColorType colorTypeForScaledOutput(SkColorType colorType) {
    switch (colorType) {
        case kUnknown_SkColorType:
        case kIndex_8_SkColorType:
            return kPMColor_SkColorType;
            return kNative_8888_SkColorType;
        default:
            break;
    }
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ public:
    bool decodeRegion(SkBitmap* bitmap, const SkIRect& rect,
                      SkBitmap::Config pref, int sampleSize) {
        fDecoder->setSampleSize(sampleSize);
        return fDecoder->decodeRegion(bitmap, rect, pref);
        return fDecoder->decodeSubset(bitmap, rect, pref);
    }

    SkImageDecoder* getDecoder() const { return fDecoder; }
+27 −17
Original line number Diff line number Diff line
@@ -65,6 +65,9 @@ public:
    virtual void clipRect(const SkRect& rect, SkRegion::Op op, bool antialias) {
        m_dstCanvas->clipRect(rect, op, antialias);
    }
    virtual void clipRRect(const SkRRect& rrect, SkRegion::Op op, bool antialias) {
        m_dstCanvas->clipRRect(rrect, op, antialias);
    }
    virtual void clipPath(const SkPath& path, SkRegion::Op op, bool antialias) {
        m_dstCanvas->clipPath(path, op, antialias);
    }
@@ -73,6 +76,12 @@ private:
    SkCanvas* m_dstCanvas;
};

// Returns true if the SkCanvas's clip is non-empty.
static jboolean hasNonEmptyClip(const SkCanvas& canvas) {
    bool emptyClip = canvas.isClipEmpty();
    return emptyClip ? JNI_FALSE : JNI_TRUE;
}

class SkCanvasGlue {
public:

@@ -281,8 +290,8 @@ public:
        r.set(SkFloatToScalar(left), SkFloatToScalar(top),
              SkFloatToScalar(right), SkFloatToScalar(bottom));
        SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
        bool result = c->clipRect(r);
        return result ? JNI_TRUE : JNI_FALSE;
        c->clipRect(r);
        return hasNonEmptyClip(*c);
    }

    static jboolean clipRect_IIII(JNIEnv* env, jobject jcanvas, jint left,
@@ -291,8 +300,9 @@ public:
        SkRect  r;
        r.set(SkIntToScalar(left), SkIntToScalar(top),
              SkIntToScalar(right), SkIntToScalar(bottom));
        bool result = GraphicsJNI::getNativeCanvas(env, jcanvas)->clipRect(r);
        return result ? JNI_TRUE : JNI_FALSE;
        SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
        c->clipRect(r);
        return hasNonEmptyClip(*c);
    }

    static jboolean clipRect_RectF(JNIEnv* env, jobject jcanvas, jobject rectf) {
@@ -300,8 +310,8 @@ public:
        NPE_CHECK_RETURN_ZERO(env, rectf);
        SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
        SkRect tmp;
        bool result = c->clipRect(*GraphicsJNI::jrectf_to_rect(env, rectf, &tmp));
        return result ? JNI_TRUE : JNI_FALSE;
        c->clipRect(*GraphicsJNI::jrectf_to_rect(env, rectf, &tmp));
        return hasNonEmptyClip(*c);
    }

    static jboolean clipRect_Rect(JNIEnv* env, jobject jcanvas, jobject rect) {
@@ -309,8 +319,8 @@ public:
        NPE_CHECK_RETURN_ZERO(env, rect);
        SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
        SkRect tmp;
        bool result = c->clipRect(*GraphicsJNI::jrect_to_rect(env, rect, &tmp));
        return result ? JNI_TRUE : JNI_FALSE;
        c->clipRect(*GraphicsJNI::jrect_to_rect(env, rect, &tmp));
        return hasNonEmptyClip(*c);

    }

@@ -321,25 +331,24 @@ public:
        SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
        rect.set(SkFloatToScalar(left), SkFloatToScalar(top),
                 SkFloatToScalar(right), SkFloatToScalar(bottom));
        bool result = canvas->clipRect(rect, static_cast<SkRegion::Op>(op));
        return result ? JNI_TRUE : JNI_FALSE;

        canvas->clipRect(rect, static_cast<SkRegion::Op>(op));
        return hasNonEmptyClip(*canvas);
    }

    static jboolean clipPath(JNIEnv* env, jobject, jlong canvasHandle,
                             jlong pathHandle, jint op) {
        SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
        bool result = canvas->clipPath(*reinterpret_cast<SkPath*>(pathHandle),
        canvas->clipPath(*reinterpret_cast<SkPath*>(pathHandle),
                static_cast<SkRegion::Op>(op));
        return result ? JNI_TRUE : JNI_FALSE;
        return hasNonEmptyClip(*canvas);
    }

    static jboolean clipRegion(JNIEnv* env, jobject, jlong canvasHandle,
                               jlong deviceRgnHandle, jint op) {
        SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
        SkRegion* deviceRgn = reinterpret_cast<SkRegion*>(deviceRgnHandle);
        bool result = canvas->clipRegion(*deviceRgn, static_cast<SkRegion::Op>(op));
        return result ? JNI_TRUE : JNI_FALSE;
        canvas->clipRegion(*deviceRgn, static_cast<SkRegion::Op>(op));
        return hasNonEmptyClip(*canvas);
    }

    static void setDrawFilter(JNIEnv* env, jobject, jlong canvasHandle,
@@ -353,7 +362,8 @@ public:
        SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
        SkRect rect_;
        GraphicsJNI::jrectf_to_rect(env, rect, &rect_);
        return canvas->quickReject(rect_);
        bool result = canvas->quickReject(rect_);
        return result ? JNI_TRUE : JNI_FALSE;
    }

    static jboolean quickReject__Path(JNIEnv* env, jobject, jlong canvasHandle,
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ public:
        const float* src = autoArray.ptr();

#ifdef SK_SCALAR_IS_FLOAT
        return reinterpret_cast<jlong>(new SkColorMatrixFilter(src));
        return reinterpret_cast<jlong>(SkColorMatrixFilter::Create(src));
#else
        SkASSERT(false);
#endif
Loading