United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7181438 [OGL] Incorrect alpha used, during blit from SW to the texture.
JDK-7181438 : [OGL] Incorrect alpha used, during blit from SW to the texture.

Details
Type:
Bug
Submit Date:
2012-07-03
Status:
Closed
Updated Date:
2013-05-15
Project Name:
JDK
Resolved Date:
2012-07-24
Component:
client-libs
OS:
os_x
Sub-Component:
2d
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
7u6
Fixed Versions:

Related Reports
Backport:
Backport:
Duplicate:
Relates:
Relates:

Sub Tasks

Description
I found this bug when I implemented the shaped windows on macosx(7124244). 
Before 7124244 we always draw our transparent window to the BufferedImage and then blit it to the window surface(and this bug was invisible). But now we draw it directly to the window surface. So when we try to draw the BufferedImage to the surface 2 times, we see incorrect result. This happen because for the first drawImage we use SWtoSurfaceBlit and for the second we use SWtoTextureBlit(when "managed buffered image" enabled).

I assume that code for alpha verification should be the same for both blits(see suggested fix).

Small testcase attached. It is passed on jdk6 on macosx and on non opengl pipelines in jdk 7, tested on ubuntu and windows 7.

                                    

Comments
SUGGESTED FIX

http://hg.openjdk.java.net/jdk8/awt/jdk/rev/4624486823a7
                                     
2012-07-03
EVALUATION

We should use correct alpha.
                                     
2012-07-11
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/jdk/rev/4624486823a7
                                     
2012-08-14
Verified!
                                     
2013-05-15



Hardware and Software, Engineered to Work Together