Take text alignment into account to compue text bounds
Bug #10258621 Change-Id: I91abf1829a1814410ce8c0c2c17d888031987f18
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user