Take text alignment into account to compue text bounds

Bug #10258621

Change-Id: I91abf1829a1814410ce8c0c2c17d888031987f18
This commit is contained in:
Romain Guy
2013-08-12 13:25:29 -07:00
parent 790552b240
commit b15b446f42

View File

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