Loading libs/hwui/Canvas.h +4 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,10 @@ public: virtual void getMatrix(SkMatrix* outMatrix) const = 0; virtual void setMatrix(const SkMatrix& matrix) = 0; /// Like setMatrix(), but to be translated into local / view-relative coordinates /// rather than executed in global / device coordinates at rendering time. virtual void setLocalMatrix(const SkMatrix& matrix) = 0; virtual void concat(const SkMatrix& matrix) = 0; virtual void rotate(float degrees) = 0; virtual void scale(float sx, float sy) = 0; Loading libs/hwui/DisplayListCanvas.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,11 @@ void DisplayListCanvas::setMatrix(const SkMatrix& matrix) { mState.setMatrix(matrix); } void DisplayListCanvas::setLocalMatrix(const SkMatrix& matrix) { addStateOp(new (alloc()) SetLocalMatrixOp(matrix)); mState.setMatrix(matrix); } void DisplayListCanvas::concat(const SkMatrix& matrix) { addStateOp(new (alloc()) ConcatMatrixOp(matrix)); mState.concatMatrix(matrix); Loading libs/hwui/DisplayListCanvas.h +1 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,7 @@ public: // Matrix virtual void getMatrix(SkMatrix* outMatrix) const override { mState.getMatrix(outMatrix); } virtual void setMatrix(const SkMatrix& matrix) override; virtual void setLocalMatrix(const SkMatrix& matrix) override; virtual void concat(const SkMatrix& matrix) override; virtual void rotate(float degrees) override; Loading libs/hwui/DisplayListOp.h +19 −0 Original line number Diff line number Diff line Loading @@ -489,6 +489,25 @@ private: const SkMatrix mMatrix; }; class SetLocalMatrixOp : public StateOp { public: SetLocalMatrixOp(const SkMatrix& matrix) : mMatrix(matrix) {} virtual void applyState(OpenGLRenderer& renderer, int saveCount) const override { renderer.setLocalMatrix(mMatrix); } virtual void output(int level, uint32_t logFlags) const override { OP_LOG("SetLocalMatrix " SK_MATRIX_STRING, SK_MATRIX_ARGS(&mMatrix)); } virtual const char* name() override { return "SetLocalMatrix"; } private: const SkMatrix mMatrix; }; class ConcatMatrixOp : public StateOp { public: ConcatMatrixOp(const SkMatrix& matrix) Loading libs/hwui/OpenGLRenderer.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -2148,6 +2148,7 @@ void OpenGLRenderer::restoreToCount(int saveCount) { mState.restoreToCount(saveCount); } void OpenGLRenderer::translate(float dx, float dy, float dz) { mState.translate(dx, dy, dz); } Loading @@ -2168,6 +2169,11 @@ void OpenGLRenderer::setMatrix(const Matrix4& matrix) { mState.setMatrix(matrix); } void OpenGLRenderer::setLocalMatrix(const SkMatrix& matrix) { mState.setMatrix(mBaseTransform); mState.concatMatrix(matrix); } void OpenGLRenderer::concatMatrix(const Matrix4& matrix) { mState.concatMatrix(matrix); } Loading Loading
libs/hwui/Canvas.h +4 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,10 @@ public: virtual void getMatrix(SkMatrix* outMatrix) const = 0; virtual void setMatrix(const SkMatrix& matrix) = 0; /// Like setMatrix(), but to be translated into local / view-relative coordinates /// rather than executed in global / device coordinates at rendering time. virtual void setLocalMatrix(const SkMatrix& matrix) = 0; virtual void concat(const SkMatrix& matrix) = 0; virtual void rotate(float degrees) = 0; virtual void scale(float sx, float sy) = 0; Loading
libs/hwui/DisplayListCanvas.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,11 @@ void DisplayListCanvas::setMatrix(const SkMatrix& matrix) { mState.setMatrix(matrix); } void DisplayListCanvas::setLocalMatrix(const SkMatrix& matrix) { addStateOp(new (alloc()) SetLocalMatrixOp(matrix)); mState.setMatrix(matrix); } void DisplayListCanvas::concat(const SkMatrix& matrix) { addStateOp(new (alloc()) ConcatMatrixOp(matrix)); mState.concatMatrix(matrix); Loading
libs/hwui/DisplayListCanvas.h +1 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,7 @@ public: // Matrix virtual void getMatrix(SkMatrix* outMatrix) const override { mState.getMatrix(outMatrix); } virtual void setMatrix(const SkMatrix& matrix) override; virtual void setLocalMatrix(const SkMatrix& matrix) override; virtual void concat(const SkMatrix& matrix) override; virtual void rotate(float degrees) override; Loading
libs/hwui/DisplayListOp.h +19 −0 Original line number Diff line number Diff line Loading @@ -489,6 +489,25 @@ private: const SkMatrix mMatrix; }; class SetLocalMatrixOp : public StateOp { public: SetLocalMatrixOp(const SkMatrix& matrix) : mMatrix(matrix) {} virtual void applyState(OpenGLRenderer& renderer, int saveCount) const override { renderer.setLocalMatrix(mMatrix); } virtual void output(int level, uint32_t logFlags) const override { OP_LOG("SetLocalMatrix " SK_MATRIX_STRING, SK_MATRIX_ARGS(&mMatrix)); } virtual const char* name() override { return "SetLocalMatrix"; } private: const SkMatrix mMatrix; }; class ConcatMatrixOp : public StateOp { public: ConcatMatrixOp(const SkMatrix& matrix) Loading
libs/hwui/OpenGLRenderer.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -2148,6 +2148,7 @@ void OpenGLRenderer::restoreToCount(int saveCount) { mState.restoreToCount(saveCount); } void OpenGLRenderer::translate(float dx, float dy, float dz) { mState.translate(dx, dy, dz); } Loading @@ -2168,6 +2169,11 @@ void OpenGLRenderer::setMatrix(const Matrix4& matrix) { mState.setMatrix(matrix); } void OpenGLRenderer::setLocalMatrix(const SkMatrix& matrix) { mState.setMatrix(mBaseTransform); mState.concatMatrix(matrix); } void OpenGLRenderer::concatMatrix(const Matrix4& matrix) { mState.concatMatrix(matrix); } Loading