[OpenJDK 2D-Dev] [9] RFR JDK-8040635: [macosx] Printing a shape filled with a texture doesn't work under Mac OS X

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Thu Oct 20 08:10:59 UTC 2016


Hi All,

Please review a fix for osx printing where it is seen that TexturePaint 
pattern is not getting printed.

Bug: https://bugs.openjdk.java.net/browse/JDK-8040635
webrev: http://cr.openjdk.java.net/~psadhukhan/8040635/webrev.00/

The issue was because TexturePaint Evaluate function in native 
QuartzSurfaceData.m uses LockImage() function to access texture buffered 
image.
In LockImage(), it accesses image data by checking 
javaImageInfo[sun_java2d_OSXOffScreenSurfaceData_kImageStolenIndex] and
javaImageInfo[sun_java2d_OSXOffScreenSurfaceData_kNeedToSyncFromJavaPixelsIndex]

and this variable "kImageStolenIndex" and 
"kNeedToSyncFromJavaPixelsIndex" are set in OSXOffScreenSurfaceData
but OSXSurfaceData uses BufImgSurfaceData.createData which does not set 
this variables
resulting in crash when it tries to access data buffer with wrong unset 
index.

Proposed fix is to use OSXOffscreenSurfaceData where the variables, 
accessed by native,  are set properly.

Regards
Prasanta



More information about the 2d-dev mailing list