Merge "Take text alignment into account to compue text bounds Bug #10258621" into klp-dev

This commit is contained in:
Romain Guy
2013-08-12 20:52:12 +00:00
committed by Android (Google) Code Review

View File

@@ -610,6 +610,7 @@ static void renderText(OpenGLRenderer* renderer, const jchar* text, int count,
const jchar* glyphs = value->getGlyphs(); const jchar* glyphs = value->getGlyphs();
size_t glyphsCount = value->getGlyphsCount(); size_t glyphsCount = value->getGlyphsCount();
jfloat totalAdvance = value->getTotalAdvance(); jfloat totalAdvance = value->getTotalAdvance();
x += xOffsetForTextAlign(paint, totalAdvance);
const float* positions = value->getPos(); const float* positions = value->getPos();
int bytesCount = glyphsCount * sizeof(jchar); int bytesCount = glyphsCount * sizeof(jchar);
const SkRect& r = value->getBounds(); const SkRect& r = value->getBounds();
@@ -617,8 +618,7 @@ static void renderText(OpenGLRenderer* renderer, const jchar* text, int count,
bounds.translate(x, y); bounds.translate(x, y);
renderer->drawText((const char*) glyphs, bytesCount, glyphsCount, renderer->drawText((const char*) glyphs, bytesCount, glyphsCount,
x + xOffsetForTextAlign(paint, totalAdvance), y, positions, x, y, positions, paint, totalAdvance, bounds);
paint, totalAdvance, bounds);
} }
static void renderTextOnPath(OpenGLRenderer* renderer, const jchar* text, int count, static void renderTextOnPath(OpenGLRenderer* renderer, const jchar* text, int count,
@@ -646,6 +646,7 @@ static void renderTextRun(OpenGLRenderer* renderer, const jchar* text,
const jchar* glyphs = value->getGlyphs(); const jchar* glyphs = value->getGlyphs();
size_t glyphsCount = value->getGlyphsCount(); size_t glyphsCount = value->getGlyphsCount();
jfloat totalAdvance = value->getTotalAdvance(); jfloat totalAdvance = value->getTotalAdvance();
x += xOffsetForTextAlign(paint, totalAdvance);
const float* positions = value->getPos(); const float* positions = value->getPos();
int bytesCount = glyphsCount * sizeof(jchar); int bytesCount = glyphsCount * sizeof(jchar);
const SkRect& r = value->getBounds(); const SkRect& r = value->getBounds();
@@ -653,8 +654,7 @@ static void renderTextRun(OpenGLRenderer* renderer, const jchar* text,
bounds.translate(x, y); bounds.translate(x, y);
renderer->drawText((const char*) glyphs, bytesCount, glyphsCount, renderer->drawText((const char*) glyphs, bytesCount, glyphsCount,
x + xOffsetForTextAlign(paint, totalAdvance), y, positions, x, y, positions, paint, totalAdvance, bounds);
paint, totalAdvance, bounds);
} }
static void android_view_GLES20Canvas_drawTextArray(JNIEnv* env, jobject clazz, static void android_view_GLES20Canvas_drawTextArray(JNIEnv* env, jobject clazz,