@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 glGetProgramBinary(int program, int bufsize, int[] length, int lengthOffset, int[] binaryformat, int binaryformatOffset, Buffer binary) { final int lengthLength = bufsize - lengthOffset; bufs.resizeIntBuffer(lengthLength); final int binaryformatLength = bufsize - binaryformatOffset; final IntBuffer intBuffer2 = bufs.createIntBuffer(binaryformatLength); glGetProgramBinary(program, bufsize, bufs.intBuffer, intBuffer2, binary); // Return length, binaryformat bufs.intBuffer.get(length, lengthOffset, lengthLength); intBuffer2.get(binaryformat, binaryformatOffset, binaryformatLength); }
public void resizeIntBuffer(final int length) { final int cap = intBuffer.capacity(); if (cap < length) { intBuffer = createIntBuffer(newCap(cap, length)); } else { intBuffer.position(0); } intBuffer.limit(length); } public void resizeFloatBuffer(final int length) {