Re: Text rendering on Windows

2014-08-18 Thread Felipe Heidrich
Hi John,

1)
There are many different ways to configure DirectWrite, but without more 
details I can not tell what that is for your case.
Maybe the first thing to try is to go to DWGlyph#createAnalysis() and changed 
the rendering mode from DWRITE_RENDERING_MODE_NATURAL to 
DWRITE_RENDERING_MODE_GDI_CLASSIC or DWRITE_RENDERING_MODE_GDI_NATURAL. That 
said, there are many other knobs to try and combine.

You can also file a jira with images of your javaFX application and a native 
app using the very same font and size, same foreground, and same background. 
That should enable me to try it on my machine too.

In case you are coming to JavaOne this year, you could bring your laptop and 
application, I have a BOF on text rendering scheduled. We could hack some code 
together and maybe find a solution.

2)
LCD text rendering on Canvas is assigned to Jim, see 
https://javafx-jira.kenai.com/browse/RT-23822
The fix version recored on jira is 9, it would be nice if we could get it 
before that but I don’t know if it is possible, Jim ?

Thank you,
Felipe



 On Aug 18, 2014, at 1:28 AM, John C. Turnbull ozem...@ozemail.com.au wrote:
 
 Hi Felipe,
 
 I just finished watching your excellent presentation at SVJUGFX on text 
 rendering with JavaFX and have a couple of multi part questions:
 
 1) I noted that DirectWrite is now used to rasterise fonts on Windows instead 
 of T2K or GDI and I for one am pleased about this. However, no matter what I 
 do I just can't get JavaFX text to be rendered as crisply or as black as I 
 see in native Windows apps that also use DirectWrite. The result is that my 
 app undesirably stands out from a native app.
 
 What could be the cause of this? I saw that DirectWrite provides several 
 options for rendering text and that currently only the default one is being 
 applied so could it have something to do with this?
 
 Is work being done to reduce the differential between JavaFX text rendering 
 quality and that of native Windows apps?
 
 2) I appreciated the explanation relating to LCD text in Canvas and the issue 
 with the Canvas initially bring a transparent surface making later blending 
 with an actual background problematic leading to greyscale support only.
 
 Given that many of us see this as a very serious impediment to developing 
 complex controls that use Canvas, is there a focus within the JFX team on 
 finding a way of supporting LCD text in Canvas and if so, which JFX version 
 is likely to first include this support?
 
 Thanks again for a great talk and for all the hard work you have put into 
 improving text rendering in JavaFX :-)
 
 -jct
 
 



Re: Text rendering on Windows

2014-08-18 Thread John C. Turnbull
Hi Felipe,

Thanks for your prompt and informative response.

I won't be able to get access to a Windows machine for another week or so but 
when I do I will gladly send you some screenshots.  However, are you saying 
that this is the first time anyone has reported such a finding? There's no 
existing JIRA for this specific issue? I ask because even though people tell me 
I am super fussy with fonts and see things others just can't see, I have 
observed the stated discrepancy on *every* Windows machine I have tried with 
JFX 8 (about 4 quite different machines) so I would be very surprised if no one 
else notices a difference.

Thanks for the J1 suggestion but sadly I will not be able to attend this year.

As for LCD on Canvas, I am very pleased that it is being addressed and even 
though I want it right now, JFX 9 fits fairly well with my timeline. Hopefully 
there will be preview releases to test in the not too distant future...

Cheers,

