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

Commit b2367cbf authored by Derek Sollenberger's avatar Derek Sollenberger Committed by Android (Google) Code Review
Browse files

Merge "Update HWUI matrix API"

parents c2e1dcd4 13908822
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -373,7 +373,7 @@ static void android_view_GLES20Canvas_setMatrix(JNIEnv* env, jobject clazz,
        jlong rendererPtr, jlong matrixPtr) {
        jlong rendererPtr, jlong matrixPtr) {
    OpenGLRenderer* renderer = reinterpret_cast<OpenGLRenderer*>(rendererPtr);
    OpenGLRenderer* renderer = reinterpret_cast<OpenGLRenderer*>(rendererPtr);
    SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
    SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
    renderer->setMatrix(matrix);
    renderer->setMatrix(matrix ? *matrix : SkMatrix::I());
}
}


static void android_view_GLES20Canvas_getMatrix(JNIEnv* env, jobject clazz,
static void android_view_GLES20Canvas_getMatrix(JNIEnv* env, jobject clazz,
@@ -387,7 +387,7 @@ static void android_view_GLES20Canvas_concatMatrix(JNIEnv* env, jobject clazz,
        jlong rendererPtr, jlong matrixPtr) {
        jlong rendererPtr, jlong matrixPtr) {
    OpenGLRenderer* renderer = reinterpret_cast<OpenGLRenderer*>(rendererPtr);
    OpenGLRenderer* renderer = reinterpret_cast<OpenGLRenderer*>(rendererPtr);
    SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
    SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
    renderer->concatMatrix(matrix);
    renderer->concatMatrix(*matrix);
}
}


// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
@@ -430,7 +430,7 @@ static void android_view_GLES20Canvas_drawBitmapMatrix(JNIEnv* env, jobject claz
    OpenGLRenderer* renderer = reinterpret_cast<OpenGLRenderer*>(rendererPtr);
    OpenGLRenderer* renderer = reinterpret_cast<OpenGLRenderer*>(rendererPtr);
    SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
    SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
    SkPaint* paint = reinterpret_cast<SkPaint*>(paintPtr);
    SkPaint* paint = reinterpret_cast<SkPaint*>(paintPtr);
    renderer->drawBitmap(bitmap, matrix, paint);
    renderer->drawBitmap(bitmap, *matrix, paint);
}
}


static void android_view_GLES20Canvas_drawBitmapData(JNIEnv* env, jobject clazz,
static void android_view_GLES20Canvas_drawBitmapData(JNIEnv* env, jobject clazz,
+0 −5
Original line number Original line Diff line number Diff line
@@ -80,10 +80,6 @@ void DisplayListData::cleanupResources() {
        delete paths.itemAt(i);
        delete paths.itemAt(i);
    }
    }


    for (size_t i = 0; i < matrices.size(); i++) {
        delete matrices.itemAt(i);
    }

    bitmapResources.clear();
    bitmapResources.clear();
    ownedBitmapResources.clear();
    ownedBitmapResources.clear();
    patchResources.clear();
    patchResources.clear();
@@ -91,7 +87,6 @@ void DisplayListData::cleanupResources() {
    paints.clear();
    paints.clear();
    regions.clear();
    regions.clear();
    paths.clear();
    paths.clear();
    matrices.clear();
    layers.clear();
    layers.clear();
}
}


+0 −1
Original line number Original line Diff line number Diff line
@@ -125,7 +125,6 @@ public:
    Vector<const SkPath*> paths;
    Vector<const SkPath*> paths;
    SortedVector<const SkPath*> sourcePaths;
    SortedVector<const SkPath*> sourcePaths;
    Vector<const SkRegion*> regions;
    Vector<const SkRegion*> regions;
    Vector<const SkMatrix*> matrices;
    Vector<Layer*> layers;
    Vector<Layer*> layers;
    uint32_t functorCount;
    uint32_t functorCount;
    bool hasDrawOps;
    bool hasDrawOps;
+12 −12
Original line number Original line Diff line number Diff line
@@ -472,7 +472,7 @@ private:


class SetMatrixOp : public StateOp {
class SetMatrixOp : public StateOp {
public:
public:
    SetMatrixOp(const SkMatrix* matrix)
    SetMatrixOp(const SkMatrix& matrix)
            : mMatrix(matrix) {}
            : mMatrix(matrix) {}


    virtual void applyState(OpenGLRenderer& renderer, int saveCount) const {
    virtual void applyState(OpenGLRenderer& renderer, int saveCount) const {
@@ -480,22 +480,22 @@ public:
    }
    }


    virtual void output(int level, uint32_t logFlags) const {
    virtual void output(int level, uint32_t logFlags) const {
        if (mMatrix) {
        if (mMatrix.isIdentity()) {
            OP_LOG("SetMatrix " SK_MATRIX_STRING, SK_MATRIX_ARGS(mMatrix));
        } else {
            OP_LOGS("SetMatrix (reset)");
            OP_LOGS("SetMatrix (reset)");
        } else {
            OP_LOG("SetMatrix " SK_MATRIX_STRING, SK_MATRIX_ARGS(&mMatrix));
        }
        }
    }
    }


    virtual const char* name() { return "SetMatrix"; }
    virtual const char* name() { return "SetMatrix"; }


private:
private:
    const SkMatrix* mMatrix;
    const SkMatrix mMatrix;
};
};


class ConcatMatrixOp : public StateOp {
class ConcatMatrixOp : public StateOp {
public:
public:
    ConcatMatrixOp(const SkMatrix* matrix)
    ConcatMatrixOp(const SkMatrix& matrix)
            : mMatrix(matrix) {}
            : mMatrix(matrix) {}


    virtual void applyState(OpenGLRenderer& renderer, int saveCount) const {
    virtual void applyState(OpenGLRenderer& renderer, int saveCount) const {
@@ -503,13 +503,13 @@ public:
    }
    }


    virtual void output(int level, uint32_t logFlags) const {
    virtual void output(int level, uint32_t logFlags) const {
        OP_LOG("ConcatMatrix " SK_MATRIX_STRING, SK_MATRIX_ARGS(mMatrix));
        OP_LOG("ConcatMatrix " SK_MATRIX_STRING, SK_MATRIX_ARGS(&mMatrix));
    }
    }


    virtual const char* name() { return "ConcatMatrix"; }
    virtual const char* name() { return "ConcatMatrix"; }


private:
private:
    const SkMatrix* mMatrix;
    const SkMatrix mMatrix;
};
};


class ClipOp : public StateOp {
class ClipOp : public StateOp {
@@ -746,10 +746,10 @@ protected:


class DrawBitmapMatrixOp : public DrawBoundedOp {
class DrawBitmapMatrixOp : public DrawBoundedOp {
public:
public:
    DrawBitmapMatrixOp(const SkBitmap* bitmap, const SkMatrix* matrix, const SkPaint* paint)
    DrawBitmapMatrixOp(const SkBitmap* bitmap, const SkMatrix& matrix, const SkPaint* paint)
            : DrawBoundedOp(paint), mBitmap(bitmap), mMatrix(matrix) {
            : DrawBoundedOp(paint), mBitmap(bitmap), mMatrix(matrix) {
        mLocalBounds.set(0, 0, bitmap->width(), bitmap->height());
        mLocalBounds.set(0, 0, bitmap->width(), bitmap->height());
        const mat4 transform(*matrix);
        const mat4 transform(matrix);
        transform.mapRect(mLocalBounds);
        transform.mapRect(mLocalBounds);
    }
    }


@@ -758,7 +758,7 @@ public:
    }
    }


    virtual void output(int level, uint32_t logFlags) const {
    virtual void output(int level, uint32_t logFlags) const {
        OP_LOG("Draw bitmap %p matrix " SK_MATRIX_STRING, mBitmap, SK_MATRIX_ARGS(mMatrix));
        OP_LOG("Draw bitmap %p matrix " SK_MATRIX_STRING, mBitmap, SK_MATRIX_ARGS(&mMatrix));
    }
    }


    virtual const char* name() { return "DrawBitmapMatrix"; }
    virtual const char* name() { return "DrawBitmapMatrix"; }
@@ -770,7 +770,7 @@ public:


private:
private:
    const SkBitmap* mBitmap;
    const SkBitmap* mBitmap;
    const SkMatrix* mMatrix;
    const SkMatrix mMatrix;
};
};


class DrawBitmapRectOp : public DrawBoundedOp {
class DrawBitmapRectOp : public DrawBoundedOp {
+3 −6
Original line number Original line Diff line number Diff line
@@ -141,14 +141,12 @@ void DisplayListRenderer::skew(float sx, float sy) {
    StatefulBaseRenderer::skew(sx, sy);
    StatefulBaseRenderer::skew(sx, sy);
}
}


void DisplayListRenderer::setMatrix(const SkMatrix* matrix) {
void DisplayListRenderer::setMatrix(const SkMatrix& matrix) {
    matrix = refMatrix(matrix);
    addStateOp(new (alloc()) SetMatrixOp(matrix));
    addStateOp(new (alloc()) SetMatrixOp(matrix));
    StatefulBaseRenderer::setMatrix(matrix);
    StatefulBaseRenderer::setMatrix(matrix);
}
}


void DisplayListRenderer::concatMatrix(const SkMatrix* matrix) {
void DisplayListRenderer::concatMatrix(const SkMatrix& matrix) {
    matrix = refMatrix(matrix);
    addStateOp(new (alloc()) ConcatMatrixOp(matrix));
    addStateOp(new (alloc()) ConcatMatrixOp(matrix));
    StatefulBaseRenderer::concatMatrix(matrix);
    StatefulBaseRenderer::concatMatrix(matrix);
}
}
@@ -203,10 +201,9 @@ status_t DisplayListRenderer::drawBitmap(const SkBitmap* bitmap, float left, flo
    return DrawGlInfo::kStatusDone;
    return DrawGlInfo::kStatusDone;
}
}


status_t DisplayListRenderer::drawBitmap(const SkBitmap* bitmap, const SkMatrix* matrix,
status_t DisplayListRenderer::drawBitmap(const SkBitmap* bitmap, const SkMatrix& matrix,
        const SkPaint* paint) {
        const SkPaint* paint) {
    bitmap = refBitmap(bitmap);
    bitmap = refBitmap(bitmap);
    matrix = refMatrix(matrix);
    paint = refPaint(paint);
    paint = refPaint(paint);


    addDrawOp(new (alloc()) DrawBitmapMatrixOp(bitmap, matrix, paint));
    addDrawOp(new (alloc()) DrawBitmapMatrixOp(bitmap, matrix, paint));
Loading