Add support for transformations.

This change adds partial support for the following transforms:
- scale()
- translate()
- rotate()
- setMatrix()
- getMatrix()

The transform is stored in a snapshot and saved/restored as needed.
The transform is currently not applied to the clip rect and is not
mapped to the vertex shader.

Change-Id: Id48993453311200804149917d0c126a4d0471226
This commit is contained in:
Romain Guy
2010-06-23 17:47:49 -07:00
parent bb9524b6bd
commit f6a11b8a9e
7 changed files with 253 additions and 79 deletions

View File

@@ -212,8 +212,10 @@ class GLES20Canvas extends Canvas {
@Override
public void translate(float dx, float dy) {
// TODO: Implement
nTranslate(mRenderer, dx, dy);
}
private native void nTranslate(int renderer, float dx, float dy);
@Override
public void skew(float sx, float sy) {
@@ -222,30 +224,39 @@ class GLES20Canvas extends Canvas {
@Override
public void rotate(float degrees) {
// TODO: Implement
nRotate(mRenderer, degrees);
}
private native void nRotate(int renderer, float degrees);
@Override
public void scale(float sx, float sy) {
// TODO: Implement
nScale(mRenderer, sx, sy);
}
private native void nScale(int renderer, float sx, float sy);
@Override
public void setMatrix(Matrix matrix) {
// TODO: Implement
nSetMatrix(mRenderer, matrix.native_instance);
}
private native void nSetMatrix(int renderer, int matrix);
@Override
public void getMatrix(Matrix ctm) {
// TODO: Implement
public void getMatrix(Matrix matrix) {
nGetMatrix(mRenderer, matrix.native_instance);
}
private native void nGetMatrix(int renderer, int matrix);
@Override
public void concat(Matrix matrix) {
// TODO: Implement
nConcatMatrix(mRenderer, matrix.native_instance);
}
private native void nConcatMatrix(int renderer, int matrix);
///////////////////////////////////////////////////////////////////////////
// State management
///////////////////////////////////////////////////////////////////////////