-jct

 On 18 Aug 2014, at 9:00 pm, Felipe Heidrich felipe.heidr...@oracle.com 
 wrote:
 
 Hi John,
 
 1)
 There are many different ways to configure DirectWrite, but without more 
 details I can not tell what that is for your case.
 Maybe the first thing to try is to go to DWGlyph#createAnalysis() and changed 
 the rendering mode from DWRITE_RENDERING_MODE_NATURAL to 
 DWRITE_RENDERING_MODE_GDI_CLASSIC or DWRITE_RENDERING_MODE_GDI_NATURAL. That 
 said, there are many other knobs to try and combine.
 
 You can also file a jira with images of your javaFX application and a native 
 app using the very same font and size, same foreground, and same background. 
 That should enable me to try it on my machine too.
 
 In case you are coming to JavaOne this year, you could bring your laptop and 
 application, I have a BOF on text rendering scheduled. We could hack some 
 code together and maybe find a solution.
 
 2)
 LCD text rendering on Canvas is assigned to Jim, see 
 https://javafx-jira.kenai.com/browse/RT-23822
 The fix version recored on jira is 9, it would be nice if we could get it 
 before that but I don’t know if it is possible, Jim ?
 
 Thank you,
 Felipe
 
 
 
 On Aug 18, 2014, at 1:28 AM, John C. Turnbull ozem...@ozemail.com.au wrote:
 
 Hi Felipe,
 
 I just finished watching your excellent presentation at SVJUGFX on text 
 rendering with JavaFX and have a couple of multi part questions:
 
 1) I noted that DirectWrite is now used to rasterise fonts on Windows 
 instead of T2K or GDI and I for one am pleased about this. However, no 
 matter what I do I just can't get JavaFX text to be rendered as crisply or 
 as black as I see in native Windows apps that also use DirectWrite. The 
 result is that my app undesirably stands out from a native app.
 
 What could be the cause of this? I saw that DirectWrite provides several 
 options for rendering text and that currently only the default one is being 
 applied so could it have something to do with this?
 
 Is work being done to reduce the differential between JavaFX text rendering 
 quality and that of native Windows apps?
 
 2) I appreciated the explanation relating to LCD text in Canvas and the 
 issue with the Canvas initially bring a transparent surface making later 
 blending with an actual background problematic leading to greyscale support 
 only.
 
 Given that many of us see this as a very serious impediment to developing 
 complex controls that use Canvas, is there a focus within the JFX team on 
 finding a way of supporting LCD text in Canvas and if so, which JFX version 
 is likely to first include this support?
 
 Thanks again for a great talk and for all the hard work you have put into 
 improving text rendering in JavaFX :-)
 
 -jct
 


Re: Text rendering on Windows

2014-08-18 Thread Richard Bair
 I won't be able to get access to a Windows machine for another week or so but 
 when I do I will gladly send you some screenshots.  However, are you saying 
 that this is the first time anyone has reported such a finding? There's no 
 existing JIRA for this specific issue? I ask because even though people tell 
 me I am super fussy with fonts and see things others just can't see, I have 
 observed the stated discrepancy on *every* Windows machine I have tried with 
 JFX 8 (about 4 quite different machines) so I would be very surprised if no 
 one else notices a difference.

It is really common for two font fussy people to disagree on which font 
rendering is “better” :-). We’ve also looked at various applications and it 
seems to be a mixture of different techniques (sometimes even within the same 
app!). For such things, it might be better to expose some kind of settings that 
lets the developer chose which font hinting they want to use or other settings. 
Just something to keep in mind.

The other day I was doing some HTML (blah) and comparing the font rendering 
with another website. My fonts were dark and heavy, their fonts were light and 
stylish. The font was exactly the same. The weight was exactly the same. The 
style, variant, etc were all the same. The difference was 
'-webkit-font-smoothing: antialiased;’. I don’t know if the two of us, given 
the same page and same rendering, would agree on which font looked nicer (maybe 
we would, maybe not, I really don’t know!).

Which makes me think we probably need to expose some toggles so folks can tweak 
the characteristics to their liking.

Richard

Re: Text rendering on Windows

2014-08-18 Thread Kevin Rushforth



As for LCD on Canvas, I am very pleased that it is being addressed and even 
though I want it right now, JFX 9 fits fairly well with my timeline. Hopefully 
there will be preview releases to test in the not too distant future...
  


Btw, as I mentioned in another thread we are looking to pull 
LCD-on-Canvas into an 8-update release (possibly 8u40).


-- Kevin



John C. Turnbull wrote:

Hi Felipe,

Thanks for your prompt and informative response.

I won't be able to get access to a Windows machine for another week or so but 
when I do I will gladly send you some screenshots.  However, are you saying 
that this is the first time anyone has reported such a finding? There's no 
existing JIRA for this specific issue? I ask because even though people tell me 
I am super fussy with fonts and see things others just can't see, I have 
observed the stated discrepancy on *every* Windows machine I have tried with 
JFX 8 (about 4 quite different machines) so I would be very surprised if no one 
else notices a difference.

Thanks for the J1 suggestion but sadly I will not be able to attend this year.

As for LCD on Canvas, I am very pleased that it is being addressed and even 
though I want it right now, JFX 9 fits fairly well with my timeline. Hopefully 
there will be preview releases to test in the not too distant future...

Cheers,

-jct

  

On 18 Aug 2014, at 9:00 pm, Felipe Heidrich felipe.heidr...@oracle.com wrote:

Hi John,

1)
There are many different ways to configure DirectWrite, but without more 
details I can not tell what that is for your case.
Maybe the first thing to try is to go to DWGlyph#createAnalysis() and changed 
the rendering mode from DWRITE_RENDERING_MODE_NATURAL to 
DWRITE_RENDERING_MODE_GDI_CLASSIC or DWRITE_RENDERING_MODE_GDI_NATURAL. That 
said, there are many other knobs to try and combine.

You can also file a jira with images of your javaFX application and a native 
app using the very same font and size, same foreground, and same background. 
That should enable me to try it on my machine too.

In case you are coming to JavaOne this year, you could bring your laptop and 
application, I have a BOF on text rendering scheduled. We could hack some code 
together and maybe find a solution.

2)
LCD text rendering on Canvas is assigned to Jim, see 
https://javafx-jira.kenai.com/browse/RT-23822
The fix version recored on jira is 9, it would be nice if we could get it 
before that but I don’t know if it is possible, Jim ?

Thank you,
Felipe





On Aug 18, 2014, at 1:28 AM, John C. Turnbull ozem...@ozemail.com.au wrote:

Hi Felipe,

I just finished watching your excellent presentation at SVJUGFX on text 
rendering with JavaFX and have a couple of multi part questions:

1) I noted that DirectWrite is now used to rasterise fonts on Windows instead of T2K or GDI and I 
for one am pleased about this. However, no matter what I do I just can't get JavaFX text to be 
rendered as crisply or as black as I see in native Windows apps that also use 
DirectWrite. The result is that my app undesirably stands out from a native app.

What could be the cause of this? I saw that DirectWrite provides several 
options for rendering text and that currently only the default one is being 
applied so could it have something to do with this?

Is work being done to reduce the differential between JavaFX text rendering 
quality and that of native Windows apps?

2) I appreciated the explanation relating to LCD text in Canvas and the issue 
with the Canvas initially bring a transparent surface making later blending 
with an actual background problematic leading to greyscale support only.

Given that many of us see this as a very serious impediment to developing 
complex controls that use Canvas, is there a focus within the JFX team on 
finding a way of supporting LCD text in Canvas and if so, which JFX version is 
likely to first include this support?

Thanks again for a great talk and for all the hard work you have put into 
improving text rendering in JavaFX :-)

-jct
  


Re: Text rendering on Windows

2014-08-18 Thread John C. Turnbull
Richard, I totally agree on the subjective nature of font appreciation but 
that's not really what I am highlighting here. What I am seeing is a difference 
between the quality of font rendering between JFX and native apps on the same 
machine with the same font etc. and the JFX rendering is definitely less 
sharp/black. Some may prefer that (not me) but the issue is that there *is* a 
difference.

