< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsDevice.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
@@ -24,12 +24,11 @@
*/
#import "LWCToolkit.h"
#import "ThreadUtilities.h"
#include "GeomUtilities.h"
-
-#import <JavaNativeFoundation/JavaNativeFoundation.h>
+#include "JNIUtilities.h"
/**
* Some default values for invalid CoreGraphics display ID.
*/
#define DEFAULT_DEVICE_WIDTH 1024
@@ -148,23 +147,24 @@
* CGDisplayModeRef, if CGDisplayModeRef is NULL, then some stub is returned.
*/
static jobject createJavaDisplayMode(CGDisplayModeRef mode, JNIEnv *env) {
jobject ret = NULL;
jint h = DEFAULT_DEVICE_HEIGHT, w = DEFAULT_DEVICE_WIDTH, bpp = 0, refrate = 0;
- JNF_COCOA_ENTER(env);
+ JNI_COCOA_ENTER(env);
if (mode) {
CFStringRef currentBPP = CGDisplayModeCopyPixelEncoding(mode);
bpp = getBPPFromModeString(currentBPP);
refrate = CGDisplayModeGetRefreshRate(mode);
h = CGDisplayModeGetHeight(mode);
w = CGDisplayModeGetWidth(mode);
CFRelease(currentBPP);
}
- static JNF_CLASS_CACHE(jc_DisplayMode, "java/awt/DisplayMode");
- static JNF_CTOR_CACHE(jc_DisplayMode_ctor, jc_DisplayMode, "(IIII)V");
- ret = JNFNewObject(env, jc_DisplayMode_ctor, w, h, bpp, refrate);
- JNF_COCOA_EXIT(env);
+ DECLARE_CLASS_RETURN(jc_DisplayMode, "java/awt/DisplayMode", ret);
+ DECLARE_METHOD_RETURN(jc_DisplayMode_ctor, jc_DisplayMode, "<init>", "(IIII)V", ret);
+ ret = (*env)->NewObject(env, jc_DisplayMode, jc_DisplayMode_ctor, w, h, bpp, refrate);
+ CHECK_EXCEPTION();
+ JNI_COCOA_EXIT(env);
return ret;
}
/*
@@ -230,11 +230,11 @@
(JNIEnv *env, jclass class, jint displayID)
{
jobject ret = NULL;
__block NSRect frame = NSZeroRect;
__block NSRect visibleFrame = NSZeroRect;
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
NSArray *screens = [NSScreen screens];
for (NSScreen *screen in screens) {
NSDictionary *screenInfo = [screen deviceDescription];
@@ -250,15 +250,15 @@
jint bottom = visibleFrame.origin.y - frame.origin.y;
jint top = frame.size.height - visibleFrame.size.height - bottom;
jint left = visibleFrame.origin.x - frame.origin.x;
jint right = frame.size.width - visibleFrame.size.width - left;
- static JNF_CLASS_CACHE(jc_Insets, "java/awt/Insets");
- static JNF_CTOR_CACHE(jc_Insets_ctor, jc_Insets, "(IIII)V");
- ret = JNFNewObject(env, jc_Insets_ctor, top, left, bottom, right);
+ DECLARE_CLASS_RETURN(jc_Insets, "java/awt/Insets", ret);
+ DECLARE_METHOD_RETURN(jc_Insets_ctor, jc_Insets, "<init>", "(IIII)V", ret);
+ ret = (*env)->NewObject(env, jc_Insets, jc_Insets_ctor, top, left, bottom, right);
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
return ret;
}
/*
@@ -268,11 +268,11 @@
*/
JNIEXPORT void JNICALL
Java_sun_awt_CGraphicsDevice_nativeSetDisplayMode
(JNIEnv *env, jclass class, jint displayID, jint w, jint h, jint bpp, jint refrate)
{
- JNF_COCOA_ENTER(env);
+ JNI_COCOA_ENTER(env);
CFArrayRef allModes = getAllValidDisplayModes(displayID);
CGDisplayModeRef closestMatch = getBestModeForParameters(allModes, (int)w, (int)h, (int)bpp, (int)refrate);
__block CGError retCode = kCGErrorSuccess;
if (closestMatch != NULL) {
@@ -285,18 +285,18 @@
retCode = CGCompleteDisplayConfiguration(config, kCGConfigureForAppOnly);
}
CGDisplayModeRelease(closestMatch);
}];
} else {
- [JNFException raise:env as:kIllegalArgumentException reason:"Invalid display mode"];
+ JNU_ThrowIllegalArgumentException(env, "Invalid display mode");
}
if (retCode != kCGErrorSuccess){
- [JNFException raise:env as:kIllegalArgumentException reason:"Unable to set display mode!"];
+ JNU_ThrowIllegalArgumentException(env, "Unable to set display mode!");
}
CFRelease(allModes);
- JNF_COCOA_EXIT(env);
+ JNI_COCOA_EXIT(env);
}
/*
* Class: sun_awt_CGraphicsDevice
* Method: nativeGetDisplayMode
* Signature: (I)Ljava/awt/DisplayMode
@@ -321,17 +321,17 @@
JNIEXPORT jobjectArray JNICALL
Java_sun_awt_CGraphicsDevice_nativeGetDisplayModes
(JNIEnv *env, jclass class, jint displayID)
{
jobjectArray jreturnArray = NULL;
- JNF_COCOA_ENTER(env);
+ JNI_COCOA_ENTER(env);
CFArrayRef allModes = getAllValidDisplayModes(displayID);
CFIndex numModes = allModes ? CFArrayGetCount(allModes): 0;
- static JNF_CLASS_CACHE(jc_DisplayMode, "java/awt/DisplayMode");
+ DECLARE_CLASS_RETURN(jc_DisplayMode, "java/awt/DisplayMode", NULL);
- jreturnArray = JNFNewObjectArray(env, &jc_DisplayMode, (jsize) numModes);
+ jreturnArray = (*env)->NewObjectArray(env, (jsize)numModes, jc_DisplayMode, NULL);
if (!jreturnArray) {
NSLog(@"CGraphicsDevice can't create java array of DisplayMode objects");
return nil;
}
@@ -350,11 +350,11 @@
}
}
if (allModes) {
CFRelease(allModes);
}
- JNF_COCOA_EXIT(env);
+ JNI_COCOA_EXIT(env);
return jreturnArray;
}
/*
@@ -366,11 +366,11 @@
Java_sun_awt_CGraphicsDevice_nativeGetScaleFactor
(JNIEnv *env, jclass class, jint displayID)
{
__block jdouble ret = 1.0f;
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
NSArray *screens = [NSScreen screens];
for (NSScreen *screen in screens) {
NSDictionary *screenInfo = [screen deviceDescription];
@@ -382,8 +382,8 @@
break;
}
}
}];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
return ret;
}
< prev index next >