< 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,35 ****
*/
#import "LWCToolkit.h"
#import "ThreadUtilities.h"
#include "GeomUtilities.h"
!
! #import <JavaNativeFoundation/JavaNativeFoundation.h>
/**
* Some default values for invalid CoreGraphics display ID.
*/
#define DEFAULT_DEVICE_WIDTH 1024
--- 24,34 ----
*/
#import "LWCToolkit.h"
#import "ThreadUtilities.h"
#include "GeomUtilities.h"
! #include "JNIUtilities.h"
/**
* Some default values for invalid CoreGraphics display ID.
*/
#define DEFAULT_DEVICE_WIDTH 1024
*** 148,170 ****
* 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);
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);
return ret;
}
/*
--- 147,170 ----
* 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;
! JNI_COCOA_ENTER(env);
if (mode) {
CFStringRef currentBPP = CGDisplayModeCopyPixelEncoding(mode);
bpp = getBPPFromModeString(currentBPP);
refrate = CGDisplayModeGetRefreshRate(mode);
h = CGDisplayModeGetHeight(mode);
w = CGDisplayModeGetWidth(mode);
CFRelease(currentBPP);
}
! 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,240 ****
(JNIEnv *env, jclass class, jint displayID)
{
jobject ret = NULL;
__block NSRect frame = NSZeroRect;
__block NSRect visibleFrame = NSZeroRect;
! JNF_COCOA_ENTER(env);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
NSArray *screens = [NSScreen screens];
for (NSScreen *screen in screens) {
NSDictionary *screenInfo = [screen deviceDescription];
--- 230,240 ----
(JNIEnv *env, jclass class, jint displayID)
{
jobject ret = NULL;
__block NSRect frame = NSZeroRect;
__block NSRect visibleFrame = NSZeroRect;
! JNI_COCOA_ENTER(env);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
NSArray *screens = [NSScreen screens];
for (NSScreen *screen in screens) {
NSDictionary *screenInfo = [screen deviceDescription];
*** 250,264 ****
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);
! JNF_COCOA_EXIT(env);
return ret;
}
/*
--- 250,264 ----
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;
! 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);
! JNI_COCOA_EXIT(env);
return ret;
}
/*
*** 268,278 ****
*/
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);
CFArrayRef allModes = getAllValidDisplayModes(displayID);
CGDisplayModeRef closestMatch = getBestModeForParameters(allModes, (int)w, (int)h, (int)bpp, (int)refrate);
__block CGError retCode = kCGErrorSuccess;
if (closestMatch != NULL) {
--- 268,278 ----
*/
JNIEXPORT void JNICALL
Java_sun_awt_CGraphicsDevice_nativeSetDisplayMode
(JNIEnv *env, jclass class, jint displayID, jint w, jint h, jint bpp, jint refrate)
{
! 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,302 ****
retCode = CGCompleteDisplayConfiguration(config, kCGConfigureForAppOnly);
}
CGDisplayModeRelease(closestMatch);
}];
} else {
! [JNFException raise:env as:kIllegalArgumentException reason:"Invalid display mode"];
}
if (retCode != kCGErrorSuccess){
! [JNFException raise:env as:kIllegalArgumentException reason:"Unable to set display mode!"];
}
CFRelease(allModes);
! JNF_COCOA_EXIT(env);
}
/*
* Class: sun_awt_CGraphicsDevice
* Method: nativeGetDisplayMode
* Signature: (I)Ljava/awt/DisplayMode
--- 285,302 ----
retCode = CGCompleteDisplayConfiguration(config, kCGConfigureForAppOnly);
}
CGDisplayModeRelease(closestMatch);
}];
} else {
! JNU_ThrowIllegalArgumentException(env, "Invalid display mode");
}
if (retCode != kCGErrorSuccess){
! JNU_ThrowIllegalArgumentException(env, "Unable to set display mode!");
}
CFRelease(allModes);
! JNI_COCOA_EXIT(env);
}
/*
* Class: sun_awt_CGraphicsDevice
* Method: nativeGetDisplayMode
* Signature: (I)Ljava/awt/DisplayMode
*** 321,337 ****
JNIEXPORT jobjectArray JNICALL
Java_sun_awt_CGraphicsDevice_nativeGetDisplayModes
(JNIEnv *env, jclass class, jint displayID)
{
jobjectArray jreturnArray = NULL;
! JNF_COCOA_ENTER(env);
CFArrayRef allModes = getAllValidDisplayModes(displayID);
CFIndex numModes = allModes ? CFArrayGetCount(allModes): 0;
! static JNF_CLASS_CACHE(jc_DisplayMode, "java/awt/DisplayMode");
! jreturnArray = JNFNewObjectArray(env, &jc_DisplayMode, (jsize) numModes);
if (!jreturnArray) {
NSLog(@"CGraphicsDevice can't create java array of DisplayMode objects");
return nil;
}
--- 321,337 ----
JNIEXPORT jobjectArray JNICALL
Java_sun_awt_CGraphicsDevice_nativeGetDisplayModes
(JNIEnv *env, jclass class, jint displayID)
{
jobjectArray jreturnArray = NULL;
! JNI_COCOA_ENTER(env);
CFArrayRef allModes = getAllValidDisplayModes(displayID);
CFIndex numModes = allModes ? CFArrayGetCount(allModes): 0;
! DECLARE_CLASS_RETURN(jc_DisplayMode, "java/awt/DisplayMode", NULL);
! jreturnArray = (*env)->NewObjectArray(env, (jsize)numModes, jc_DisplayMode, NULL);
if (!jreturnArray) {
NSLog(@"CGraphicsDevice can't create java array of DisplayMode objects");
return nil;
}
*** 350,360 ****
}
}
if (allModes) {
CFRelease(allModes);
}
! JNF_COCOA_EXIT(env);
return jreturnArray;
}
/*
--- 350,360 ----
}
}
if (allModes) {
CFRelease(allModes);
}
! JNI_COCOA_EXIT(env);
return jreturnArray;
}
/*
*** 366,376 ****
Java_sun_awt_CGraphicsDevice_nativeGetScaleFactor
(JNIEnv *env, jclass class, jint displayID)
{
__block jdouble ret = 1.0f;
! JNF_COCOA_ENTER(env);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
NSArray *screens = [NSScreen screens];
for (NSScreen *screen in screens) {
NSDictionary *screenInfo = [screen deviceDescription];
--- 366,376 ----
Java_sun_awt_CGraphicsDevice_nativeGetScaleFactor
(JNIEnv *env, jclass class, jint displayID)
{
__block jdouble ret = 1.0f;
! JNI_COCOA_ENTER(env);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
NSArray *screens = [NSScreen screens];
for (NSScreen *screen in screens) {
NSDictionary *screenInfo = [screen deviceDescription];
*** 382,389 ****
break;
}
}
}];
! JNF_COCOA_EXIT(env);
return ret;
}
--- 382,389 ----
break;
}
}
}];
! JNI_COCOA_EXIT(env);
return ret;
}
< prev index next >