Cheers,

-jct

On 18 Aug 2014, at 10:36 pm, Richard Bair richard.b...@oracle.com wrote:

 I won't be able to get access to a Windows machine for another week or so 
 but when I do I will gladly send you some screenshots.  However, are you 
 saying that this is the first time anyone has reported such a finding? 
 There's no existing JIRA for this specific issue? I ask because even though 
 people tell me I am super fussy with fonts and see things others just can't 
 see, I have observed the stated discrepancy on *every* Windows machine I 
 have tried with JFX 8 (about 4 quite different machines) so I would be very 
 surprised if no one else notices a difference.
 
 It is really common for two font fussy people to disagree on which font 
 rendering is “better” :-). We’ve also looked at various applications and it 
 seems to be a mixture of different techniques (sometimes even within the same 
 app!). For such things, it might be better to expose some kind of settings 
 that lets the developer chose which font hinting they want to use or other 
 settings. Just something to keep in mind.
 
 The other day I was doing some HTML (blah) and comparing the font rendering 
 with another website. My fonts were dark and heavy, their fonts were light 
 and stylish. The font was exactly the same. The weight was exactly the same. 
 The style, variant, etc were all the same. The difference was 
 '-webkit-font-smoothing: antialiased;’. I don’t know if the two of us, given 
 the same page and same rendering, would agree on which font looked nicer 
 (maybe we would, maybe not, I really don’t know!).
 
 Which makes me think we probably need to expose some toggles so folks can 
 tweak the characteristics to their liking.
 
 Richard


Re: Text rendering on Windows

2014-08-18 Thread John C. Turnbull
That's great to hear Kevin!

 On 18 Aug 2014, at 10:39 pm, Kevin Rushforth kevin.rushfo...@oracle.com 
 wrote:
 
 
 As for LCD on Canvas, I am very pleased that it is being addressed and even 
 though I want it right now, JFX 9 fits fairly well with my timeline. 
 Hopefully there will be preview releases to test in the not too distant 
 future...
 
 Btw, as I mentioned in another thread we are looking to pull LCD-on-Canvas 
 into an 8-update release (possibly 8u40).
 
 -- Kevin
 
 
 
 John C. Turnbull wrote:
 Hi Felipe,
 
 Thanks for your prompt and informative response.
 
 I won't be able to get access to a Windows machine for another week or so 
 but when I do I will gladly send you some screenshots.  However, are you 
 saying that this is the first time anyone has reported such a finding? 
 There's no existing JIRA for this specific issue? I ask because even though 
 people tell me I am super fussy with fonts and see things others just can't 
 see, I have observed the stated discrepancy on *every* Windows machine I 
 have tried with JFX 8 (about 4 quite different machines) so I would be very 
 surprised if no one else notices a difference.
 
 Thanks for the J1 suggestion but sadly I will not be able to attend this 
 year.
 
 As for LCD on Canvas, I am very pleased that it is being addressed and even 
 though I want it right now, JFX 9 fits fairly well with my timeline. 
 Hopefully there will be preview releases to test in the not too distant 
 future...
 
 Cheers,
 
 -jct
 
  
 On 18 Aug 2014, at 9:00 pm, Felipe Heidrich felipe.heidr...@oracle.com 
 wrote:
 
 Hi John,
 
 1)
 There are many different ways to configure DirectWrite, but without more 
 details I can not tell what that is for your case.
 Maybe the first thing to try is to go to DWGlyph#createAnalysis() and 
 changed the rendering mode from DWRITE_RENDERING_MODE_NATURAL to 
 DWRITE_RENDERING_MODE_GDI_CLASSIC or DWRITE_RENDERING_MODE_GDI_NATURAL. 
 That said, there are many other knobs to try and combine.
 
 You can also file a jira with images of your javaFX application and a 
 native app using the very same font and size, same foreground, and same 
 background. That should enable me to try it on my machine too.
 
 In case you are coming to JavaOne this year, you could bring your laptop 
 and application, I have a BOF on text rendering scheduled. We could hack 
 some code together and maybe find a solution.
 
 2)
 LCD text rendering on Canvas is assigned to Jim, see 
 https://javafx-jira.kenai.com/browse/RT-23822
 The fix version recored on jira is 9, it would be nice if we could get it 
 before that but I don’t know if it is possible, Jim ?
 
 Thank you,
 Felipe
 
 
 

 On Aug 18, 2014, at 1:28 AM, John C. Turnbull ozem...@ozemail.com.au 
 wrote:
 
 Hi Felipe,
 
 I just finished watching your excellent presentation at SVJUGFX on text 
 rendering with JavaFX and have a couple of multi part questions:
 
 1) I noted that DirectWrite is now used to rasterise fonts on Windows 
 instead of T2K or GDI and I for one am pleased about this. However, no 
 matter what I do I just can't get JavaFX text to be rendered as crisply or 
 as black as I see in native Windows apps that also use DirectWrite. The 
 result is that my app undesirably stands out from a native app.
 
 What could be the cause of this? I saw that DirectWrite provides several 
 options for rendering text and that currently only the default one is 
 being applied so could it have something to do with this?
 
 Is work being done to reduce the differential between JavaFX text 
 rendering quality and that of native Windows apps?
 
 2) I appreciated the explanation relating to LCD text in Canvas and the 
 issue with the Canvas initially bring a transparent surface making later 
 blending with an actual background problematic leading to greyscale 
 support only.
 
 Given that many of us see this as a very serious impediment to developing 
 complex controls that use Canvas, is there a focus within the JFX team on 
 finding a way of supporting LCD text in Canvas and if so, which JFX 
 version is likely to first include this support?
 
 Thanks again for a great talk and for all the hard work you have put into 
 improving text rendering in JavaFX :-)
 
 -jct
  


