< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/awt/CImage.m

Print this page
rev 54094 : 8257853: Remove dependencies on JNF's JNI utility functions in AWT and 2D code
rev 54096 : 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros
rev 54098 : 8260616: Removing remaining JNF dependencies in the java.desktop module
8259729: Missed JNFInstanceOf -> IsInstanceOf conversion

*** 23,33 **** * questions. */ #import "jni_util.h" #import <Cocoa/Cocoa.h> - #import <JavaNativeFoundation/JavaNativeFoundation.h> #import "GeomUtilities.h" #import "ThreadUtilities.h" #import "sun_lwawt_macosx_CImage.h" --- 23,32 ----
*** 109,128 **** JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromArray (JNIEnv *env, jclass klass, jintArray buffer, jint width, jint height) { jlong result = 0L; ! JNF_COCOA_ENTER(env); NSBitmapImageRep* imageRep = CImage_CreateImageRep(env, buffer, width, height); if (imageRep) { NSImage *nsImage = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; [nsImage addRepresentation:imageRep]; result = ptr_to_jlong(nsImage); } ! JNF_COCOA_EXIT(env); return result; } /* --- 108,127 ---- JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromArray (JNIEnv *env, jclass klass, jintArray buffer, jint width, jint height) { jlong result = 0L; ! JNI_COCOA_ENTER(env); NSBitmapImageRep* imageRep = CImage_CreateImageRep(env, buffer, width, height); if (imageRep) { NSImage *nsImage = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; [nsImage addRepresentation:imageRep]; result = ptr_to_jlong(nsImage); } ! JNI_COCOA_EXIT(env); return result; } /*
*** 133,143 **** JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromArrays (JNIEnv *env, jclass klass, jobjectArray buffers, jintArray widths, jintArray heights) { jlong result = 0L; ! JNF_COCOA_ENTER(env); jsize num = (*env)->GetArrayLength(env, buffers); NSMutableArray * reps = [NSMutableArray arrayWithCapacity: num]; jint * ws = (*env)->GetIntArrayElements(env, widths, NULL); --- 132,142 ---- JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromArrays (JNIEnv *env, jclass klass, jobjectArray buffers, jintArray widths, jintArray heights) { jlong result = 0L; ! JNI_COCOA_ENTER(env); jsize num = (*env)->GetArrayLength(env, buffers); NSMutableArray * reps = [NSMutableArray arrayWithCapacity: num]; jint * ws = (*env)->GetIntArrayElements(env, widths, NULL);
*** 162,172 **** NSImage *nsImage = [[NSImage alloc] initWithSize:NSMakeSize(0, 0)]; [nsImage addRepresentations: reps]; result = ptr_to_jlong(nsImage); } ! JNF_COCOA_EXIT(env); return result; } /* --- 161,171 ---- NSImage *nsImage = [[NSImage alloc] initWithSize:NSMakeSize(0, 0)]; [nsImage addRepresentations: reps]; result = ptr_to_jlong(nsImage); } ! JNI_COCOA_EXIT(env); return result; } /*
*** 177,195 **** JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromIconSelector (JNIEnv *env, jclass klass, jint selector) { NSImage *image = nil; ! JNF_COCOA_ENTER(env); IconRef iconRef; if (noErr == GetIconRef(kOnSystemDisk, kSystemIconsCreator, selector, &iconRef)) { image = [[NSImage alloc] initWithIconRef:iconRef]; ReleaseIconRef(iconRef); } ! JNF_COCOA_EXIT(env); return ptr_to_jlong(image); } /* --- 176,194 ---- JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromIconSelector (JNIEnv *env, jclass klass, jint selector) { NSImage *image = nil; ! JNI_COCOA_ENTER(env); IconRef iconRef; if (noErr == GetIconRef(kOnSystemDisk, kSystemIconsCreator, selector, &iconRef)) { image = [[NSImage alloc] initWithIconRef:iconRef]; ReleaseIconRef(iconRef); } ! JNI_COCOA_EXIT(env); return ptr_to_jlong(image); } /*
*** 200,215 **** JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromFileContents (JNIEnv *env, jclass klass, jstring file) { NSImage *image = nil; ! JNF_COCOA_ENTER(env); ! NSString *path = JNFNormalizedNSStringForPath(env, file); image = [[NSImage alloc] initByReferencingFile:path]; ! JNF_COCOA_EXIT(env); return ptr_to_jlong(image); } /* --- 199,214 ---- JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromFileContents (JNIEnv *env, jclass klass, jstring file) { NSImage *image = nil; ! JNI_COCOA_ENTER(env); ! NSString *path = NormalizedPathNSStringFromJavaString(env, file); image = [[NSImage alloc] initByReferencingFile:path]; ! JNI_COCOA_EXIT(env); return ptr_to_jlong(image); } /*
*** 220,238 **** JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageOfFileFromLaunchServices (JNIEnv *env, jclass klass, jstring file) { __block NSImage *image = nil; ! JNF_COCOA_ENTER(env); ! NSString *path = JNFNormalizedNSStringForPath(env, file); [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ image = [[[NSWorkspace sharedWorkspace] iconForFile:path] retain]; [image setScalesWhenResized:TRUE]; }]; ! JNF_COCOA_EXIT(env); return ptr_to_jlong(image); } /* --- 219,237 ---- JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageOfFileFromLaunchServices (JNIEnv *env, jclass klass, jstring file) { __block NSImage *image = nil; ! JNI_COCOA_ENTER(env); ! NSString *path = NormalizedPathNSStringFromJavaString(env, file); [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ image = [[[NSWorkspace sharedWorkspace] iconForFile:path] retain]; [image setScalesWhenResized:TRUE]; }]; ! JNI_COCOA_EXIT(env); return ptr_to_jlong(image); } /*
*** 243,257 **** JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromImageName (JNIEnv *env, jclass klass, jstring name) { NSImage *image = nil; ! JNF_COCOA_ENTER(env); ! image = [[NSImage imageNamed:JNFJavaToNSString(env, name)] retain]; ! JNF_COCOA_EXIT(env); return ptr_to_jlong(image); } /* --- 242,256 ---- JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromImageName (JNIEnv *env, jclass klass, jstring name) { NSImage *image = nil; ! JNI_COCOA_ENTER(env); ! image = [[NSImage imageNamed:JavaStringToNSString(env, name)] retain]; ! JNI_COCOA_EXIT(env); return ptr_to_jlong(image); } /*
*** 261,282 **** */ JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CImage_nativeCopyNSImageIntoArray (JNIEnv *env, jclass klass, jlong nsImgPtr, jintArray buffer, jint sw, jint sh, jint dw, jint dh) { ! JNF_COCOA_ENTER(env); NSImage *img = (NSImage *)jlong_to_ptr(nsImgPtr); jint *dst = (*env)->GetPrimitiveArrayCritical(env, buffer, NULL); if (dst) { NSRect fromRect = NSMakeRect(0, 0, sw, sh); NSRect toRect = NSMakeRect(0, 0, dw, dh); CImage_CopyNSImageIntoArray(img, dst, fromRect, toRect); (*env)->ReleasePrimitiveArrayCritical(env, buffer, dst, JNI_ABORT); } ! JNF_COCOA_EXIT(env); } /* * Class: sun_lwawt_macosx_CImage * Method: nativeGetNSImageSize --- 260,281 ---- */ JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CImage_nativeCopyNSImageIntoArray (JNIEnv *env, jclass klass, jlong nsImgPtr, jintArray buffer, jint sw, jint sh, jint dw, jint dh) { ! JNI_COCOA_ENTER(env); NSImage *img = (NSImage *)jlong_to_ptr(nsImgPtr); jint *dst = (*env)->GetPrimitiveArrayCritical(env, buffer, NULL); if (dst) { NSRect fromRect = NSMakeRect(0, 0, sw, sh); NSRect toRect = NSMakeRect(0, 0, dw, dh); CImage_CopyNSImageIntoArray(img, dst, fromRect, toRect); (*env)->ReleasePrimitiveArrayCritical(env, buffer, dst, JNI_ABORT); } ! JNI_COCOA_EXIT(env); } /* * Class: sun_lwawt_macosx_CImage * Method: nativeGetNSImageSize
*** 285,299 **** JNIEXPORT jobject JNICALL Java_sun_lwawt_macosx_CImage_nativeGetNSImageSize (JNIEnv *env, jclass klass, jlong nsImgPtr) { jobject size = NULL; ! JNF_COCOA_ENTER(env); size = NSToJavaSize(env, [(NSImage *)jlong_to_ptr(nsImgPtr) size]); ! JNF_COCOA_EXIT(env); return size; } /* --- 284,298 ---- JNIEXPORT jobject JNICALL Java_sun_lwawt_macosx_CImage_nativeGetNSImageSize (JNIEnv *env, jclass klass, jlong nsImgPtr) { jobject size = NULL; ! JNI_COCOA_ENTER(env); size = NSToJavaSize(env, [(NSImage *)jlong_to_ptr(nsImgPtr) size]); ! JNI_COCOA_EXIT(env); return size; } /*
*** 305,320 **** (JNIEnv *env, jclass clazz, jlong image, jdouble w, jdouble h) { if (!image) return; NSImage *i = (NSImage *)jlong_to_ptr(image); ! JNF_COCOA_ENTER(env); [i setScalesWhenResized:TRUE]; [i setSize:NSMakeSize(w, h)]; ! JNF_COCOA_EXIT(env); } /* * Class: sun_lwawt_macosx_CImage * Method: nativeResizeNSImageRepresentations --- 304,319 ---- (JNIEnv *env, jclass clazz, jlong image, jdouble w, jdouble h) { if (!image) return; NSImage *i = (NSImage *)jlong_to_ptr(image); ! JNI_COCOA_ENTER(env); [i setScalesWhenResized:TRUE]; [i setSize:NSMakeSize(w, h)]; ! JNI_COCOA_EXIT(env); } /* * Class: sun_lwawt_macosx_CImage * Method: nativeResizeNSImageRepresentations
*** 324,343 **** (JNIEnv *env, jclass clazz, jlong image, jdouble w, jdouble h) { if (!image) return; NSImage *i = (NSImage *)jlong_to_ptr(image); ! JNF_COCOA_ENTER(env); NSImageRep *imageRep = nil; NSArray *imageRepresentations = [i representations]; NSEnumerator *imageEnumerator = [imageRepresentations objectEnumerator]; while ((imageRep = [imageEnumerator nextObject]) != nil) { [imageRep setSize:NSMakeSize(w, h)]; } ! JNF_COCOA_EXIT(env); } NSComparisonResult getOrder(BOOL order){ return (NSComparisonResult) (order ? NSOrderedAscending : NSOrderedDescending); } --- 323,342 ---- (JNIEnv *env, jclass clazz, jlong image, jdouble w, jdouble h) { if (!image) return; NSImage *i = (NSImage *)jlong_to_ptr(image); ! JNI_COCOA_ENTER(env); NSImageRep *imageRep = nil; NSArray *imageRepresentations = [i representations]; NSEnumerator *imageEnumerator = [imageRepresentations objectEnumerator]; while ((imageRep = [imageEnumerator nextObject]) != nil) { [imageRep setSize:NSMakeSize(w, h)]; } ! JNI_COCOA_EXIT(env); } NSComparisonResult getOrder(BOOL order){ return (NSComparisonResult) (order ? NSOrderedAscending : NSOrderedDescending); }
*** 353,363 **** { if (!image) return NULL; jobjectArray jreturnArray = NULL; NSImage *img = (NSImage *)jlong_to_ptr(image); ! JNF_COCOA_ENTER(env); NSArray *imageRepresentations = [img representations]; if([imageRepresentations count] == 0){ return NULL; } --- 352,362 ---- { if (!image) return NULL; jobjectArray jreturnArray = NULL; NSImage *img = (NSImage *)jlong_to_ptr(image); ! JNI_COCOA_ENTER(env); NSArray *imageRepresentations = [img representations]; if([imageRepresentations count] == 0){ return NULL; }
*** 403,425 **** [imageRep pixelsWide], [imageRep pixelsHigh]); [sortedPixelSizes addObject: [NSValue valueWithSize: pixelSize]]; } count = [sortedPixelSizes count]; ! static JNF_CLASS_CACHE(jc_Dimension, "java/awt/Dimension"); ! jreturnArray = JNFNewObjectArray(env, &jc_Dimension, count); CHECK_NULL_RETURN(jreturnArray, NULL); for(i = 0; i < count; i++){ NSSize pixelSize = [[sortedPixelSizes objectAtIndex: i] sizeValue]; (*env)->SetObjectArrayElement(env, jreturnArray, i, NSToJavaSize(env, pixelSize)); JNU_CHECK_EXCEPTION_RETURN(env, NULL); } ! JNF_COCOA_EXIT(env); return jreturnArray; } /* --- 402,424 ---- [imageRep pixelsWide], [imageRep pixelsHigh]); [sortedPixelSizes addObject: [NSValue valueWithSize: pixelSize]]; } count = [sortedPixelSizes count]; ! DECLARE_CLASS_RETURN(jc_Dimension, "java/awt/Dimension", jreturnArray); ! jreturnArray = (*env)->NewObjectArray(env, count, jc_Dimension, NULL); CHECK_NULL_RETURN(jreturnArray, NULL); for(i = 0; i < count; i++){ NSSize pixelSize = [[sortedPixelSizes objectAtIndex: i] sizeValue]; (*env)->SetObjectArrayElement(env, jreturnArray, i, NSToJavaSize(env, pixelSize)); JNU_CHECK_EXCEPTION_RETURN(env, NULL); } ! JNI_COCOA_EXIT(env); return jreturnArray; } /*
*** 430,440 **** JNIEXPORT jbyteArray JNICALL Java_sun_lwawt_macosx_CImage_nativeGetPlatformImageBytes (JNIEnv *env, jclass klass, jintArray buffer, jint width, jint height) { jbyteArray result = 0L; ! JNF_COCOA_ENTER(env); NSBitmapImageRep* imageRep = CImage_CreateImageRep(env, buffer, width, height); if (imageRep) { NSData *tiffImage = [imageRep TIFFRepresentation]; jsize tiffSize = (jsize)[tiffImage length]; --- 429,439 ---- JNIEXPORT jbyteArray JNICALL Java_sun_lwawt_macosx_CImage_nativeGetPlatformImageBytes (JNIEnv *env, jclass klass, jintArray buffer, jint width, jint height) { jbyteArray result = 0L; ! JNI_COCOA_ENTER(env); NSBitmapImageRep* imageRep = CImage_CreateImageRep(env, buffer, width, height); if (imageRep) { NSData *tiffImage = [imageRep TIFFRepresentation]; jsize tiffSize = (jsize)[tiffImage length];
*** 444,454 **** CHECK_NULL_RETURN(tiffData, nil); [tiffImage getBytes:tiffData]; (*env)->ReleasePrimitiveArrayCritical(env, result, tiffData, 0); } ! JNF_COCOA_EXIT(env); return result; } /* --- 443,453 ---- CHECK_NULL_RETURN(tiffData, nil); [tiffImage getBytes:tiffData]; (*env)->ReleasePrimitiveArrayCritical(env, result, tiffData, 0); } ! JNI_COCOA_EXIT(env); return result; } /*
*** 460,470 **** (JNIEnv *env, jclass klass, jbyteArray sourceData) { jlong result = 0L; CHECK_NULL_RETURN(sourceData, 0L); ! JNF_COCOA_ENTER(env); jsize sourceSize = (*env)->GetArrayLength(env, sourceData); if (sourceSize == 0) return 0L; jbyte *sourceBytes = (*env)->GetPrimitiveArrayCritical(env, sourceData, NULL); --- 459,469 ---- (JNIEnv *env, jclass klass, jbyteArray sourceData) { jlong result = 0L; CHECK_NULL_RETURN(sourceData, 0L); ! JNI_COCOA_ENTER(env); jsize sourceSize = (*env)->GetArrayLength(env, sourceData); if (sourceSize == 0) return 0L; jbyte *sourceBytes = (*env)->GetPrimitiveArrayCritical(env, sourceData, NULL);
*** 474,482 **** (*env)->ReleasePrimitiveArrayCritical(env, sourceData, sourceBytes, JNI_ABORT); CHECK_NULL_RETURN(newImage, 0L); result = ptr_to_jlong(newImage); ! JNF_COCOA_EXIT(env); return result; } --- 473,481 ---- (*env)->ReleasePrimitiveArrayCritical(env, sourceData, sourceBytes, JNI_ABORT); CHECK_NULL_RETURN(newImage, 0L); result = ptr_to_jlong(newImage); ! JNI_COCOA_EXIT(env); return result; }
< prev index next >