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


Reply via email to