List of usage examples for org.lwjgl.opengl GL31 glDrawElementsInstanced
public static void glDrawElementsInstanced(@NativeType("GLenum") int mode, @NativeType("void const *") IntBuffer indices, @NativeType("GLsizei") int primcount)
From source file:com.ardor3d.renderer.lwjgl.LwjglRenderer.java
License:Open Source License
@Override public void drawElements(final IndexBufferData<?> indices, final int[] indexLengths, final IndexMode[] indexModes, final int primcount) { if (indices == null || indices.getBuffer() == null) { logger.severe("Missing indices for drawElements call without VBO"); return;/*from w ww.j av a2s .c o m*/ } if (indexLengths == null) { final int glIndexMode = getGLIndexMode(indexModes[0]); indices.position(0); if (indices.getBuffer() instanceof IntBuffer) { if (primcount < 0) { GL11.glDrawElements(glIndexMode, (IntBuffer) indices.getBuffer()); } else { GL31.glDrawElementsInstanced(glIndexMode, (IntBuffer) indices.getBuffer(), primcount); } } else if (indices.getBuffer() instanceof ShortBuffer) { if (primcount < 0) { GL11.glDrawElements(glIndexMode, (ShortBuffer) indices.getBuffer()); } else { GL31.glDrawElementsInstanced(glIndexMode, (ShortBuffer) indices.getBuffer(), primcount); } } else if (indices.getBuffer() instanceof ByteBuffer) { if (primcount < 0) { GL11.glDrawElements(glIndexMode, (ByteBuffer) indices.getBuffer()); } else { GL31.glDrawElementsInstanced(glIndexMode, (ByteBuffer) indices.getBuffer(), primcount); } } if (Constants.stats) { addStats(indexModes[0], indices.getBufferLimit()); } } else { int offset = 0; int indexModeCounter = 0; for (int i = 0; i < indexLengths.length; i++) { final int count = indexLengths[i]; final int glIndexMode = getGLIndexMode(indexModes[indexModeCounter]); indices.getBuffer().position(offset); indices.getBuffer().limit(offset + count); if (indices.getBuffer() instanceof IntBuffer) { if (primcount < 0) { GL11.glDrawElements(glIndexMode, (IntBuffer) indices.getBuffer()); } else { GL31.glDrawElementsInstanced(glIndexMode, (IntBuffer) indices.getBuffer(), primcount); } } else if (indices.getBuffer() instanceof ShortBuffer) { if (primcount < 0) { GL11.glDrawElements(glIndexMode, (ShortBuffer) indices.getBuffer()); } else { GL31.glDrawElementsInstanced(glIndexMode, (ShortBuffer) indices.getBuffer(), primcount); } } else if (indices.getBuffer() instanceof ByteBuffer) { if (primcount < 0) { GL11.glDrawElements(glIndexMode, (ByteBuffer) indices.getBuffer()); } else { GL31.glDrawElementsInstanced(glIndexMode, (ByteBuffer) indices.getBuffer(), primcount); } } if (Constants.stats) { addStats(indexModes[indexModeCounter], count); } offset += count; if (indexModeCounter < indexModes.length - 1) { indexModeCounter++; } } } }
From source file:tk.ivybits.engine.gl.GL.java
License:Open Source License
public static void glDrawElementsInstanced(int a, IntBuffer b, int c) { GL31.glDrawElementsInstanced(a, b, c); }
From source file:tk.ivybits.engine.gl.GL.java
License:Open Source License
public static void glDrawElementsInstanced(int a, ShortBuffer b, int c) { GL31.glDrawElementsInstanced(a, b, c); }
From source file:tk.ivybits.engine.gl.GL.java
License:Open Source License
public static void glDrawElementsInstanced(int a, ByteBuffer b, int c) { GL31.glDrawElementsInstanced(a, b, c); }