|
|
|
@ -106,11 +106,61 @@ public abstract class LwjglContext implements JmeContext { |
|
|
|
|
Display.getPixelScaleFactor()}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected int[] getGLVersion(String renderer) { |
|
|
|
|
int maj = -1, min = -1; |
|
|
|
|
switch (settings.getRenderer()) { |
|
|
|
|
case AppSettings.LWJGL_OPENGL2: |
|
|
|
|
maj = 2; |
|
|
|
|
min = 0; |
|
|
|
|
break; |
|
|
|
|
// case AppSettings.LWJGL_OPENGL30:
|
|
|
|
|
// maj=3;
|
|
|
|
|
// min=0;
|
|
|
|
|
// break;
|
|
|
|
|
case AppSettings.LWJGL_OPENGL3: |
|
|
|
|
// case AppSettings.LWJGL_OPENGL32:
|
|
|
|
|
maj = 3; |
|
|
|
|
min = 2; |
|
|
|
|
break; |
|
|
|
|
case AppSettings.LWJGL_OPENGL33: |
|
|
|
|
maj = 3; |
|
|
|
|
min = 3; |
|
|
|
|
break; |
|
|
|
|
case AppSettings.LWJGL_OPENGL4: |
|
|
|
|
// case AppSettings.LWJGL_OPENGL40:
|
|
|
|
|
maj = 4; |
|
|
|
|
min = 0; |
|
|
|
|
break; |
|
|
|
|
case AppSettings.LWJGL_OPENGL41: |
|
|
|
|
maj = 4; |
|
|
|
|
min = 1; |
|
|
|
|
break; |
|
|
|
|
case AppSettings.LWJGL_OPENGL42: |
|
|
|
|
maj = 4; |
|
|
|
|
min = 2; |
|
|
|
|
break; |
|
|
|
|
case AppSettings.LWJGL_OPENGL43: |
|
|
|
|
maj = 4; |
|
|
|
|
min = 3; |
|
|
|
|
break; |
|
|
|
|
case AppSettings.LWJGL_OPENGL44: |
|
|
|
|
maj = 4; |
|
|
|
|
min = 4; |
|
|
|
|
break; |
|
|
|
|
case AppSettings.LWJGL_OPENGL45: |
|
|
|
|
maj = 4; |
|
|
|
|
min = 5; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
return maj == -1 ? null : new int[] { maj, min }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected ContextAttribs createContextAttribs() { |
|
|
|
|
if (settings.getBoolean("GraphicsDebug") || settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) { |
|
|
|
|
int vers[] = getGLVersion(settings.getRenderer()); |
|
|
|
|
if (settings.getBoolean("GraphicsDebug") || (vers != null && vers[0] != 2)) { |
|
|
|
|
ContextAttribs attr; |
|
|
|
|
if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) { |
|
|
|
|
attr = new ContextAttribs(3, 2); |
|
|
|
|
if (vers != null && vers[0] != 2) { |
|
|
|
|
attr = new ContextAttribs(vers[0], vers[1]); |
|
|
|
|
attr = attr.withProfileCore(true).withForwardCompatible(true).withProfileCompatibility(false); |
|
|
|
|
} else { |
|
|
|
|
attr = new ContextAttribs(); |
|
|
|
@ -204,8 +254,8 @@ public abstract class LwjglContext implements JmeContext { |
|
|
|
|
+ "required for jMonkeyEngine"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL2) |
|
|
|
|
|| settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) { |
|
|
|
|
int vers[] = getGLVersion(settings.getRenderer()); |
|
|
|
|
if (vers != null) { |
|
|
|
|
GL gl = new LwjglGL(); |
|
|
|
|
GLExt glext = new LwjglGLExt(); |
|
|
|
|
GLFbo glfbo; |
|
|
|
|