public FloatBuffer createFloatBuffer (int size) { return createByteBuffer(size*4).asFloatBuffer(); }
@Override public void glGetActiveAttrib(int program, int index, int bufsize, int[] length, int lengthOffset, int[] size, int sizeOffset, int[] type, int typeOffset, byte[] name, int nameOffset) { // http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetActiveAttrib.xml // Returns length, size, type, name bufs.resizeIntBuffer(2); // Return name, length final String nameString = GL20.glGetActiveAttrib(program, index, bufsize, bufs.intBuffer); try { final byte[] nameBytes = nameString.getBytes("UTF-8"); final int nameLength = nameBytes.length - nameOffset; bufs.setByteBuffer(nameBytes, nameOffset, nameLength); bufs.byteBuffer.get(name, nameOffset, nameLength); length[lengthOffset] = nameLength; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // Return size, type bufs.intBuffer.get(size, 0, 1); bufs.intBuffer.get(type, 0, 1); }
@Override public void glGetAttachedShaders(int program, int maxcount, int[] count, int countOffset, int[] shaders, int shadersOffset) { int countLength = count.length - countOffset; bufs.resizeIntBuffer(countLength); int shadersLength = shaders.length - shadersOffset; IntBuffer intBuffer2 = bufs.createIntBuffer(shadersLength); glGetAttachedShaders(program, maxcount, bufs.intBuffer, intBuffer2); bufs.intBuffer.get(count, countOffset, countLength); intBuffer2.get(shaders, shadersOffset, shadersLength); }
@Override public void glGetActiveAttrib(int program, int index, int bufsize, int[] length, int lengthOffset, int[] size, int sizeOffset, int[] type, int typeOffset, byte[] name, int nameOffset) { // http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetActiveAttrib.xml // Returns length, size, type, name bufs.resizeIntBuffer(2); // Return name, length final String nameString = GL20.glGetActiveAttrib(program, index, bufsize, bufs.intBuffer); try { final byte[] nameBytes = nameString.getBytes("UTF-8"); final int nameLength = nameBytes.length - nameOffset; bufs.setByteBuffer(nameBytes, nameOffset, nameLength); bufs.byteBuffer.get(name, nameOffset, nameLength); length[lengthOffset] = nameLength; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // Return size, type bufs.intBuffer.get(size, 0, 1); bufs.intBuffer.get(type, 0, 1); }
@Override public void glGetActiveUniform(int program, int index, int bufsize, int[] length, int lengthOffset, int[] size, int sizeOffset, int[] type, int typeOffset, byte[] name, int nameOffset) { bufs.resizeIntBuffer(2); // Return name, length final String nameString = GL20.glGetActiveUniform(program, index, 256, bufs.intBuffer); try { final byte[] nameBytes = nameString.getBytes("UTF-8"); final int nameLength = nameBytes.length - nameOffset; bufs.setByteBuffer(nameBytes, nameOffset, nameLength); bufs.byteBuffer.get(name, nameOffset, nameLength); length[lengthOffset] = nameLength; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // Return size, type bufs.intBuffer.get(size, 0, 1); bufs.intBuffer.get(type, 0, 1); }
@Override public void glGetActiveUniform(int program, int index, int bufsize, int[] length, int lengthOffset, int[] size, int sizeOffset, int[] type, int typeOffset, byte[] name, int nameOffset) { bufs.resizeIntBuffer(2); // Return name, length final String nameString = GL20.glGetActiveUniform(program, index, 256, bufs.intBuffer); try { final byte[] nameBytes = nameString.getBytes("UTF-8"); final int nameLength = nameBytes.length - nameOffset; bufs.setByteBuffer(nameBytes, nameOffset, nameLength); bufs.byteBuffer.get(name, nameOffset, nameLength); length[lengthOffset] = nameLength; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // Return size, type bufs.intBuffer.get(size, 0, 1); bufs.intBuffer.get(type, 0, 1); }
public IntBuffer createIntBuffer (int size) { return createByteBuffer(size*4).asIntBuffer(); } public FloatBuffer createFloatBuffer (int size) {
@Override public void glGetVertexAttribiv(int index, int pname, int[] params, int offset) { final int length = params.length - offset; bufs.resizeIntBuffer(length); glGetVertexAttribiv(index, pname, bufs.intBuffer); bufs.intBuffer.get(params, offset, length); }
@Override public void glGetTexParameteriv(int target, int pname, int[] params, int offset) { final int length = params.length - offset; bufs.resizeIntBuffer(length); glGetTexParameteriv(target, pname, bufs.intBuffer); bufs.intBuffer.get(params, offset, length); }
@Override public void glGetRenderbufferParameteriv(int target, int pname, int[] params, int offset) { final int length = params.length - offset; bufs.resizeIntBuffer(length); glGetRenderbufferParameteriv(target, pname, bufs.intBuffer); bufs.intBuffer.get(params, offset, length); }
@Override public void glGenFramebuffers(int n, int[] framebuffers, int offset) { bufs.resizeIntBuffer(n); glGenFramebuffers(n, bufs.intBuffer); bufs.intBuffer.get(framebuffers, offset, n); }
@Override public void glUniform4iv(int location, int count, int[] v, int offset) { bufs.setIntBuffer(v, offset, count); glUniform4iv(location, count, bufs.intBuffer); }
@Override public void glUniform4fv(int location, int count, float[] v, int offset) { bufs.setFloatBuffer(v, offset, count); glUniform4fv(location, count, bufs.floatBuffer); }
@Override public void glUniform2iv(int location, int count, int[] v, int offset) { bufs.setIntBuffer(v, offset, count); glUniform2iv(location, count, bufs.intBuffer); }
@Override public void glUniform1fv(int location, int count, float[] v, int offset) { bufs.setFloatBuffer(v, offset, count); glUniform1fv(location, count, bufs.floatBuffer); }
@Override public void glTexParameterfv(int target, int pname, float[] params, int offset) { final int length = params.length - offset; bufs.setFloatBuffer(params, offset, length); glTexParameterfv(target, pname, bufs.floatBuffer); }
@Override public void glDeleteRenderbuffers(int n, int[] renderbuffers, int offset) { bufs.setIntBuffer(renderbuffers, offset, n); glDeleteRenderbuffers(n, bufs.intBuffer); }
@Override public void glGetTexParameterfv(int target, int pname, float[] params, int offset) { final int length = params.length - offset; bufs.resizeFloatBuffer(length); glGetTexParameterfv(target, pname, bufs.floatBuffer); bufs.floatBuffer.get(params, offset, length); }
@Override public void glGetBooleanv(int pname, byte[] params, int offset) { final int length = params.length - offset; bufs.resizeByteBuffer(length); glGetBooleanv(pname, bufs.byteBuffer); bufs.byteBuffer.get(params, offset, length); }
@Override public void glGenRenderbuffers(int n, int[] renderbuffers, int offset) { bufs.resizeIntBuffer(n); glGenRenderbuffers(n, bufs.intBuffer); bufs.intBuffer.get(renderbuffers, offset, n); }