summaryrefslogtreecommitdiffstats
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2012-05-14 19:44:40 -0700
committerRomain Guy <romainguy@google.com>2012-05-14 19:44:40 -0700
commite651cc6239616a202f6e96ebc2ed93b4b8b3627c (patch)
tree7aa90f8cccc91555bd652d0a88a898a026cdc333 /libs/hwui/OpenGLRenderer.cpp
parent99a6ddd4cd8762654a575eb4ac3d0e5431d919b8 (diff)
downloadframeworks_base-e651cc6239616a202f6e96ebc2ed93b4b8b3627c.zip
frameworks_base-e651cc6239616a202f6e96ebc2ed93b4b8b3627c.tar.gz
frameworks_base-e651cc6239616a202f6e96ebc2ed93b4b8b3627c.tar.bz2
Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)
Change-Id: Ie28538a2104d21154fdc78a56525e7403f08287d
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index da2192f..7f242c3 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1502,6 +1502,21 @@ void OpenGLRenderer::drawBitmap(SkBitmap* bitmap, SkMatrix* matrix, SkPaint* pai
restore();
}
+void OpenGLRenderer::drawBitmapData(SkBitmap* bitmap, float left, float top, SkPaint* paint) {
+ const float right = left + bitmap->width();
+ const float bottom = top + bitmap->height();
+
+ if (quickReject(left, top, right, bottom)) {
+ return;
+ }
+
+ mCaches.activeTexture(0);
+ Texture* texture = mCaches.textureCache.getTransient(bitmap);
+ const AutoTexture autoCleanup(texture);
+
+ drawTextureRect(left, top, right, bottom, texture, paint);
+}
+
void OpenGLRenderer::drawBitmapMesh(SkBitmap* bitmap, int meshWidth, int meshHeight,
float* vertices, int* colors, SkPaint* paint) {
// TODO: Do a quickReject