mirror of
https://github.com/shadowfacts/lwjgl2-arm64.git
synced 2026-04-05 14:35:58 +00:00
Linux AWT: in case we're not on a SUN jdk, try to determine values instead of bombing out. This should help us compile and run on gcj
This commit is contained in:
parent
4a85362ccb
commit
aef35ae0ed
4 changed files with 37 additions and 10 deletions
|
|
@ -34,6 +34,7 @@ package org.lwjgl.opengl;
|
|||
import java.nio.ByteBuffer;
|
||||
|
||||
import org.lwjgl.LWJGLException;
|
||||
import org.lwjgl.LWJGLUtil;
|
||||
|
||||
/**
|
||||
* $Id$
|
||||
|
|
@ -50,7 +51,12 @@ final class LinuxAWTGLCanvasPeerInfo extends LinuxPeerInfo {
|
|||
}
|
||||
|
||||
protected void doLockAndInitHandle() throws LWJGLException {
|
||||
int screen = LinuxCanvasImplementation.getScreenFromDevice(canvas.getGraphicsConfiguration().getDevice());
|
||||
int screen = -1;
|
||||
try {
|
||||
screen = LinuxCanvasImplementation.getScreenFromDevice(canvas.getGraphicsConfiguration().getDevice());
|
||||
} catch (LWJGLException e) {
|
||||
LWJGLUtil.log("Got exception while trying to determine screen: " + e);
|
||||
}
|
||||
nInitHandle(screen, awt_surface.lockAndGetHandle(canvas), getHandle());
|
||||
}
|
||||
private static native void nInitHandle(int screen, ByteBuffer surface_buffer, ByteBuffer peer_info_handle) throws LWJGLException;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import java.awt.GraphicsDevice;
|
|||
import java.lang.reflect.Method;
|
||||
|
||||
import org.lwjgl.LWJGLException;
|
||||
import org.lwjgl.LWJGLUtil;
|
||||
|
||||
/**
|
||||
* $Id$
|
||||
|
|
@ -74,15 +75,19 @@ final class LinuxCanvasImplementation implements AWTCanvasImplementation {
|
|||
* @return The GraphicsConfiguration corresponding to a visual that matches the pixel format.
|
||||
*/
|
||||
public GraphicsConfiguration findConfiguration(GraphicsDevice device, PixelFormat pixel_format) throws LWJGLException {
|
||||
int screen = getScreenFromDevice(device);
|
||||
int visual_id_matching_format = findVisualIDFromFormat(screen, pixel_format);
|
||||
GraphicsConfiguration[] configurations = device.getConfigurations();
|
||||
for (int i = 0; i < configurations.length; i++) {
|
||||
int visual_id = getVisualIDFromConfiguration(configurations[i]);
|
||||
if (visual_id == visual_id_matching_format)
|
||||
return configurations[i];
|
||||
try {
|
||||
int screen = getScreenFromDevice(device);
|
||||
int visual_id_matching_format = findVisualIDFromFormat(screen, pixel_format);
|
||||
GraphicsConfiguration[] configurations = device.getConfigurations();
|
||||
for (int i = 0; i < configurations.length; i++) {
|
||||
int visual_id = getVisualIDFromConfiguration(configurations[i]);
|
||||
if (visual_id == visual_id_matching_format)
|
||||
return configurations[i];
|
||||
}
|
||||
} catch (LWJGLException e) {
|
||||
LWJGLUtil.log("Got exception while trying to determine configuration: " + e);
|
||||
}
|
||||
throw new LWJGLException("Could not find the matching GraphicsConfiguration to visual id");
|
||||
return null; // In case we failed to locate the visual, or if we're not on a SUN JDK
|
||||
}
|
||||
|
||||
private static int findVisualIDFromFormat(int screen, PixelFormat pixel_format) throws LWJGLException {
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ final class Win32CanvasImplementation implements AWTCanvasImplementation {
|
|||
*/
|
||||
public GraphicsConfiguration findConfiguration(GraphicsDevice device, PixelFormat pixel_format) throws LWJGLException {
|
||||
/*
|
||||
* It seems like the best way is to simply return null and let
|
||||
* It seems like the best way is to simply return null and
|
||||
* use SetPixelFormat in JNI later.
|
||||
*/
|
||||
return null;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue