All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.opengl.EXTTransformFeedback Maven / Gradle / Ivy

Go to download

The most widely adopted 2D and 3D graphics API in the industry, bringing thousands of applications to a wide variety of computer platforms.

There is a newer version: 3.3.4
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.opengl;

import javax.annotation.*;

import java.nio.*;

import org.lwjgl.*;

import org.lwjgl.system.*;

import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;
import static org.lwjgl.system.MemoryStack.*;
import static org.lwjgl.system.MemoryUtil.*;

/**
 * Native bindings to the EXT_transform_feedback extension.
 * 
 * 

This extension provides a new mode to the GL, called transform feedback, which records selected vertex attributes for each primitive processed by the * GL. The selected attributes are written into buffer objects, and can be written with each attribute in a separate buffer object or with all attributes * interleaved into a single buffer object. If a geometry shader is active, the primitives recorded are those emitted by the geometry shader. Otherwise, * transform feedback captures primitives whose vertices are transformed by a vertex shader. In either case, the primitives captured are those generated * prior to clipping. Transform feedback mode captures the values of specified varying variables emitted from GLSL vertex or geometry shaders.

* *

The vertex data recorded in transform feedback mode is stored into buffer objects as an array of vertex attributes. The regular representation and the * use of buffer objects allows the recorded data to be processed directly by the GL without requiring CPU intervention to copy data. In particular, * transform feedback data can be used for vertex arrays (via vertex buffer objects), as the source for pixel data (via pixel buffer objects), as shader * constant data (via the NV_parameter_buffer_object or {@link EXTBindableUniform EXT_bindable_uniform} extensions), or via any other extension that * makes use of buffer objects.

* *

This extension introduces new query object support to allow transform feedback mode to operate asynchronously. Query objects allow applications to * determine when transform feedback results are complete, as well as the number of primitives processed and written back to buffer objects while in * transform feedback mode. This extension also provides a new rasterizer discard enable, which allows applications to use transform feedback to capture * vertex attributes without rendering anything.

* *

Requires {@link GL20 OpenGL 2.0} or {@link ARBShaderObjects ARB_shader_objects}. Promoted to core in {@link GL30 OpenGL 3.0}.

*/ public class EXTTransformFeedback { static { GL.initialize(); } /** * Accepted by the {@code target} parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferPointerv, * BindBufferRangeEXT, BindBufferOffsetEXT and BindBufferBaseEXT. */ public static final int GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E; /** Accepted by the {@code param} parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT. */ public static final int GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84, GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85; /** * Accepted by the {@code param} parameter of GetIntegerIndexedvEXT and GetBooleanIndexedvEXT, and by the {@code pname} parameter of GetBooleanv, * GetDoublev, GetIntegerv, and GetFloatv. */ public static final int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F; /** Accepted by the {@code bufferMode} parameter of TransformFeedbackVaryingsEXT. */ public static final int GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C, GL_SEPARATE_ATTRIBS_EXT = 0x8C8D; /** Accepted by the {@code target} parameter of BeginQuery, EndQuery, and GetQueryiv. */ public static final int GL_PRIMITIVES_GENERATED_EXT = 0x8C87, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88; /** * Accepted by the {@code cap} parameter of Enable, Disable, and IsEnabled, and by the {@code pname} parameter of GetBooleanv, GetIntegerv, GetFloatv, and * GetDoublev. */ public static final int GL_RASTERIZER_DISCARD_EXT = 0x8C89; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. */ public static final int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80; /** Accepted by the {@code pname} parameter of GetProgramiv. */ public static final int GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83, GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76; protected EXTTransformFeedback() { throw new UnsupportedOperationException(); } // --- [ glBindBufferRangeEXT ] --- public static native void glBindBufferRangeEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index, @NativeType("GLuint") int buffer, @NativeType("GLintptr") long offset, @NativeType("GLsizeiptr") long size); // --- [ glBindBufferOffsetEXT ] --- public static native void glBindBufferOffsetEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index, @NativeType("GLuint") int buffer, @NativeType("GLintptr") long offset); // --- [ glBindBufferBaseEXT ] --- public static native void glBindBufferBaseEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index, @NativeType("GLuint") int buffer); // --- [ glBeginTransformFeedbackEXT ] --- public static native void glBeginTransformFeedbackEXT(@NativeType("GLenum") int primitiveMode); // --- [ glEndTransformFeedbackEXT ] --- public static native void glEndTransformFeedbackEXT(); // --- [ glTransformFeedbackVaryingsEXT ] --- public static native void nglTransformFeedbackVaryingsEXT(int program, int count, long varyings, int bufferMode); public static void glTransformFeedbackVaryingsEXT(@NativeType("GLuint") int program, @NativeType("GLchar const * const *") PointerBuffer varyings, @NativeType("GLenum") int bufferMode) { nglTransformFeedbackVaryingsEXT(program, varyings.remaining(), memAddress(varyings), bufferMode); } 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); } } // --- [ glGetTransformFeedbackVaryingEXT ] --- public static native void nglGetTransformFeedbackVaryingEXT(int program, int index, int bufSize, long length, long size, long type, long name); public static void glGetTransformFeedbackVaryingEXT(@NativeType("GLuint") int program, @NativeType("GLuint") int index, @Nullable @NativeType("GLsizei *") IntBuffer length, @NativeType("GLsizei *") IntBuffer size, @NativeType("GLenum *") IntBuffer type, @NativeType("GLchar *") ByteBuffer name) { if (CHECKS) { checkSafe(length, 1); check(size, 1); check(type, 1); } nglGetTransformFeedbackVaryingEXT(program, index, name.remaining(), memAddressSafe(length), memAddress(size), memAddress(type), memAddress(name)); } @NativeType("void") public static String glGetTransformFeedbackVaryingEXT(@NativeType("GLuint") int program, @NativeType("GLuint") int index, @NativeType("GLsizei") int bufSize, @NativeType("GLsizei *") IntBuffer size, @NativeType("GLenum *") IntBuffer type) { if (CHECKS) { check(size, 1); check(type, 1); } MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer length = stack.ints(0); ByteBuffer name = stack.malloc(bufSize); nglGetTransformFeedbackVaryingEXT(program, index, bufSize, memAddress(length), memAddress(size), memAddress(type), memAddress(name)); return memASCII(name, length.get(0)); } finally { stack.setPointer(stackPointer); } } @NativeType("void") public static String glGetTransformFeedbackVaryingEXT(@NativeType("GLuint") int program, @NativeType("GLuint") int index, @NativeType("GLsizei *") IntBuffer size, @NativeType("GLenum *") IntBuffer type) { return glGetTransformFeedbackVaryingEXT(program, index, GL.getCapabilities().OpenGL20 ? GL20.glGetProgrami(program, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT) : ARBShaderObjects.glGetObjectParameteriARB(program, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT), size, type); } // --- [ glGetIntegerIndexedvEXT ] --- public static void nglGetIntegerIndexedvEXT(int target, int index, long data) { EXTDrawBuffers2.nglGetIntegerIndexedvEXT(target, index, data); } public static void glGetIntegerIndexedvEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index, @NativeType("GLint *") IntBuffer data) { EXTDrawBuffers2.glGetIntegerIndexedvEXT(target, index, data); } @NativeType("void") public static int glGetIntegerIndexedEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index) { return EXTDrawBuffers2.glGetIntegerIndexedEXT(target, index); } // --- [ glGetBooleanIndexedvEXT ] --- public static void nglGetBooleanIndexedvEXT(int target, int index, long data) { EXTDrawBuffers2.nglGetBooleanIndexedvEXT(target, index, data); } public static void glGetBooleanIndexedvEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index, @NativeType("GLboolean *") ByteBuffer data) { EXTDrawBuffers2.glGetBooleanIndexedvEXT(target, index, data); } @NativeType("void") public static boolean glGetBooleanIndexedEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index) { return EXTDrawBuffers2.glGetBooleanIndexedEXT(target, index); } /** Array version of: {@link #glGetTransformFeedbackVaryingEXT GetTransformFeedbackVaryingEXT} */ public static void glGetTransformFeedbackVaryingEXT(@NativeType("GLuint") int program, @NativeType("GLuint") int index, @Nullable @NativeType("GLsizei *") int[] length, @NativeType("GLsizei *") int[] size, @NativeType("GLenum *") int[] type, @NativeType("GLchar *") ByteBuffer name) { long __functionAddress = GL.getICD().glGetTransformFeedbackVaryingEXT; if (CHECKS) { check(__functionAddress); checkSafe(length, 1); check(size, 1); check(type, 1); } callPPPPV(program, index, name.remaining(), length, size, type, memAddress(name), __functionAddress); } /** Array version of: {@link #glGetIntegerIndexedvEXT GetIntegerIndexedvEXT} */ public static void glGetIntegerIndexedvEXT(@NativeType("GLenum") int target, @NativeType("GLuint") int index, @NativeType("GLint *") int[] data) { EXTDrawBuffers2.glGetIntegerIndexedvEXT(target, index, data); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy