EVALUATION
This can be fixed by asking GDI to perform the rasterisation of glyphs,
then caching these glyphs in the same way as now. This avoids disruption to the
various 2D rendering pipelines, particularly its hardware acceleration
architecture.
This has been verified with software and D3D and OpenGL pipelines,
and with SwingSet and Font2DTest.
Verification has also included complex scripts which requires glyph
positioning.
Glyph advance is still obtained from the JDK rasteriser which
ensures that in the cases of fractional metrics, or algorithmically
styled text, we maintain metrics compatibility. For integer metrics
and no algorithmic styling JDK and GDI already agree for 99.75% of
all glyphs, with only some obscure cases differing likely due to rounding.
Some of the benefits of this approach are behavioural and
metric compatibility with the existing code.
|