/** * Stores the addresses of the specified array of buffers on the specified {@link MemoryStack}. A second array that contains the buffer remaining bytes is * stored immediately after the pointer array. Length values are pointer-sized integers. * * @param stack the stack to use * @param buffers the buffers to store * * @return the pointer array address on the stack */ public static long apiArrayp(MemoryStack stack, ByteBuffer... buffers) { long pointers = apiArray(stack, buffers); PointerBuffer lengths = stack.mallocPointer(buffers.length); for (ByteBuffer buffer : buffers) { lengths.put(buffer.remaining()); } return pointers; }
public static void glTransformFeedbackVaryingsEXT(@NativeType("GLuint") int program, @NativeType("GLchar const * const *") CharSequence[] varyings, @NativeType("GLenum") int bufferMode) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long varyingsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, varyings); nglTransformFeedbackVaryingsEXT(program, varyings.length, varyingsAddress, bufferMode); org.lwjgl.system.APIUtil.apiArrayFree(varyingsAddress, varyings.length); } finally { stack.setPointer(stackPointer); } }
public static void glTransformFeedbackVaryingsEXT(@NativeType("GLuint") int program, @NativeType("GLchar const * const *") CharSequence varying, @NativeType("GLenum") int bufferMode) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long varyingsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, varying); nglTransformFeedbackVaryingsEXT(program, 1, varyingsAddress, bufferMode); org.lwjgl.system.APIUtil.apiArrayFree(varyingsAddress, 1); } finally { stack.setPointer(stackPointer); } }
@NativeType("GLuint") public static int glCreateShaderProgramvEXT(@NativeType("GLenum") int type, @NativeType("GLchar const **") CharSequence... strings) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long stringsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memUTF8, strings); int __result = nglCreateShaderProgramvEXT(type, strings.length, stringsAddress); org.lwjgl.system.APIUtil.apiArrayFree(stringsAddress, strings.length); return __result; } finally { stack.setPointer(stackPointer); } }
@NativeType("GLuint") public static int glCreateShaderProgramvEXT(@NativeType("GLenum") int type, @NativeType("GLchar const **") CharSequence string) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long stringsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memUTF8, string); int __result = nglCreateShaderProgramvEXT(type, 1, stringsAddress); org.lwjgl.system.APIUtil.apiArrayFree(stringsAddress, 1); return __result; } finally { stack.setPointer(stackPointer); } }
/** <a target="_blank" href="http://docs.gl/es3/glTransformFeedbackVaryings">Reference Page</a> */ public static void glTransformFeedbackVaryings(@NativeType("GLuint") int program, @NativeType("GLchar const * const *") CharSequence[] varyings, @NativeType("GLenum") int bufferMode) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long varyingsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, varyings); nglTransformFeedbackVaryings(program, varyings.length, varyingsAddress, bufferMode); org.lwjgl.system.APIUtil.apiArrayFree(varyingsAddress, varyings.length); } finally { stack.setPointer(stackPointer); } }
/** <a target="_blank" href="http://docs.gl/es3/glTransformFeedbackVaryings">Reference Page</a> */ public static void glTransformFeedbackVaryings(@NativeType("GLuint") int program, @NativeType("GLchar const * const *") CharSequence varying, @NativeType("GLenum") int bufferMode) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long varyingsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, varying); nglTransformFeedbackVaryings(program, 1, varyingsAddress, bufferMode); org.lwjgl.system.APIUtil.apiArrayFree(varyingsAddress, 1); } finally { stack.setPointer(stackPointer); } }
/** <a target="_blank" href="http://docs.gl/es3/glCreateShaderProgramv">Reference Page</a> */ @NativeType("GLuint") public static int glCreateShaderProgramv(@NativeType("GLenum") int type, @NativeType("GLchar const * const *") CharSequence... strings) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long stringsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memUTF8, strings); int __result = nglCreateShaderProgramv(type, strings.length, stringsAddress); org.lwjgl.system.APIUtil.apiArrayFree(stringsAddress, strings.length); return __result; } finally { stack.setPointer(stackPointer); } }
/** <a target="_blank" href="http://docs.gl/es3/glCreateShaderProgramv">Reference Page</a> */ @NativeType("GLuint") public static int glCreateShaderProgramv(@NativeType("GLenum") int type, @NativeType("GLchar const * const *") CharSequence string) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long stringsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memUTF8, string); int __result = nglCreateShaderProgramv(type, 1, stringsAddress); org.lwjgl.system.APIUtil.apiArrayFree(stringsAddress, 1); return __result; } finally { stack.setPointer(stackPointer); } }
/** * Specifies values to record in transform feedback buffers. * * @param program the target program object * @param bufferMode the mode used to capture the varying variables when transform feedback is active. One of:<br><table><tr><td>{@link #GL_INTERLEAVED_ATTRIBS INTERLEAVED_ATTRIBS}</td><td>{@link #GL_SEPARATE_ATTRIBS SEPARATE_ATTRIBS}</td></tr></table> * * @see <a target="_blank" href="http://docs.gl/gl4/glTransformFeedbackVaryings">Reference Page</a> */ public static void glTransformFeedbackVaryings(@NativeType("GLuint") int program, @NativeType("GLchar const **") CharSequence varying, @NativeType("GLenum") int bufferMode) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long varyingsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, varying); nglTransformFeedbackVaryings(program, 1, varyingsAddress, bufferMode); org.lwjgl.system.APIUtil.apiArrayFree(varyingsAddress, 1); } finally { stack.setPointer(stackPointer); } }
/** * Specifies values to record in transform feedback buffers. * * @param program the target program object * @param varyings an array of {@code count} zero-terminated strings specifying the names of the varying variables to use for transform feedback * @param bufferMode the mode used to capture the varying variables when transform feedback is active. One of:<br><table><tr><td>{@link #GL_INTERLEAVED_ATTRIBS INTERLEAVED_ATTRIBS}</td><td>{@link #GL_SEPARATE_ATTRIBS SEPARATE_ATTRIBS}</td></tr></table> * * @see <a target="_blank" href="http://docs.gl/gl4/glTransformFeedbackVaryings">Reference Page</a> */ public static void glTransformFeedbackVaryings(@NativeType("GLuint") int program, @NativeType("GLchar const **") CharSequence[] varyings, @NativeType("GLenum") int bufferMode) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long varyingsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, varyings); nglTransformFeedbackVaryings(program, varyings.length, varyingsAddress, bufferMode); org.lwjgl.system.APIUtil.apiArrayFree(varyingsAddress, varyings.length); } finally { stack.setPointer(stackPointer); } }
/** * Retrieves the indices of a number of uniforms within a program object * * @param program the name of a program containing uniforms whose indices to query * * @see <a target="_blank" href="http://docs.gl/gl4/glGetUniformIndices">Reference Page</a> */ @NativeType("void") public static int glGetUniformIndices(@NativeType("GLuint") int program, @NativeType("GLchar const **") CharSequence uniformName) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long uniformNamesAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, uniformName); IntBuffer uniformIndices = stack.callocInt(1); nglGetUniformIndices(program, 1, uniformNamesAddress, memAddress(uniformIndices)); org.lwjgl.system.APIUtil.apiArrayFree(uniformNamesAddress, 1); return uniformIndices.get(0); } finally { stack.setPointer(stackPointer); } }
/** * Retrieves the indices of a number of uniforms within a program object * * @param program the name of a program containing uniforms whose indices to query * @param uniformNames an array of pointers to buffers containing the names of the queried uniforms * @param uniformIndices an array that will receive the indices of the uniforms * * @see <a target="_blank" href="http://docs.gl/gl4/glGetUniformIndices">Reference Page</a> */ public static void glGetUniformIndices(@NativeType("GLuint") int program, @NativeType("GLchar const **") CharSequence[] uniformNames, @NativeType("GLuint *") IntBuffer uniformIndices) { if (CHECKS) { check(uniformIndices, uniformNames.length); } MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long uniformNamesAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memASCII, uniformNames); nglGetUniformIndices(program, uniformNames.length, uniformNamesAddress, memAddress(uniformIndices)); org.lwjgl.system.APIUtil.apiArrayFree(uniformNamesAddress, uniformNames.length); } finally { stack.setPointer(stackPointer); } }
MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long stringsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memUTF8, string); int __result = nglCreateShaderProgramv(type, 1, stringsAddress); org.lwjgl.system.APIUtil.apiArrayFree(stringsAddress, 1);
MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { long stringsAddress = org.lwjgl.system.APIUtil.apiArray(stack, MemoryUtil::memUTF8, strings); int __result = nglCreateShaderProgramv(type, strings.length, stringsAddress); org.lwjgl.system.APIUtil.apiArrayFree(stringsAddress, strings.length);