|
@@ -141,26 +141,12 @@ public class OGLESShaderRenderer implements Renderer {
|
|
|
|
|
|
|
|
public void initialize() {
|
|
public void initialize() {
|
|
|
|
|
|
|
|
- logger.info("Vendor: " + GLES20.glGetString(GLES20.GL_VENDOR));
|
|
|
|
|
- logger.info("Renderer: " + GLES20.glGetString(GLES20.GL_RENDERER));
|
|
|
|
|
- logger.info("Version: " + GLES20.glGetString(GLES20.GL_VERSION));
|
|
|
|
|
|
|
+ logger.log(Level.INFO, "Vendor: {0}", GLES20.glGetString(GLES20.GL_VENDOR));
|
|
|
|
|
+ logger.log(Level.INFO, "Renderer: {0}", GLES20.glGetString(GLES20.GL_RENDERER));
|
|
|
|
|
+ logger.log(Level.INFO, "Version: {0}", GLES20.glGetString(GLES20.GL_VERSION));
|
|
|
|
|
|
|
|
- String shadingLanguageVersion = GLES20.glGetString(GLES20.GL_SHADING_LANGUAGE_VERSION);
|
|
|
|
|
- logger.log(Level.INFO, "GLES20.Shading Language Version: {0}", shadingLanguageVersion);
|
|
|
|
|
-
|
|
|
|
|
- /*
|
|
|
|
|
- ContextCapabilities ctxCaps = GLContext.getCapabilities();
|
|
|
|
|
- if (ctxCaps.OpenGL20){
|
|
|
|
|
- caps.add(Caps.OpenGL20);
|
|
|
|
|
- }
|
|
|
|
|
- if (ctxCaps.OpenGL21){
|
|
|
|
|
- caps.add(Caps.OpenGL21);
|
|
|
|
|
- }
|
|
|
|
|
- if (ctxCaps.OpenGL30){
|
|
|
|
|
- caps.add(Caps.OpenGL30);
|
|
|
|
|
- }
|
|
|
|
|
- */
|
|
|
|
|
String versionStr = GLES20.glGetString(GLES20.GL_SHADING_LANGUAGE_VERSION);
|
|
String versionStr = GLES20.glGetString(GLES20.GL_SHADING_LANGUAGE_VERSION);
|
|
|
|
|
+ logger.log(Level.INFO, "GLES20.Shading Language Version: {0}", versionStr);
|
|
|
if (versionStr == null || versionStr.equals("")) {
|
|
if (versionStr == null || versionStr.equals("")) {
|
|
|
glslVer = -1;
|
|
glslVer = -1;
|
|
|
throw new UnsupportedOperationException("GLSL and OpenGL2 is "
|
|
throw new UnsupportedOperationException("GLSL and OpenGL2 is "
|
|
@@ -174,42 +160,25 @@ public class OGLESShaderRenderer implements Renderer {
|
|
|
// initialDrawBuf = GLES20.glGetIntegeri(GLES20.GL_DRAW_BUFFER);
|
|
// initialDrawBuf = GLES20.glGetIntegeri(GLES20.GL_DRAW_BUFFER);
|
|
|
// initialReadBuf = GLES20.glGetIntegeri(GLES20.GL_READ_BUFFER);
|
|
// initialReadBuf = GLES20.glGetIntegeri(GLES20.GL_READ_BUFFER);
|
|
|
|
|
|
|
|
- int spaceIdx = versionStr.lastIndexOf(" ");
|
|
|
|
|
|
|
+ String openGlEsStr = "OpenGL ES GLSL ES ";
|
|
|
|
|
+ int spaceIdx = versionStr.indexOf(" ", openGlEsStr.length());
|
|
|
if (spaceIdx >= 1) {
|
|
if (spaceIdx >= 1) {
|
|
|
- versionStr = versionStr.substring(spaceIdx, versionStr.length());
|
|
|
|
|
|
|
+ versionStr = versionStr.substring(openGlEsStr.length(), spaceIdx).trim();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
float version = Float.parseFloat(versionStr);
|
|
float version = Float.parseFloat(versionStr);
|
|
|
glslVer = (int) (version * 100);
|
|
glslVer = (int) (version * 100);
|
|
|
|
|
|
|
|
switch (glslVer) {
|
|
switch (glslVer) {
|
|
|
|
|
+ // TODO: When new versions of OpenGL ES shader language come out,
|
|
|
|
|
+ // update this.
|
|
|
default:
|
|
default:
|
|
|
- if (glslVer < 400) {
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // so that future OpenGL revisions wont break jme3
|
|
|
|
|
-
|
|
|
|
|
- // fall through intentional
|
|
|
|
|
- case 400:
|
|
|
|
|
- case 330:
|
|
|
|
|
- case 150:
|
|
|
|
|
- caps.add(Caps.GLSL150);
|
|
|
|
|
- case 140:
|
|
|
|
|
- caps.add(Caps.GLSL140);
|
|
|
|
|
- case 130:
|
|
|
|
|
- caps.add(Caps.GLSL130);
|
|
|
|
|
- case 120:
|
|
|
|
|
- caps.add(Caps.GLSL120);
|
|
|
|
|
- case 110:
|
|
|
|
|
- caps.add(Caps.GLSL110);
|
|
|
|
|
- case 100:
|
|
|
|
|
caps.add(Caps.GLSL100);
|
|
caps.add(Caps.GLSL100);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (!caps.contains(Caps.GLSL100)) {
|
|
if (!caps.contains(Caps.GLSL100)) {
|
|
|
- logger.info("Force-adding GLSL100 support, since OpenGL is supported.");
|
|
|
|
|
|
|
+ logger.info("Force-adding GLSL100 support, since OpenGL2 is supported.");
|
|
|
caps.add(Caps.GLSL100);
|
|
caps.add(Caps.GLSL100);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -370,8 +339,6 @@ public class OGLESShaderRenderer implements Renderer {
|
|
|
powerOf2 = true;
|
|
powerOf2 = true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
applyRenderState(RenderState.DEFAULT);
|
|
applyRenderState(RenderState.DEFAULT);
|
|
|
// GLES20.glClearDepthf(1.0f);
|
|
// GLES20.glClearDepthf(1.0f);
|
|
|
|
|
|