[OpenJDK 2D-Dev] Font question
Igor Nekrestyanov
Igor.Nekrestyanov at Sun.COM
Thu Apr 17 09:12:43 UTC 2008
Hi Roman,
>>> However, there seems to be a problem related to fonts. To me, it looks
>>> like they are not hinted properly. My TextRenderer implementation is
>>> very simple and straightforward:
>>>
>>>
>> The only control for font hinting is how the rasteriser - freetype - is
>> compiled.
>> If your copy of libfreetype is built with hinting turned off, then that
>> will make a difference.
>>
>
> I did not change compilation of FreeType in OpenJDK. I am using the same
> FreeType that is used when I choose the default AWT/J2D implementation,
> and there it looks just fine.
>
Just to clarify.
OpenJDK sources do not include FreeType. Only glue code to Freetype
library is included into JDK.
I.e. if you build openjdk yourself it will use library you have compiled
(or have installed)
and whether Freetype does hinting or autohinting depends on how that
library is compiled.
There is no support to enable/disable hinting in runtime by hints or
options.
However, in your case it seems you might be actually using unhinted
outlines.
I suspect that you might be requesting shapes from the rasterizer and
then use standard geometric
scan conversion code to draw it. Shapes will be unhinted and geometric
code does not know
anything about truetype scan conversion specifics. Results rarely look
good at small sizes.
Note that there is no (easy) way to get hinted outline from java2d
(neither using t2k nor freetype).
This is because hinting is process of adjusting to particular font size
and resolution, and therefore
it is always used only before scan conversion.
I suggest to check what is actually requested from rasterizer (e.g. by
instrumenting FreeType glue code)
and make sure bitmaps you draw are coming from rasterizer.
-igor
More information about the 2d-dev
mailing list