diff options
| -rw-r--r-- | graphics/java/android/graphics/Canvas.java | 6 | ||||
| -rw-r--r-- | libs/hwui/DisplayListRenderer.cpp | 1 | ||||
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 4 | ||||
| -rw-r--r-- | tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java | 34 |
4 files changed, 31 insertions, 14 deletions
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java index 89e725a17f27..00b06e0303b1 100644 --- a/graphics/java/android/graphics/Canvas.java +++ b/graphics/java/android/graphics/Canvas.java @@ -1240,7 +1240,11 @@ public class Canvas { VertexMode(int nativeInt) { this.nativeInt = nativeInt; } - final int nativeInt; + + /** + * @hide + */ + public final int nativeInt; } /** diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index 200e24800291..ffd3be470fe6 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -325,6 +325,7 @@ void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { renderer.drawBitmapMesh(bitmap, meshWidth, meshHeight, vertices, colors, getPaint()); } + break; case DrawPatch: { int32_t* xDivs = NULL; int32_t* yDivs = NULL; diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 2467d8ef7943..e8dc9f6cfd86 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1094,10 +1094,10 @@ void OpenGLRenderer::drawBitmapMesh(SkBitmap* bitmap, int meshWidth, int meshHei SkXfermode::Mode mode; getAlphaAndMode(paint, &alpha, &mode); - // TODO: Support the colors array const uint32_t count = meshWidth * meshHeight * 6; - TextureVertex mesh[count]; + // TODO: Support the colors array + TextureVertex mesh[count]; TextureVertex* vertex = mesh; for (int32_t y = 0; y < meshHeight; y++) { for (int32_t x = 0; x < meshWidth; x++) { diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java index 833d559c2810..8f98cbb2df32 100644 --- a/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java +++ b/tests/HwAccelerationTest/src/com/android/test/hwui/BitmapMeshActivity.java @@ -22,10 +22,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffXfermode; import android.os.Bundle; -import android.util.Log; import android.view.View; @SuppressWarnings({"UnusedDeclaration"}) @@ -41,11 +38,30 @@ public class BitmapMeshActivity extends Activity { static class BitmapMeshView extends View { private Paint mBitmapPaint; private final Bitmap mBitmap1; + private float[] mVertices; + private int[] mColors; BitmapMeshView(Context c) { super(c); mBitmap1 = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1); + + final float width = mBitmap1.getWidth() / 3.0f; + final float height = mBitmap1.getHeight() / 3.0f; + + mVertices = new float[] { + 0.0f, 0.0f, width, 0.0f, width * 2, 0.0f, width * 3, 0.0f, + 0.0f, height, width, height, width * 2, height, width * 4, height, + 0.0f, height * 2, width, height * 2, width * 2, height * 2, width * 3, height * 2, + 0.0f, height * 4, width, height * 4, width * 2, height * 4, width * 4, height * 4, + }; + + mColors = new int[] { + 0xffff0000, 0xff00ff00, 0xff0000ff, 0xffff0000, + 0xff0000ff, 0xffff0000, 0xff00ff00, 0xff00ff00, + 0xff00ff00, 0xff0000ff, 0xffff0000, 0xff00ff00, + 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00ff0000, + }; } @Override @@ -54,14 +70,10 @@ public class BitmapMeshActivity extends Activity { canvas.drawARGB(255, 255, 255, 255); canvas.translate(100, 100); - final float width = mBitmap1.getWidth() / 3.0f; - final float height = mBitmap1.getHeight() / 3.0f; - canvas.drawBitmapMesh(mBitmap1, 3, 3, new float[] { - 0.0f, 0.0f, width, 0.0f, width * 2, 0.0f, width * 3, 0.0f, - 0.0f, height, width, height, width * 2, height, width * 4, height, - 0.0f, height * 2, width, height * 2, width * 2, height * 2, width * 3, height * 2, - 0.0f, height * 4, width, height * 4, width * 2, height * 4, width * 4, height * 4, - }, 0, null, 0, null); + canvas.drawBitmapMesh(mBitmap1, 3, 3, mVertices, 0, null, 0, null); + + canvas.translate(400, 0); + canvas.drawBitmapMesh(mBitmap1, 3, 3, mVertices, 0, mColors, 0, null); } } } |