summaryrefslogtreecommitdiffstats
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-10-15 16:06:03 -0700
committerRomain Guy <romainguy@google.com>2010-10-15 16:06:03 -0700
commit9d13fe25f4f10b25776b1dc5c858f9ebb0b28b30 (patch)
tree9ea9d664453cffdd499fad587693e5dcf12e4c88 /libs/hwui/OpenGLRenderer.cpp
parente5ebcb0107a939395e03592fd44c746cd09e311d (diff)
downloadframeworks_base-9d13fe25f4f10b25776b1dc5c858f9ebb0b28b30.zip
frameworks_base-9d13fe25f4f10b25776b1dc5c858f9ebb0b28b30.tar.gz
frameworks_base-9d13fe25f4f10b25776b1dc5c858f9ebb0b28b30.tar.bz2
Fix text rendering artifact.
Change-Id: I50f47207846e4208d363dde4e8f5f1a0f23d2d75
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 0a95408..97bb73f 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -865,6 +865,10 @@ void OpenGLRenderer::drawText(const char* text, int bytesCount, int count,
fontRenderer.setFont(paint, SkTypeface::UniqueID(paint->getTypeface()),
paint->getTextSize());
+ Rect clipRect(*mSnapshot->clipRect);
+ glScissor(clipRect.left, mSnapshot->height - clipRect.bottom,
+ clipRect.getWidth(), clipRect.getHeight());
+
if (mHasShadow) {
glActiveTexture(gTextureUnits[0]);
mCaches.dropShadowCache.setFontRenderer(fontRenderer);
@@ -889,12 +893,15 @@ void OpenGLRenderer::drawText(const char* text, int bytesCount, int count,
const Rect& clip = mSnapshot->getLocalClip();
clearLayerRegions();
+
fontRenderer.renderText(paint, &clip, text, 0, bytesCount, count, x, y);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glDisableVertexAttribArray(mCaches.currentProgram->getAttrib("texCoords"));
drawTextDecorations(text, bytesCount, length, x, y, paint);
+
+ setScissorFromClip();
}
void OpenGLRenderer::drawPath(SkPath* path, SkPaint* paint) {