Hello,
Dmitri Trembovetski wrote:
> Increasing the width or height in the constructor of the splashscreen
above 150 pixels triggers the problem on my
machine.
> This can be reproduced always, and never occurs if both sizes are
smaller than 150 pixels.
I could explain the 150 pixels thing - we only enable
the d3d on-screen rendering for windows more than 150
pixels in any of the dimensions, but I have no idea
why would drawString() matter (and it does).
OK, I figured it out. The problem basically boils down to
what kind of text is rendered by the application first -
lcd antialiased or regular grayscale AA.
Depending on that we create a glyph cache in video memory
where we cache glyphs to be rendered.
If the first text to be rendered happens to be grayscale AA -
the cache will be initialized for grayscale glyphs,
otherwise - LCD. And since we don't switch from one cache type
to another if first you rendered a single grayscale AA glyph,
all following LCD-AA glyphs will be rendered without the use
of cache which is slow..
And if the first window is created < 150 pixels we do not use
the d3d pipeline for rendering to such window so it doesn't
matter what kind of text is rendered there - the rest of Swing
renders using LCD AA.
I am pretty sure it is the same problem with netbeans.
Now I'll need to come up with the fix - probably
different caches for lcd and grayscale glyphs.
Thanks,
Dmitri
Java2D Team
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".