mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-17 09:34:38 +02:00
8238075: [OGL] Delete unused properties
Reviewed-by: kizune
This commit is contained in:
parent
afe70e6985
commit
4f1fabd8d0
4 changed files with 163 additions and 233 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -63,7 +63,7 @@ public final class CGraphicsDevice extends GraphicsDevice
|
|||
|
||||
public CGraphicsDevice(final int displayID) {
|
||||
this.displayID = displayID;
|
||||
config = CGLGraphicsConfig.getConfig(this, displayID, 0);
|
||||
config = CGLGraphicsConfig.getConfig(this);
|
||||
// initializes default device state, might be redundant step since we
|
||||
// call "displayChanged()" later anyway, but we do not want to leave the
|
||||
// device in an inconsistent state after construction
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -64,13 +64,9 @@ import static sun.java2d.opengl.OGLSurfaceData.TEXTURE;
|
|||
public final class CGLGraphicsConfig extends CGraphicsConfig
|
||||
implements OGLGraphicsConfig
|
||||
{
|
||||
//private static final int kOpenGLSwapInterval =
|
||||
// RuntimeOptions.getCurrentOptions().OpenGLSwapInterval;
|
||||
private static final int kOpenGLSwapInterval = 0; // TODO
|
||||
private static boolean cglAvailable;
|
||||
private static ImageCapabilities imageCaps = new CGLImageCaps();
|
||||
|
||||
private int pixfmt;
|
||||
private BufferCapabilities bufferCaps;
|
||||
private long pConfigInfo;
|
||||
private ContextCapabilities oglCaps;
|
||||
|
@ -79,8 +75,7 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
|
|||
private final int maxTextureSize;
|
||||
|
||||
private static native boolean initCGL();
|
||||
private static native long getCGLConfigInfo(int displayID, int visualnum,
|
||||
int swapInterval);
|
||||
private static native long getCGLConfigInfo();
|
||||
private static native int getOGLCapabilities(long configInfo);
|
||||
|
||||
/**
|
||||
|
@ -95,12 +90,9 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
|
|||
cglAvailable = initCGL();
|
||||
}
|
||||
|
||||
private CGLGraphicsConfig(CGraphicsDevice device, int pixfmt,
|
||||
long configInfo, int maxTextureSize,
|
||||
ContextCapabilities oglCaps) {
|
||||
private CGLGraphicsConfig(CGraphicsDevice device, long configInfo,
|
||||
int maxTextureSize, ContextCapabilities oglCaps) {
|
||||
super(device);
|
||||
|
||||
this.pixfmt = pixfmt;
|
||||
this.pConfigInfo = configInfo;
|
||||
this.oglCaps = oglCaps;
|
||||
this.maxTextureSize = maxTextureSize;
|
||||
|
@ -125,8 +117,7 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
|
|||
OGLSurfaceData.TEXTURE);
|
||||
}
|
||||
|
||||
public static CGLGraphicsConfig getConfig(CGraphicsDevice device,
|
||||
int displayID, int pixfmt)
|
||||
public static CGLGraphicsConfig getConfig(CGraphicsDevice device)
|
||||
{
|
||||
if (!cglAvailable) {
|
||||
return null;
|
||||
|
@ -142,7 +133,7 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
|
|||
// surfaces/contexts, so we should first invalidate the current
|
||||
// Java-level context and flush the queue...
|
||||
OGLContext.invalidateCurrentContext();
|
||||
cfginfo = getCGLConfigInfo(displayID, pixfmt, kOpenGLSwapInterval);
|
||||
cfginfo = getCGLConfigInfo();
|
||||
if (cfginfo != 0L) {
|
||||
textureSize = nativeGetMaxTextureSize();
|
||||
// 7160609: GL still fails to create a square texture of this
|
||||
|
@ -163,7 +154,7 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
|
|||
|
||||
int oglCaps = getOGLCapabilities(cfginfo);
|
||||
ContextCapabilities caps = new OGLContextCaps(oglCaps, ids[0]);
|
||||
return new CGLGraphicsConfig(device, pixfmt, cfginfo, textureSize, caps);
|
||||
return new CGLGraphicsConfig(device, cfginfo, textureSize, caps);
|
||||
}
|
||||
|
||||
public static boolean isCGLAvailable() {
|
||||
|
@ -253,8 +244,7 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
String display = getDevice().getIDstring();
|
||||
return ("CGLGraphicsConfig[" + display + ", pixfmt=" + pixfmt + "]");
|
||||
return ("CGLGraphicsConfig[" + getDevice().getIDstring() + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -32,10 +32,6 @@
|
|||
#import "OGLContext.h"
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface GraphicsConfigUtil : NSObject {}
|
||||
+ (void) _getCGLConfigInfo: (NSMutableArray *)argValue;
|
||||
@end
|
||||
|
||||
// REMIND: Using an NSOpenGLPixelBuffer as the scratch surface has been
|
||||
// problematic thus far (seeing garbage and flickering when switching
|
||||
// between an NSView and the scratch surface), so the following enables
|
||||
|
@ -50,20 +46,12 @@
|
|||
|
||||
/**
|
||||
* The CGLGraphicsConfigInfo structure contains information specific to a
|
||||
* given CGLGraphicsConfig (pixel format).
|
||||
*
|
||||
* jint screen;
|
||||
* The screen and PixelFormat for the associated CGLGraphicsConfig.
|
||||
*
|
||||
* NSOpenGLPixelFormat *pixfmt;
|
||||
* The pixel format of the native NSOpenGL context.
|
||||
* given CGLGraphicsConfig.
|
||||
*
|
||||
* OGLContext *context;
|
||||
* The context associated with this CGLGraphicsConfig.
|
||||
*/
|
||||
typedef struct _CGLGraphicsConfigInfo {
|
||||
jint screen;
|
||||
NSOpenGLPixelFormat *pixfmt;
|
||||
OGLContext *context;
|
||||
} CGLGraphicsConfigInfo;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -34,9 +34,6 @@
|
|||
#import <ApplicationServices/ApplicationServices.h>
|
||||
#import <JavaNativeFoundation/JavaNativeFoundation.h>
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark "--- Mac OS X specific methods for GL pipeline ---"
|
||||
|
||||
/**
|
||||
* Disposes all memory and resources associated with the given
|
||||
* CGLGraphicsConfigInfo (including its native OGLContext data).
|
||||
|
@ -77,9 +74,6 @@ OGLGC_DestroyOGLGraphicsConfig(jlong pConfigInfo)
|
|||
free(cglinfo);
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark "--- CGLGraphicsConfig methods ---"
|
||||
|
||||
/**
|
||||
* This is a globally shared context used when creating textures. When any
|
||||
* new contexts are created, they specify this context as the "share list"
|
||||
|
@ -112,49 +106,23 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_initCGL
|
|||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Determines whether the CGL pipeline can be used for a given GraphicsConfig
|
||||
* provided its screen number and visual ID. If the minimum requirements are
|
||||
* met, the native CGLGraphicsConfigInfo structure is initialized for this
|
||||
* GraphicsConfig with the necessary information (pixel format, etc.)
|
||||
* and a pointer to this structure is returned as a jlong. If
|
||||
* Determines whether the CGL pipeline can be used for a given GraphicsConfig.
|
||||
* If the minimum requirements are met, the native CGLGraphicsConfigInfo
|
||||
* structure is initialized for this GraphicsConfig with the necessary
|
||||
* information and a pointer to this structure is returned as a jlong. If
|
||||
* initialization fails at any point, zero is returned, indicating that CGL
|
||||
* cannot be used for this GraphicsConfig (we should fallback on an existing
|
||||
* 2D pipeline).
|
||||
* cannot be used for this GraphicsConfig (we should fallback on an existing 2D
|
||||
* pipeline).
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
||||
(JNIEnv *env, jclass cglgc,
|
||||
jint displayID, jint pixfmt, jint swapInterval)
|
||||
(JNIEnv *env, jclass cglgc)
|
||||
{
|
||||
jlong ret = 0L;
|
||||
__block jlong ret = 0L;
|
||||
JNF_COCOA_ENTER(env);
|
||||
NSMutableArray * retArray = [NSMutableArray arrayWithCapacity:3];
|
||||
[retArray addObject: [NSNumber numberWithInt: (int)displayID]];
|
||||
[retArray addObject: [NSNumber numberWithInt: (int)pixfmt]];
|
||||
[retArray addObject: [NSNumber numberWithInt: (int)swapInterval]];
|
||||
if ([NSThread isMainThread]) {
|
||||
[GraphicsConfigUtil _getCGLConfigInfo: retArray];
|
||||
} else {
|
||||
[GraphicsConfigUtil performSelectorOnMainThread: @selector(_getCGLConfigInfo:) withObject: retArray waitUntilDone: YES];
|
||||
}
|
||||
NSNumber * num = (NSNumber *)[retArray objectAtIndex: 0];
|
||||
ret = (jlong)[num longValue];
|
||||
JNF_COCOA_EXIT(env);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@implementation GraphicsConfigUtil
|
||||
+ (void) _getCGLConfigInfo: (NSMutableArray *)argValue {
|
||||
AWT_ASSERT_APPKIT_THREAD;
|
||||
|
||||
jint displayID = (jint)[(NSNumber *)[argValue objectAtIndex: 0] intValue];
|
||||
jint swapInterval = (jint)[(NSNumber *)[argValue objectAtIndex: 2] intValue];
|
||||
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
|
||||
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
|
||||
[argValue removeAllObjects];
|
||||
|
||||
J2dRlsTraceLn(J2D_TRACE_INFO, "CGLGraphicsConfig_getCGLConfigInfo");
|
||||
|
||||
|
@ -179,8 +147,6 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
if (sharedPixelFormat == nil) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR,
|
||||
"CGLGraphicsConfig_getCGLConfigInfo: shared NSOpenGLPixelFormat is NULL");
|
||||
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -190,7 +156,6 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
shareContext: NULL];
|
||||
if (sharedContext == nil) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGraphicsConfig_getCGLConfigInfo: shared NSOpenGLContext is NULL");
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -205,7 +170,6 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
defer: false];
|
||||
if (window == nil) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGraphicsConfig_getCGLConfigInfo: NSWindow is NULL");
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -214,7 +178,6 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
initWithFrame: contentRect];
|
||||
if (scratchSurface == nil) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGraphicsConfig_getCGLConfigInfo: NSView is NULL");
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
[window setContentView: scratchSurface];
|
||||
|
@ -234,7 +197,6 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
shareContext: sharedContext];
|
||||
if (context == nil) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGraphicsConfig_getCGLConfigInfo: NSOpenGLContext is NULL");
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -255,7 +217,6 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
if (!OGLContext_IsVersionSupported(versionstr)) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGraphicsConfig_getCGLConfigInfo: OpenGL 1.2 is required");
|
||||
[NSOpenGLContext clearCurrentContext];
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
J2dRlsTraceLn1(J2D_TRACE_INFO, "CGLGraphicsConfig_getCGLConfigInfo: OpenGL version=%s", versionstr);
|
||||
|
@ -290,17 +251,10 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
fprintf(stderr, "WARNING: GL pipe is running in software mode (Renderer ID=0x%x)\n", (int)value);
|
||||
}
|
||||
#endif
|
||||
|
||||
// 0: the buffers are swapped with no regard to the vertical refresh rate
|
||||
// 1: the buffers are swapped only during the vertical retrace
|
||||
GLint params = swapInterval;
|
||||
[context setValues: ¶ms forParameter: NSOpenGLCPSwapInterval];
|
||||
|
||||
CGLCtxInfo *ctxinfo = (CGLCtxInfo *)malloc(sizeof(CGLCtxInfo));
|
||||
if (ctxinfo == NULL) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGC_InitOGLContext: could not allocate memory for ctxinfo");
|
||||
[NSOpenGLContext clearCurrentContext];
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
memset(ctxinfo, 0, sizeof(CGLCtxInfo));
|
||||
|
@ -312,7 +266,6 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
J2dRlsTraceLn(J2D_TRACE_ERROR, "CGLGC_InitOGLContext: could not allocate memory for oglc");
|
||||
[NSOpenGLContext clearCurrentContext];
|
||||
free(ctxinfo);
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
memset(oglc, 0, sizeof(OGLContext));
|
||||
|
@ -326,19 +279,18 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
|
|||
[NSOpenGLContext clearCurrentContext];
|
||||
free(oglc);
|
||||
free(ctxinfo);
|
||||
[argValue addObject: [NSNumber numberWithLong: 0L]];
|
||||
return;
|
||||
}
|
||||
memset(cglinfo, 0, sizeof(CGLGraphicsConfigInfo));
|
||||
cglinfo->screen = displayID;
|
||||
cglinfo->pixfmt = sharedPixelFormat;
|
||||
cglinfo->context = oglc;
|
||||
|
||||
[NSOpenGLContext clearCurrentContext];
|
||||
[argValue addObject: [NSNumber numberWithLong:ptr_to_jlong(cglinfo)]];
|
||||
ret = ptr_to_jlong(cglinfo);
|
||||
[pool drain];
|
||||
}];
|
||||
JNF_COCOA_EXIT(env);
|
||||
return ret;
|
||||
}
|
||||
@end //GraphicsConfigUtil
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_sun_java2d_opengl_CGLGraphicsConfig_getOGLCapabilities
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue