From a80d32f7b69aa37026ab99e4ade1ad86dae76a81 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Fri, 20 Aug 2010 18:42:37 -0700 Subject: [PATCH] Add support for textScaleX. This will not look great because we render fonts using bitmaps, not paths. Change-Id: I01b87b81bfbdbfa28460a5d5309d38e2a65e77c4 --- libs/hwui/OpenGLRenderer.cpp | 12 ++++++++++++ tests/HwAccelerationTest/AndroidManifest.xml | 3 +-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 344068751e055..49d49da44f44e 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -575,6 +575,14 @@ void OpenGLRenderer::drawText(const char* text, int bytesCount, int count, return; } + float scaleX = paint->getTextScaleX(); + bool applyScaleX = scaleX < 0.9999f || scaleX > 1.0001f; + if (applyScaleX) { + save(0); + translate(x - (x * scaleX), 0.0f); + scale(scaleX, 1.0f); + } + float length = -1.0f; switch (paint->getTextAlign()) { case SkPaint::kCenter_Align: @@ -626,6 +634,10 @@ void OpenGLRenderer::drawText(const char* text, int bytesCount, int count, glDisableVertexAttribArray(mCurrentProgram->getAttrib("texCoords")); drawTextDecorations(text, bytesCount, length, x, y, paint); + + if (applyScaleX) { + restore(); + } } void OpenGLRenderer::drawPath(SkPath* path, SkPaint* paint) { diff --git a/tests/HwAccelerationTest/AndroidManifest.xml b/tests/HwAccelerationTest/AndroidManifest.xml index 3ac8c5e5133fd..564f13ebaaab1 100644 --- a/tests/HwAccelerationTest/AndroidManifest.xml +++ b/tests/HwAccelerationTest/AndroidManifest.xml @@ -119,8 +119,7 @@ + android:theme="@android:style/Theme.NoTitleBar">