src/macosx/native/sun/awt/ImageSurfaceData.m

Print this page

        

*** 51,64 **** #define XOR_ALPHA_CUTOFF 128 // for vImage framework headers #include <Accelerate/Accelerate.h> - - // private Quartz routines needed here - CG_EXTERN void CGContextSetCTM(CGContextRef ref, CGAffineTransform tx); - static ContextInfo sDefaultContextInfo[sun_java2d_OSXOffScreenSurfaceData_TYPE_3BYTE_RGB+1] = { {YES, YES, 8, 4, 0, kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host, NULL}, // TYPE_CUSTOM // special case {YES, YES, 8, 4, 0, kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host, NULL}, // TYPE_INT_RGB {YES, YES, 8, 4, 0, kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host, NULL}, // TYPE_INT_ARGB --- 51,60 ----
*** 940,950 **** } // intitalize the context to match the Java coordinate system // BG, since the context is created above, we can just concat - //CGContextSetCTM(qsdo->cgRef, CGAffineTransformMake(1, 0, 0, -1, 0, isdo->height)); CGContextConcatCTM(qsdo->cgRef, CGAffineTransformMake(1, 0, 0, -1, 0, isdo->height)); CGContextSaveGState(qsdo->cgRef); // this will make sure we don't go pass device context settings CGContextSaveGState(qsdo->cgRef); // this will put user settings on top, used by LazyStateManagement code qsdo->newContext = YES; --- 936,945 ----
*** 1112,1122 **** } if (qsdo->cgRef != NULL) { CGContextSaveGState(qsdo->cgRef); ! CGContextSetCTM(qsdo->cgRef, CGAffineTransformMake(1, 0, 0, 1, 0, 0)); CGContextSetBlendMode(qsdo->cgRef, kCGBlendModeCopy); CGContextSetAlpha(qsdo->cgRef, 1.0f); CGContextDrawImage(qsdo->cgRef, CGRectMake(0, 0, width, height), javaImg); CGContextFlush(qsdo->cgRef); CGContextRestoreGState(qsdo->cgRef); --- 1107,1120 ---- } if (qsdo->cgRef != NULL) { CGContextSaveGState(qsdo->cgRef); ! CGAffineTransform currCTM = CGContextGetCTM(qsdo->cgRef); ! CGAffineTransform inverse = CGAffineTransformInvert(currCTM); ! CGContextConcatCTM(qsdo->cgRef, inverse); ! CGContextConcatCTM(qsdo->cgRef, CGAffineTransformMake(1, 0, 0, 1, 0, 0)); CGContextSetBlendMode(qsdo->cgRef, kCGBlendModeCopy); CGContextSetAlpha(qsdo->cgRef, 1.0f); CGContextDrawImage(qsdo->cgRef, CGRectMake(0, 0, width, height), javaImg); CGContextFlush(qsdo->cgRef); CGContextRestoreGState(qsdo->cgRef);