Fixes #1251 - Support OpenGL3.1 on LWJGL2 and LWJGL3

fix-openal-soft-deadlink
MeFisto94 5 years ago
parent 77c521fefa
commit 04e7bed5e7
  1. 28
      jme3-core/src/main/java/com/jme3/system/AppSettings.java
  2. 4
      jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglContext.java
  3. 1
      jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/LwjglContext.java
  4. 4
      jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/LwjglWindow.java

@ -70,6 +70,23 @@ public final class AppSettings extends HashMap<String, Object> {
*/
public static final String LWJGL_OPENGL2 = "LWJGL-OpenGL2";
/**
* Use LWJGL as the display system and force using the core OpenGL3.2 renderer.
* <p>
* If the underlying system does not support OpenGL3.2, then the context
* initialization will throw an exception. Note that currently jMonkeyEngine
* does not have any shaders that support OpenGL3.2 therefore this
* option is not useful.
* <p>
* Note: OpenGL 3.2 is used to give 3.x support to Mac users.
*
* @deprecated Previously meant 3.2, use LWJGL_OPENGL32 or LWJGL_OPENGL30
* @see AppSettings#setRenderer(java.lang.String)
*/
@Deprecated
public static final String LWJGL_OPENGL3 = "LWJGL-OpenGL3";
/**
* Use LWJGL as the display system and force using the core OpenGL3.0 renderer.
* <p>
@ -84,20 +101,17 @@ public final class AppSettings extends HashMap<String, Object> {
public static final String LWJGL_OPENGL30 = "LWJGL-OpenGL30";
/**
* Use LWJGL as the display system and force using the core OpenGL3.2 renderer.
* Use LWJGL as the display system and force using the core OpenGL3.1 renderer.
* <p>
* If the underlying system does not support OpenGL3.2, then the context
* If the underlying system does not support OpenGL3.1, then the context
* initialization will throw an exception. Note that currently jMonkeyEngine
* does not have any shaders that support OpenGL3.2 therefore this
* does not have any shaders that support OpenGL3.0 therefore this
* option is not useful.
* <p>
* Note: OpenGL 3.2 is used to give 3.x support to Mac users.
*
* @deprecated Previously meant 3.2, use LWJGL_OPENGL32 or LWJGL_OPENGL30
* @see AppSettings#setRenderer(java.lang.String)
*/
@Deprecated
public static final String LWJGL_OPENGL3 = "LWJGL-OpenGL3";
public static final String LWJGL_OPENGL31 = "LWJGL-OpenGL31";
/**
* Use LWJGL as the display system and force using the core OpenGL3.2 renderer.

@ -117,6 +117,10 @@ public abstract class LwjglContext implements JmeContext {
maj = 3;
min = 0;
break;
case AppSettings.LWJGL_OPENGL31:
maj = 3;
min = 1;
break;
case AppSettings.LWJGL_OPENGL32:
maj = 3;
min = 2;

@ -106,6 +106,7 @@ public abstract class LwjglContext implements JmeContext {
private static final Set<String> SUPPORTED_RENDERS = new HashSet<>(Arrays.asList(
AppSettings.LWJGL_OPENGL2,
AppSettings.LWJGL_OPENGL30,
AppSettings.LWJGL_OPENGL31,
AppSettings.LWJGL_OPENGL32,
AppSettings.LWJGL_OPENGL33,
AppSettings.LWJGL_OPENGL40,

@ -80,6 +80,10 @@ public abstract class LwjglWindow extends LwjglContext implements Runnable {
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
});
RENDER_CONFIGS.put(AppSettings.LWJGL_OPENGL31, () -> {
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
});
RENDER_CONFIGS.put(AppSettings.LWJGL_OPENGL32, () -> {
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);

Loading…
Cancel
Save