Re: Text rendering on Windows

2014-08-18 Thread Kevin Rushforth

Can you file a JIRA and send screen-shots to Felipe?

-- Kevin


John C. Turnbull wrote:

Richard, I totally agree on the subjective nature of font appreciation but 
that's not really what I am highlighting here. What I am seeing is a difference between 
the quality of font rendering between JFX and native apps on the same machine with the 
same font etc. and the JFX rendering is definitely less sharp/black. Some may prefer that 
(not me) but the issue is that there *is* a difference.

Cheers,

-jct

On 18 Aug 2014, at 10:36 pm, Richard Bair richard.b...@oracle.com wrote:

  

I won't be able to get access to a Windows machine for another week or so but 
when I do I will gladly send you some screenshots.  However, are you saying 
that this is the first time anyone has reported such a finding? There's no 
existing JIRA for this specific issue? I ask because even though people tell me 
I am super fussy with fonts and see things others just can't see, I have 
observed the stated discrepancy on *every* Windows machine I have tried with 
JFX 8 (about 4 quite different machines) so I would be very surprised if no one 
else notices a difference.
  

It is really common for two font fussy people to disagree on which font 
rendering is “better” :-). We’ve also looked at various applications and it 
seems to be a mixture of different techniques (sometimes even within the same 
app!). For such things, it might be better to expose some kind of settings that 
lets the developer chose which font hinting they want to use or other settings. 
Just something to keep in mind.

The other day I was doing some HTML (blah) and comparing the font rendering 
with another website. My fonts were dark and heavy, their fonts were light and 
stylish. The font was exactly the same. The weight was exactly the same. The 
style, variant, etc were all the same. The difference was 
'-webkit-font-smoothing: antialiased;’. I don’t know if the two of us, given 
the same page and same rendering, would agree on which font looked nicer (maybe 
we would, maybe not, I really don’t know!).

Which makes me think we probably need to expose some toggles so folks can tweak 
the characteristics to their liking.

Richard