Yes, and sounds like what we want to do with Text. Basically in your swing 
example you were treating the text as outlines rather than glyphs. It draws 
much nicer -- but also much slower.

The other option is to treat them as images and not snap-em. Not as nice but 
probably quite decent for a lot of stuff and a *lot* faster.

On May 31, 2013, at 3:10 PM, Hervé Girod <herve.gi...@gmail.com> wrote:

> I don't know if there is the same behavior in JavaFX as in Swing, but using 
> Swing for complex animated rendering of texts, we discovered that if we used 
> the standard way of daring the strings in a Graphics2D, there was a kind of 
> Jitter on each String when moving or rotating the texts, the letters seemed 
> to move relatively to each other.
> 
> To avoid this effect, we used a TextLayout and cached the Strings Layouts 
> when they changed and draw their outline Shapes. With this method, there was 
> no Jitter at all. Perhaps this is the same case with the two methods you 
> mention with these Microsoft links.
> 
> Herve
> 
> Sent from my iPad
> 
> On 31 mai 2013, at 22:57, Richard Bair <richard.b...@oracle.com> wrote:
> 
>> Felipe found these links:
>> 
>> http://msdn.microsoft.com/en-us/library/windows/desktop/ee663563(v=vs.85).aspx
>> http://msdn.microsoft.com/en-us/library/windows/desktop/dd756767%28v=vs.85%29.aspx
>> 
>> I followed the 2nd link to run in Parallels. I'm not sure to what extent it 
>> is the same as what you'd see on dedicated hardware, but I thought it would 
>> be good for you to see what kind of options DirectWrite provides (and to 
>> know that Felipe is working on the DirectWrite backend for text rendering on 
>> Windows).
>> 
>> Running the "Default" rendering method gives predictably crappy looking 
>> animated text. Predictable in that MS is doing the same thing we are by 
>> default -- focusing on producing crisp text. Their crappy might be better or 
>> worse than our crappy, but in both cases it is crappy when animated :-). The 
>> "Outlines" method is very nice (and much slower). I couldn't run the A8 
>> method on Parallels (it just didn't draw anything).
>> 
>> Give a play and see what the native system is doing. We need some kind of 
>> API (as linked in your JIRA issue) to allow you to easily pick which method 
>> you want.
>> 
>>> Perhaps it is a windows issue. Does seem like a few of the people reporting 
>>> problems in this thread are on windows, and without those lovely high-res 
>>> Mac displays that make everything look so pretty. On my machine there is no 
>>> way you could say the jfx one is on par with the jscript one. I'd have a 
>>> hard time convincing anyone to use jfx over even lowly jscript using that 
>>> incredibly basic showdown I put together.   
>> 
>> We have a mix of systems but I personally have only a Mac + parallels (and 
>> when it comes to performance you really can't draw any accurate conclusions 
>> when running in a VM).
>> 
>>> How often do you personally run something like ensemble on windows? It 
>>> could be that we're seeing big issues and you're seeing minor ones, hence 
>>> out angst at how casually these issues are treated (two bugs I spent hours 
>>> narrowing down and reproducing got closed in around 10 minutes - was the 
>>> code run on the environment it was reported to be found on in this time?). 
>>> Might be worth you having an eyeball just to see.
>> 
>> I know Kevin and Jonathan have Windows machines. But this is a good point we 
>> need to make sure we run on a similar environment.
>> 
>>> Regarding the Text vs Label thing, I'm not sure I get what that's about. My 
>>> primary use with animations is to do ipad like transitions of rich widgets 
>>> containing labels, buttons, tables, etc. So a panel of buttons might slide 
>>> in left, a document might get folded up and put in a rubbish bin, or a 
>>> dialog might grow out of a button that was clicked. Are you saying smooth 
>>> animations are not intended to be used on complex node graphs like this?
>> 
>> Usually when animating a page of stuff, the best way to get good performance 
>> (on desktop and mobile) is to first set cache=true on the panel being 
>> animated, animate the thing, and then turn cache=false on the panel. In that 
>> case, you won't see any of these issues. But I think you are right that 
>> Labeled things should have a setting to indicate the way they render their 
>> text just like the Text node should.
>> 
>>>> JS is driving tis animation and not CSS?
>>> 
>>> Is this a question about the HTML I put up? If so then the answer is jquery 
>>> is used to animate between a start css style and an end css style (just 
>>> view source on the HTML, it's about 10 lines of code). How it does this you 
>>> would have to look at jquery's animate method. I know as much about it's 
>>> internals as I do about JFX's.
>> 
>> Right, my thought was whether the difference between what I see on Mac vs. 
>> what you see on Windows is based on the browser engine (but I tried chrome, 
>> so maybe not). When JS is driving the animation you often get different 
>> performance / behavior than when CSS is driving it.
>> 
>> Richard

Reply via email to