Skip to content

Commit a68d8b5

Browse files
authored
Add support for opengl versions > 3.2 in lwjgl2 renderer
1 parent 7e11a6c commit a68d8b5

File tree

1 file changed

+55
-5
lines changed

1 file changed

+55
-5
lines changed

jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglContext.java

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,61 @@ protected void printContextInitInfo() {
106106
Display.getPixelScaleFactor()});
107107
}
108108

109+
protected int[] getGLVersion(String renderer) {
110+
int maj = -1, min = -1;
111+
switch (settings.getRenderer()) {
112+
case AppSettings.LWJGL_OPENGL2:
113+
maj = 2;
114+
min = 0;
115+
break;
116+
// case AppSettings.LWJGL_OPENGL30:
117+
// maj=3;
118+
// min=0;
119+
// break;
120+
case AppSettings.LWJGL_OPENGL3:
121+
// case AppSettings.LWJGL_OPENGL32:
122+
maj = 3;
123+
min = 2;
124+
break;
125+
case AppSettings.LWJGL_OPENGL33:
126+
maj = 3;
127+
min = 3;
128+
break;
129+
case AppSettings.LWJGL_OPENGL4:
130+
// case AppSettings.LWJGL_OPENGL40:
131+
maj = 4;
132+
min = 0;
133+
break;
134+
case AppSettings.LWJGL_OPENGL41:
135+
maj = 4;
136+
min = 1;
137+
break;
138+
case AppSettings.LWJGL_OPENGL42:
139+
maj = 4;
140+
min = 2;
141+
break;
142+
case AppSettings.LWJGL_OPENGL43:
143+
maj = 4;
144+
min = 3;
145+
break;
146+
case AppSettings.LWJGL_OPENGL44:
147+
maj = 4;
148+
min = 4;
149+
break;
150+
case AppSettings.LWJGL_OPENGL45:
151+
maj = 4;
152+
min = 5;
153+
break;
154+
}
155+
return maj == -1 ? null : new int[] { maj, min };
156+
}
157+
109158
protected ContextAttribs createContextAttribs() {
110-
if (settings.getBoolean("GraphicsDebug") || settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) {
159+
int vers[] = getGLVersion(settings.getRenderer());
160+
if (settings.getBoolean("GraphicsDebug") || (vers != null && vers[0] != 2)) {
111161
ContextAttribs attr;
112-
if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) {
113-
attr = new ContextAttribs(3, 2);
162+
if (vers != null && vers[0] != 2) {
163+
attr = new ContextAttribs(vers[0], vers[1]);
114164
attr = attr.withProfileCore(true).withForwardCompatible(true).withProfileCompatibility(false);
115165
} else {
116166
attr = new ContextAttribs();
@@ -204,8 +254,8 @@ protected void initContextFirstTime() {
204254
+ "required for jMonkeyEngine");
205255
}
206256

207-
if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL2)
208-
|| settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) {
257+
int vers[] = getGLVersion(settings.getRenderer());
258+
if (vers != null) {
209259
GL gl = new LwjglGL();
210260
GLExt glext = new LwjglGLExt();
211261
GLFbo glfbo;

0 commit comments

Comments
 (0)