summaryrefslogtreecommitdiff
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
author Romain Guy <romainguy@google.com> 2013-06-12 00:23:27 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2013-06-12 00:23:27 +0000
commit1e4795ab64755bdae48fe7b8cd78f204c9022791 (patch)
treed5a5dc28396667854f0bfc5719844a9c18b716af /libs/hwui/OpenGLRenderer.cpp
parentfc74f85f2e54ee561888dfef57cd70cb6ab6f2d1 (diff)
parent4c2547fa9244e78115cde0a259291053108c3dc7 (diff)
Merge "Avoid 9patch cache lookups when possible"
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index f5343b161b44..d95a62c19d39 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1407,7 +1407,7 @@ void OpenGLRenderer::setFullScreenClip() {
///////////////////////////////////////////////////////////////////////////////
void OpenGLRenderer::translate(float dx, float dy) {
- currentTransform().translate(dx, dy, 0.0f);
+ currentTransform().translate(dx, dy);
}
void OpenGLRenderer::rotate(float degrees) {
@@ -2337,20 +2337,25 @@ status_t OpenGLRenderer::drawPatch(SkBitmap* bitmap, Res_png_9patch* patch,
SkXfermode::Mode mode;
getAlphaAndMode(paint, &alpha, &mode);
- return drawPatch(bitmap, patch, mCaches.assetAtlas.getEntry(bitmap),
- left, top, right, bottom, alpha, mode);
+ if (quickReject(left, top, right, bottom)) {
+ return DrawGlInfo::kStatusDone;
+ }
+
+ AssetAtlas::Entry* entry = mCaches.assetAtlas.getEntry(bitmap);
+ const Patch* mesh = mCaches.patchCache.get(entry, bitmap->width(), bitmap->height(),
+ right - left, bottom - top, patch);
+
+ return drawPatch(bitmap, mesh, entry, left, top, right, bottom, alpha, mode);
}
-status_t OpenGLRenderer::drawPatch(SkBitmap* bitmap, Res_png_9patch* patch,
+status_t OpenGLRenderer::drawPatch(SkBitmap* bitmap, const Patch* mesh,
AssetAtlas::Entry* entry, float left, float top, float right, float bottom,
int alpha, SkXfermode::Mode mode) {
+
if (quickReject(left, top, right, bottom)) {
return DrawGlInfo::kStatusDone;
}
- const Patch* mesh = mCaches.patchCache.get(entry, bitmap->width(), bitmap->height(),
- right - left, bottom - top, patch);
-
if (CC_LIKELY(mesh && mesh->verticesCount > 0)) {
mCaches.activeTexture(0);
Texture* texture = entry ? entry->texture : mCaches.textureCache.get(bitmap);