|
@@ -69,6 +69,7 @@ public class IGLESShaderRenderer implements Renderer {
|
|
private FrameBuffer mainFbOverride = null;
|
|
private FrameBuffer mainFbOverride = null;
|
|
private boolean useVBO = true;
|
|
private boolean useVBO = true;
|
|
private boolean powerVr = false;
|
|
private boolean powerVr = false;
|
|
|
|
+ private boolean uintIndexSupport = false;
|
|
|
|
|
|
private Shader boundShader;
|
|
private Shader boundShader;
|
|
|
|
|
|
@@ -1220,6 +1221,9 @@ public class IGLESShaderRenderer implements Renderer {
|
|
|
|
|
|
logger.log(Level.FINE, "Caps: {0}", caps);
|
|
logger.log(Level.FINE, "Caps: {0}", caps);
|
|
logger.setLevel(store);
|
|
logger.setLevel(store);
|
|
|
|
+
|
|
|
|
+ uintIndexSupport = extensions.contains("GL_OES_element_index_uint");
|
|
|
|
+ logger.log(Level.FINE, "Support for UInt index: {0}", uintIndexSupport);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1922,7 +1926,7 @@ public class IGLESShaderRenderer implements Renderer {
|
|
|
|
|
|
Buffer indexData = indexBuf.getData();
|
|
Buffer indexData = indexBuf.getData();
|
|
|
|
|
|
- if (indexBuf.getFormat() == Format.UnsignedInt) {
|
|
|
|
|
|
+ if (!uintIndexSupport && (indexBuf.getFormat() == Format.UnsignedInt)) {
|
|
throw new RendererException("OpenGL ES does not support 32-bit index buffers." +
|
|
throw new RendererException("OpenGL ES does not support 32-bit index buffers." +
|
|
"Split your models to avoid going over 65536 vertices.");
|
|
"Split your models to avoid going over 65536 vertices.");
|
|
}
|
|
}
|