summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-07-12 20:23:03 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-07-12 20:23:03 -0700
commitc7f3ce8401f9bb25ee8818092e85365908ae986d (patch)
tree1a5ef6ec999dc41b91abd172f10cc775bc0541ac /core/java/android
parent7e92b2d9e4970af72b62e7d76c8f9c6d39266b96 (diff)
parent6926c72e25b8dec3dd4b84af0819fa1937ae7296 (diff)
downloadframeworks_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.java26
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
}
}