On 10/24/2014 10:56 AM, Andrew Brygin wrote:
Hello,
please take a look to updated version of the fix:
http://cr.openjdk.java.net/~bae/8023794/9/webrev.03/
TODOs were removed:
* CGLSurfaceData.java
the condition for lcd rendering is inherited from OGL surface
data, but
here we have to remove the check for the transparency, because
we always
create transparent volatile images for swing backbuffers on
macosx in order
to support shaped windows.
Are you saying its created translucent regardless, or only if its shaped?
But if its really translucent/transparent under the text, then
IIRC the shaders - and s/w loops - do not properly handle that case.
You probably should try drawing LCD text over a fully transparent area
to see what happens.
* * *CGGlyphImages.m and AWTStrike.m
NSException is used to handle invalid (unevaluated) text
antialising hint values.
We actually have already used NSException to handle memory
allocation failure,
so this change just makes usage of get/release of primitive
arrays a bit more safe.
Known differences comparing to apple jdk6:
a) we do not interpret TEXT_ANTIALIASING_ON as lcd text.
Its should never have meant that, else you would have no way to explicitly
request grey scale.
b) we do not render lcd text in a case of non-opaque paint. This
behavior is common for
all cases (software loops, OGL, and D3D), so it seems to deserve
a separate bug if we
want to handle this case.
I think that's another manifestation of the issue mentioned above.
-phil.