Loading core/java/android/view/GLES20Canvas.java +4 −2 Original line number Diff line number Diff line Loading @@ -374,16 +374,18 @@ class GLES20Canvas extends HardwareCanvas { @Override public void translate(float dx, float dy) { nTranslate(mRenderer, dx, dy); if (dx != 0.0f || dy != 0.0f) nTranslate(mRenderer, dx, dy); } private native void nTranslate(int renderer, float dx, float dy); @Override public void skew(float sx, float sy) { throw new UnsupportedOperationException(); nSkew(mRenderer, sx, sy); } private native void nSkew(int renderer, float sx, float sy); @Override public void rotate(float degrees) { nRotate(mRenderer, degrees); Loading core/jni/android_view_GLES20Canvas.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -213,6 +213,11 @@ static void android_view_GLES20Canvas_scale(JNIEnv* env, jobject canvas, renderer->scale(sx, sy); } static void android_view_GLES20Canvas_skew(JNIEnv* env, jobject canvas, OpenGLRenderer* renderer, jfloat sx, jfloat sy) { renderer->skew(sx, sy); } static void android_view_GLES20Canvas_setMatrix(JNIEnv* env, jobject canvas, OpenGLRenderer* renderer, SkMatrix* matrix) { renderer->setMatrix(matrix); Loading Loading @@ -550,6 +555,7 @@ static JNINativeMethod gMethods[] = { { "nTranslate", "(IFF)V", (void*) android_view_GLES20Canvas_translate }, { "nRotate", "(IF)V", (void*) android_view_GLES20Canvas_rotate }, { "nScale", "(IFF)V", (void*) android_view_GLES20Canvas_scale }, { "nSkew", "(IFF)V", (void*) android_view_GLES20Canvas_skew }, { "nSetMatrix", "(II)V", (void*) android_view_GLES20Canvas_setMatrix }, { "nGetMatrix", "(I)I", (void*) android_view_GLES20Canvas_getNativeMatrix }, Loading libs/hwui/DisplayListRenderer.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -268,6 +268,10 @@ void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { renderer.scale(getFloat(), getFloat()); } break; case Skew: { renderer.skew(getFloat(), getFloat()); } break; case SetMatrix: { renderer.setMatrix(getMatrix()); } Loading Loading @@ -508,6 +512,12 @@ void DisplayListRenderer::scale(float sx, float sy) { OpenGLRenderer::scale(sx, sy); } void DisplayListRenderer::skew(float sx, float sy) { addOp(DisplayList::Skew); addPoint(sx, sy); OpenGLRenderer::skew(sx, sy); } void DisplayListRenderer::setMatrix(SkMatrix* matrix) { addOp(DisplayList::SetMatrix); addMatrix(matrix); Loading libs/hwui/DisplayListRenderer.h +2 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ public: Translate, Rotate, Scale, Skew, SetMatrix, ConcatMatrix, ClipRect, Loading Loading @@ -250,6 +251,7 @@ public: void translate(float dx, float dy); void rotate(float degrees); void scale(float sx, float sy); void skew(float sx, float sy); void setMatrix(SkMatrix* matrix); void concatMatrix(SkMatrix* matrix); Loading libs/hwui/Matrix.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,24 @@ void Matrix4::loadScale(float sx, float sy, float sz) { data[kScaleZ] = sz; } void Matrix4::loadSkew(float sx, float sy) { loadIdentity(); data[kScaleX] = 1.0f; data[kSkewX] = sx; data[kTranslateX] = 0.0f; data[kSkewY] = sy; data[kScaleY] = 1.0f; data[kTranslateY] = 0.0f; data[kPerspective0] = 0.0f; data[kPerspective1] = 0.0f; data[kPerspective2] = 1.0f; mSimpleMatrix = false; } void Matrix4::loadRotate(float angle, float x, float y, float z) { data[kPerspective0] = 0.0f; data[kPerspective1] = 0.0f; Loading Loading
core/java/android/view/GLES20Canvas.java +4 −2 Original line number Diff line number Diff line Loading @@ -374,16 +374,18 @@ class GLES20Canvas extends HardwareCanvas { @Override public void translate(float dx, float dy) { nTranslate(mRenderer, dx, dy); if (dx != 0.0f || dy != 0.0f) nTranslate(mRenderer, dx, dy); } private native void nTranslate(int renderer, float dx, float dy); @Override public void skew(float sx, float sy) { throw new UnsupportedOperationException(); nSkew(mRenderer, sx, sy); } private native void nSkew(int renderer, float sx, float sy); @Override public void rotate(float degrees) { nRotate(mRenderer, degrees); Loading
core/jni/android_view_GLES20Canvas.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -213,6 +213,11 @@ static void android_view_GLES20Canvas_scale(JNIEnv* env, jobject canvas, renderer->scale(sx, sy); } static void android_view_GLES20Canvas_skew(JNIEnv* env, jobject canvas, OpenGLRenderer* renderer, jfloat sx, jfloat sy) { renderer->skew(sx, sy); } static void android_view_GLES20Canvas_setMatrix(JNIEnv* env, jobject canvas, OpenGLRenderer* renderer, SkMatrix* matrix) { renderer->setMatrix(matrix); Loading Loading @@ -550,6 +555,7 @@ static JNINativeMethod gMethods[] = { { "nTranslate", "(IFF)V", (void*) android_view_GLES20Canvas_translate }, { "nRotate", "(IF)V", (void*) android_view_GLES20Canvas_rotate }, { "nScale", "(IFF)V", (void*) android_view_GLES20Canvas_scale }, { "nSkew", "(IFF)V", (void*) android_view_GLES20Canvas_skew }, { "nSetMatrix", "(II)V", (void*) android_view_GLES20Canvas_setMatrix }, { "nGetMatrix", "(I)I", (void*) android_view_GLES20Canvas_getNativeMatrix }, Loading
libs/hwui/DisplayListRenderer.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -268,6 +268,10 @@ void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { renderer.scale(getFloat(), getFloat()); } break; case Skew: { renderer.skew(getFloat(), getFloat()); } break; case SetMatrix: { renderer.setMatrix(getMatrix()); } Loading Loading @@ -508,6 +512,12 @@ void DisplayListRenderer::scale(float sx, float sy) { OpenGLRenderer::scale(sx, sy); } void DisplayListRenderer::skew(float sx, float sy) { addOp(DisplayList::Skew); addPoint(sx, sy); OpenGLRenderer::skew(sx, sy); } void DisplayListRenderer::setMatrix(SkMatrix* matrix) { addOp(DisplayList::SetMatrix); addMatrix(matrix); Loading
libs/hwui/DisplayListRenderer.h +2 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ public: Translate, Rotate, Scale, Skew, SetMatrix, ConcatMatrix, ClipRect, Loading Loading @@ -250,6 +251,7 @@ public: void translate(float dx, float dy); void rotate(float degrees); void scale(float sx, float sy); void skew(float sx, float sy); void setMatrix(SkMatrix* matrix); void concatMatrix(SkMatrix* matrix); Loading
libs/hwui/Matrix.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,24 @@ void Matrix4::loadScale(float sx, float sy, float sz) { data[kScaleZ] = sz; } void Matrix4::loadSkew(float sx, float sy) { loadIdentity(); data[kScaleX] = 1.0f; data[kSkewX] = sx; data[kTranslateX] = 0.0f; data[kSkewY] = sy; data[kScaleY] = 1.0f; data[kTranslateY] = 0.0f; data[kPerspective0] = 0.0f; data[kPerspective1] = 0.0f; data[kPerspective2] = 1.0f; mSimpleMatrix = false; } void Matrix4::loadRotate(float angle, float x, float y, float z) { data[kPerspective0] = 0.0f; data[kPerspective1] = 0.0f; Loading