Text rendering on Windows

Kevin Rushforth kevin.rushforth at oracle.com
Mon Aug 18 20:39:20 UTC 2014


> 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.heidrich at 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 <ozemale at 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
>>>       


More information about the openjfx-dev mailing list