Software-only implementation of glyph positioning (bug 5443796)
This patch implements glyph positioning in the Skia-based renderer. Note that it depends on a fix for bug 6833339 being in place (correct calculation of advance widths under skew and scale transforms), otherwise there will be regressions. Careful attention was paid to correct results in a wide variety of conditions: alignments, text decorations, scale, skew, etc. Many of these are exercised in the test app attached to bug 6833339. Note that this patch also changes slightly the way that the total advance is calculated - the running is accumulated and passed through to computeRunValues(), so that the x positions of each glyph can be set according to the total advance of all glyphs (in all runs) appearing before (plus, of course, the offset for mark positioning). After committing this patch, text rendering will no longer match between the software and hardware rendering cases. Implementing positioning in the hardware renderer will resolve that, and fully implement bug 5443796. Change-Id: Ie0f7835d48bc120475a19afbfe159aa5304fcaa8
Loading
Please register or sign in to comment