Re: Text rendering on Windows
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
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
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
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
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
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
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