From 9c6ca69b34060afb4d4c7daf54f2b3c45b4d4cd2 Mon Sep 17 00:00:00 2001 From: "Sha..rd" Date: Sat, 14 Jan 2012 04:49:28 +0000 Subject: [PATCH] * Fixed GLSL version parsing issue on Android 4.0 git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9020 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../renderer/android/OGLESShaderRenderer.java | 53 ++++--------------- 1 file changed, 10 insertions(+), 43 deletions(-) diff --git a/engine/src/android/com/jme3/renderer/android/OGLESShaderRenderer.java b/engine/src/android/com/jme3/renderer/android/OGLESShaderRenderer.java index ac12c0a9c..2e543b5e3 100644 --- a/engine/src/android/com/jme3/renderer/android/OGLESShaderRenderer.java +++ b/engine/src/android/com/jme3/renderer/android/OGLESShaderRenderer.java @@ -141,26 +141,12 @@ public class OGLESShaderRenderer implements Renderer { 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); + logger.log(Level.INFO, "GLES20.Shading Language Version: {0}", versionStr); if (versionStr == null || versionStr.equals("")) { glslVer = -1; throw new UnsupportedOperationException("GLSL and OpenGL2 is " @@ -174,42 +160,25 @@ public class OGLESShaderRenderer implements Renderer { // initialDrawBuf = GLES20.glGetIntegeri(GLES20.GL_DRAW_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) { - versionStr = versionStr.substring(spaceIdx, versionStr.length()); + versionStr = versionStr.substring(openGlEsStr.length(), spaceIdx).trim(); } float version = Float.parseFloat(versionStr); glslVer = (int) (version * 100); switch (glslVer) { + // TODO: When new versions of OpenGL ES shader language come out, + // update this. 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); break; } 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); } @@ -370,8 +339,6 @@ public class OGLESShaderRenderer implements Renderer { powerOf2 = true; } - - applyRenderState(RenderState.DEFAULT); // GLES20.glClearDepthf(1.0f);