提交 6f3e7768 编写于 作者: S serb

8041900: [macosx] Java forces the use of discrete GPU

Reviewed-by: ssadetsky, alexsch
上级 67357ff0
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#import <JavaNativeFoundation/JavaNativeFoundation.h> #import <JavaNativeFoundation/JavaNativeFoundation.h>
#import "jni_util.h" #import "jni_util.h"
#import "ThreadUtilities.h"
#import "LWCToolkit.h" #import "LWCToolkit.h"
#import "AWT_debug.h" #import "AWT_debug.h"
...@@ -133,17 +134,20 @@ static void displaycb_handle ...@@ -133,17 +134,20 @@ static void displaycb_handle
{ {
if (flags == kCGDisplayBeginConfigurationFlag) return; if (flags == kCGDisplayBeginConfigurationFlag) return;
JNFPerformEnvBlock(JNFThreadDetachImmediately, ^(JNIEnv *env) { [ThreadUtilities performOnMainThreadWaiting:NO block:^() {
JNFWeakJObjectWrapper *wrapper = (JNFWeakJObjectWrapper *)userInfo;
JNFPerformEnvBlock(JNFThreadDetachImmediately, ^(JNIEnv *env) {
jobject graphicsEnv = [wrapper jObjectWithEnv:env]; JNFWeakJObjectWrapper *wrapper = (JNFWeakJObjectWrapper *)userInfo;
if (graphicsEnv == NULL) return; // ref already GC'd
static JNF_CLASS_CACHE(jc_CGraphicsEnvironment, "sun/awt/CGraphicsEnvironment"); jobject graphicsEnv = [wrapper jObjectWithEnv:env];
static JNF_MEMBER_CACHE(jm_displayReconfiguration, jc_CGraphicsEnvironment, "_displayReconfiguration", "(IZ)V"); if (graphicsEnv == NULL) return; // ref already GC'd
JNFCallVoidMethod(env, graphicsEnv, jm_displayReconfiguration, static JNF_CLASS_CACHE(jc_CGraphicsEnvironment, "sun/awt/CGraphicsEnvironment");
(jint) display, static JNF_MEMBER_CACHE(jm_displayReconfiguration,
(jboolean) flags & kCGDisplayRemoveFlag); jc_CGraphicsEnvironment, "_displayReconfiguration","(IZ)V");
}); JNFCallVoidMethod(env, graphicsEnv, jm_displayReconfiguration,
(jint) display, (jboolean) flags & kCGDisplayRemoveFlag);
});
}];
} }
/* /*
......
...@@ -236,6 +236,7 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo ...@@ -236,6 +236,7 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
} }
NSOpenGLPixelFormatAttribute attrs[] = { NSOpenGLPixelFormatAttribute attrs[] = {
NSOpenGLPFAAllowOfflineRenderers,
NSOpenGLPFAClosestPolicy, NSOpenGLPFAClosestPolicy,
NSOpenGLPFAWindow, NSOpenGLPFAWindow,
NSOpenGLPFAPixelBuffer, NSOpenGLPFAPixelBuffer,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册