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

Commit bbbcc2e9 authored by Behdad Esfahbod's avatar Behdad Esfahbod Committed by Android Git Automerger
Browse files

am 3c8b2dfb: Add android.Paint that inherits SkPaint

* commit '3c8b2dfb331a492e8e2c8ccaec13e9f736da36ba':
  Add android.Paint that inherits SkPaint
parents 081023c1 6ba30b85
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ LOCAL_SRC_FILES:= \
	android/graphics/NinePatchImpl.cpp \
	android/graphics/NinePatchPeeker.cpp \
	android/graphics/Paint.cpp \
	android/graphics/PaintImpl.cpp \
	android/graphics/Path.cpp \
	android/graphics/PathMeasure.cpp \
	android/graphics/PathEffect.cpp \
+2 −1
Original line number Diff line number Diff line
#include "Paint.h"
#include "SkBitmap.h"
#include "SkPixelRef.h"
#include "SkImageEncoder.h"
@@ -676,7 +677,7 @@ static jobject Bitmap_extractAlpha(JNIEnv* env, jobject clazz,
                                   jlong srcHandle, jlong paintHandle,
                                   jintArray offsetXY) {
    const SkBitmap* src = reinterpret_cast<SkBitmap*>(srcHandle);
    const SkPaint* paint = reinterpret_cast<SkPaint*>(paintHandle);
    const android::Paint* paint = reinterpret_cast<android::Paint*>(paintHandle);
    SkIPoint  offset;
    SkBitmap* dst = new SkBitmap;
    JavaPixelAllocator allocator(env);
+21 −20
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ namespace android {

// TODO: move this further up the stack so that all interaction with minikin
//       happens prior to calling into this interface
class Paint;
class TypefaceImpl;

class Canvas {
@@ -60,7 +61,7 @@ public:
    virtual void restoreToCount(int saveCount) = 0;

    virtual int saveLayer(float left, float top, float right, float bottom,
                const SkPaint* paint, SkCanvas::SaveFlags flags) = 0;
                const Paint* paint, SkCanvas::SaveFlags flags) = 0;
    virtual int saveLayerAlpha(float left, float top, float right, float bottom,
            int alpha, SkCanvas::SaveFlags flags) = 0;

@@ -90,47 +91,47 @@ public:
// Canvas draw operations
// ----------------------------------------------------------------------------
    virtual void drawColor(int color, SkXfermode::Mode mode) = 0;
    virtual void drawPaint(const SkPaint& paint) = 0;
    virtual void drawPaint(const Paint& paint) = 0;

    // Geometry
    virtual void drawPoint(float x, float y, const SkPaint& paint) = 0;
    virtual void drawPoints(const float* points, int count, const SkPaint& paint) = 0;
    virtual void drawPoint(float x, float y, const Paint& paint) = 0;
    virtual void drawPoints(const float* points, int count, const Paint& paint) = 0;
    virtual void drawLine(float startX, float startY, float stopX, float stopY,
                const SkPaint& paint) = 0;
    virtual void drawLines(const float* points, int count, const SkPaint& paint) = 0;
                const Paint& paint) = 0;
    virtual void drawLines(const float* points, int count, const Paint& paint) = 0;
    virtual void drawRect(float left, float top, float right, float bottom,
            const SkPaint& paint) = 0;
            const Paint& paint) = 0;
    virtual void drawRoundRect(float left, float top, float right, float bottom,
            float rx, float ry, const SkPaint& paint) = 0;
    virtual void drawCircle(float x, float y, float radius, const SkPaint& paint) = 0;
            float rx, float ry, const Paint& paint) = 0;
    virtual void drawCircle(float x, float y, float radius, const Paint& paint) = 0;
    virtual void drawOval(float left, float top, float right, float bottom,
            const SkPaint& paint) = 0;
            const Paint& paint) = 0;
    virtual void drawArc(float left, float top, float right, float bottom,
            float startAngle, float sweepAngle, bool useCenter, const SkPaint& paint) = 0;
    virtual void drawPath(const SkPath& path, const SkPaint& paint) = 0;
            float startAngle, float sweepAngle, bool useCenter, const Paint& paint) = 0;
    virtual void drawPath(const SkPath& path, const Paint& paint) = 0;
    virtual void drawVertices(SkCanvas::VertexMode vertexMode, int vertexCount,
                              const float* verts, const float* tex, const int* colors,
                              const uint16_t* indices, int indexCount, const SkPaint& paint) = 0;
                              const uint16_t* indices, int indexCount, const Paint& paint) = 0;

    // Bitmap-based
    virtual void drawBitmap(const SkBitmap& bitmap, float left, float top,
            const SkPaint* paint) = 0;
            const Paint* paint) = 0;
    virtual void drawBitmap(const SkBitmap& bitmap, const SkMatrix& matrix,
            const SkPaint* paint) = 0;
            const Paint* paint) = 0;
    virtual void drawBitmap(const SkBitmap& bitmap, float srcLeft, float srcTop,
            float srcRight, float srcBottom, float dstLeft, float dstTop,
            float dstRight, float dstBottom, const SkPaint* paint) = 0;
            float dstRight, float dstBottom, const Paint* paint) = 0;
    virtual void drawBitmapMesh(const SkBitmap& bitmap, int meshWidth, int meshHeight,
            const float* vertices, const int* colors, const SkPaint* paint) = 0;
            const float* vertices, const int* colors, const Paint* paint) = 0;

    // Text
    virtual void drawText(const uint16_t* text, int start, int count, int contextCount,
            float x, float y, int bidiFlags, const SkPaint& paint,
            float x, float y, int bidiFlags, const Paint& paint,
            TypefaceImpl* typeface) = 0;
    virtual void drawPosText(const uint16_t* text, const float* positions, int count,
            int posCount, const SkPaint& paint) = 0;
            int posCount, const Paint& paint) = 0;
    virtual void drawTextOnPath(const uint16_t* glyphs, int count, const SkPath& path,
            float hOffset, float vOffset, const SkPaint& paint) = 0;
            float hOffset, float vOffset, const Paint& paint) = 0;
};

}; // namespace android
+2 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#include "jni.h"
#include "GraphicsJNI.h"
#include "Paint.h"
#include <android_runtime/AndroidRuntime.h>

#include <utils/RefBase.h>
@@ -32,7 +33,7 @@ static jlong createFloat(JNIEnv* env, jobject clazz, jfloat initialValue) {
}

static jlong createPaint(JNIEnv* env, jobject clazz, jlong paintPtr) {
    const SkPaint* paint = reinterpret_cast<const SkPaint*>(paintPtr);
    const Paint* paint = reinterpret_cast<const Paint*>(paintPtr);
    return reinterpret_cast<jlong>(new CanvasPropertyPaint(*paint));
}

+2 −2
Original line number Diff line number Diff line
@@ -370,12 +370,12 @@ SkCanvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
    return c;
}

SkPaint* GraphicsJNI::getNativePaint(JNIEnv* env, jobject paint) {
android::Paint* GraphicsJNI::getNativePaint(JNIEnv* env, jobject paint) {
    SkASSERT(env);
    SkASSERT(paint);
    SkASSERT(env->IsInstanceOf(paint, gPaint_class));
    jlong paintHandle = env->GetLongField(paint, gPaint_nativeInstanceID);
    SkPaint* p = reinterpret_cast<SkPaint*>(paintHandle);
    android::Paint* p = reinterpret_cast<android::Paint*>(paintHandle);
    SkASSERT(p);
    return p;
}
Loading