Poor quality font rendering

John Hendrikx hjohn at xs4all.nl
Thu Aug 22 07:05:56 PDT 2013


Those are all normal controls, the plot section is just a Label for 
example.

On 22/08/2013 13:39, John C. Turnbull wrote:
> John H, it may be just me but pretty much *all* the fonts in your screenshot
> look quite poor and noticeably different from native font rendering.  If you
> look for instance at the text in the "Plot" section, to me that text looks
> awful.
>
> Is that inside a WebView or some other control?
>
> -jct
>
> -----Original Message-----
> From: openjfx-dev-bounces at openjdk.java.net
> [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of John Hendrikx
> Sent: Thursday, 22 August 2013 17:29
> To: openjfx-dev at openjdk.java.net
> Subject: Re: Poor quality font rendering
>
>
> I took another good look, and I see what is bothering me is mostly how the
> glyph "2" is rendered on my system (it has a thick appearing curve attached
> to the base).  I've included a screenshot of my application that uses
> several different sizes fonts, but it seems only the ones in the top bar are
> rendered somewhat wierd.
>
> http://ukyo.xs4all.nl/Digit2RenderedPoorlyInTopBar.png
>
> I'm on Windows 7, JavaFX 8b99, 32-bit, using D3D pipeline (I get this stuff
> in log in an infinite loop, so must be D3D I think):
>
> D3D Vram Pool: 129,613,674 used (48.3%), 129,613,674 managed (48.3%),
> 268,435,456 total                   --
> com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:134)
> 75 total resources being
> managed
>
> -- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:153)
> 4 permanent resources
> (5.3%)
>
> -- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:154)
> 2 resources locked
> (2.7%)
>
> -- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:156)
> 43 resources contain interesting data
> (57.3%)                                                             --
> com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:158)
> 0 resources disappeared
> (0.0%)
>
> -- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:160)
>
> I also have this in main, before Application.launch is called:
>
>       System.setProperty("prism.lcdtext", "false");
>
> In .root in CSS I have:
>
>     -fx-font-family: "Arial";
>     -fx-font-size: 16px;
>     -fx-font-weight: normal;
>
> So all the fonts you see should be Arial (but the sizes and weights are
> tweaked depending on location).
>
> --John
>
> On 21/08/2013 20:51, Felipe Heidrich wrote:
>> John H:
>>
>> In JFX we decided to go with sub-pixel positioned text (as opposite to
> pixel grid aligned).
>> That said, on Windows for grayscale text, we are not doing that (yet). Are
> you running Windows, with D3D pipeline ?
>> I would need to see a picture to be sure I understand the problem you
> describe.
>> Felipe
>>
>>
>> On Aug 21, 2013, at 10:19 AM, John Hendrikx wrote:
>>
>>> I think I also noticed a change in font rendering around b99 somewhere...
> the fonts seem to be thinner than before, or perhaps more poorly aligned
> with pixel boundaries.  I'd prefer glyphs laid out in the same way each
> time, ie. letters are always on a new pixel boundary, so the same letter
> will look the same regardless of what preceeds it.  I have LCD rendering
> turned off as I donot appreciate colored fringes on my glyphs.
>>> On 21/08/2013 14:53, John C. Turnbull wrote:
>>>> I have only really tested JavaFX extensively on Windows so my
>>>> comments here apply mainly to that platform.
>>>>
>>>>
>>>>
>>>> It seems that even with a font smoothing type of LCD, font rendering
>>>> in JavaFX is not at the same level of quality of native
>>>> applications.  My current experiences are with JavaFX 8 b103 and I
>>>> find that all rendered text in JavaFX appears of a significantly
>>>> poorer quality than that which I would see in Word for example or
>>>> even in IE10 (which I believe uses the same text rendering engine).
> Also, these observations are based on text in "standard"
>>>> controls and the quality of font rendering is dramatically worse
>>>> within the Canvas control.
>>>>
>>>>
>>>>
>>>> I am not an expert in font technology but I have read many times
>>>> that the levels of antialiasing for text that can be achieved in a
>>>> GPU-based renderer are always going to be less than that achieved in a
> CPU-based renderer.
>>>> This is often explained on the basis of graphics card drivers being
>>>> optimised for performance and the rapid rendering of triangles
>>>> commonly required in games rather than for rendering quality when it
> comes to text.
>>>>
>>>>
>>>> Is this the reason why JavaFX font rendering appears less legible
>>>> and of a lower quality than native apps?
>>>>
>>>> If so, how does IE10 for example achieve a higher quality of
>>>> rendering when it seems to also use DirectWrite?
>>>>
>>>> Is the quality of JavaFX font rendering ever going to improve?
>>>>
>>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>>
>>>> -jct
>>>>



More information about the openjfx-dev mailing list