Class EXTBindableUniform
This extension introduces the concept of bindable uniforms to the OpenGL Shading Language. A uniform variable can be declared bindable, which means that the storage for the uniform is not allocated by the compiler/linker anymore, but is backed by a buffer object. This buffer object is bound to the bindable uniform through the new command UniformBufferEXT(). Binding needs to happen after linking a program object.
Binding different buffer objects to a bindable uniform allows an application to easily use different "uniform data sets", without having to re-specify the data every time.
A buffer object can be bound to bindable uniforms in different program objects. If those bindable uniforms are all of the same type, accessing a bindable uniform in program object A will result in the same data if the same access is made in program object B. This provides a mechanism for 'environment uniforms', uniform values that can be shared among multiple program objects.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.static final int
Accepted by thetarget
parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and GetBufferPointerv. -
Method Summary
Modifier and TypeMethodDescriptionstatic int
glGetUniformBufferSizeEXT
(int program, int location) static long
glGetUniformOffsetEXT
(int program, int location) static void
glUniformBufferEXT
(int program, int location, int buffer)
-
Field Details
-
GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT
public static final int GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT
public static final int GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
public static final int GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_BINDABLE_UNIFORM_SIZE_EXT
public static final int GL_MAX_BINDABLE_UNIFORM_SIZE_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_UNIFORM_BUFFER_BINDING_EXT
public static final int GL_UNIFORM_BUFFER_BINDING_EXTAccepted by thepname
parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.- See Also:
-
GL_UNIFORM_BUFFER_EXT
public static final int GL_UNIFORM_BUFFER_EXTAccepted by thetarget
parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and GetBufferPointerv.- See Also:
-
-
Method Details
-
glUniformBufferEXT
public static void glUniformBufferEXT(int program, int location, int buffer) -
glGetUniformBufferSizeEXT
public static int glGetUniformBufferSizeEXT(int program, int location) -
glGetUniformOffsetEXT
public static long glGetUniformOffsetEXT(int program, int location)
-