diff options
author | Romain Guy <romainguy@google.com> | 2010-07-12 20:23:03 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-07-12 20:23:03 -0700 |
commit | c7f3ce8401f9bb25ee8818092e85365908ae986d (patch) | |
tree | 1a5ef6ec999dc41b91abd172f10cc775bc0541ac /core/java/android | |
parent | 7e92b2d9e4970af72b62e7d76c8f9c6d39266b96 (diff) | |
parent | 6926c72e25b8dec3dd4b84af0819fa1937ae7296 (diff) | |
download | frameworks_base-c7f3ce8401f9bb25ee8818092e85365908ae986d.zip frameworks_base-c7f3ce8401f9bb25ee8818092e85365908ae986d.tar.gz frameworks_base-c7f3ce8401f9bb25ee8818092e85365908ae986d.tar.bz2 |
Merge "Correctly support pre-multiplied alpha, optimizations, more stuff."
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/view/GLES20Canvas.java | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java index 49ef8dc..0ad3c0b 100644 --- a/core/java/android/view/GLES20Canvas.java +++ b/core/java/android/view/GLES20Canvas.java @@ -45,6 +45,10 @@ class GLES20Canvas extends Canvas { private final float[] mPoint = new float[2]; private final float[] mLine = new float[4]; + + private final Rect mClipBounds = new Rect(); + + private DrawFilter mFilter; /////////////////////////////////////////////////////////////////////////// // Constructors @@ -164,6 +168,7 @@ class GLES20Canvas extends Canvas { @Override public boolean clipRect(Rect rect, Region.Op op) { + // TODO: Implement throw new UnsupportedOperationException(); } @@ -174,6 +179,7 @@ class GLES20Canvas extends Canvas { @Override public boolean clipRect(RectF rect, Region.Op op) { + // TODO: Implement throw new UnsupportedOperationException(); } @@ -336,12 +342,14 @@ class GLES20Canvas extends Canvas { @Override public void setDrawFilter(DrawFilter filter) { - throw new UnsupportedOperationException(); + // Don't crash, but ignore the draw filter + // TODO: Implement PaintDrawFilter + mFilter = filter; } @Override public DrawFilter getDrawFilter() { - throw new UnsupportedOperationException(); + return mFilter; } /////////////////////////////////////////////////////////////////////////// @@ -408,7 +416,11 @@ class GLES20Canvas extends Canvas { @Override public void drawBitmap(int[] colors, int offset, int stride, float x, float y, int width, int height, boolean hasAlpha, Paint paint) { - // TODO: Implement + final Bitmap.Config config = hasAlpha ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; + final Bitmap b = Bitmap.createBitmap(colors, offset, stride, width, height, config); + final int nativePaint = paint == null ? 0 : paint.mNativePaint; + nDrawBitmap(mRenderer, b.mNativeBitmap, x, y, nativePaint); + b.recycle(); } @Override @@ -420,7 +432,7 @@ class GLES20Canvas extends Canvas { @Override public void drawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint) { - throw new UnsupportedOperationException(); + // TODO: Implement } @Override @@ -466,7 +478,9 @@ class GLES20Canvas extends Canvas { @Override public void drawPaint(Paint paint) { - // TODO: Implement + final Rect r = mClipBounds; + nGetClipBounds(mRenderer, r); + drawRect(r.left, r.top, r.right, r.bottom, paint); } @Override @@ -591,6 +605,6 @@ class GLES20Canvas extends Canvas { public void drawVertices(VertexMode mode, int vertexCount, float[] verts, int vertOffset, float[] texs, int texOffset, int[] colors, int colorOffset, short[] indices, int indexOffset, int indexCount, Paint paint) { - throw new UnsupportedOperationException(); + // TODO: Implement } } |