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.
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_MAX_BINDABLE_UNIFORM_SIZE_EXT
Accepted by the |
| public static final int | GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT
Accepted by the |
| public static final int | GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
Accepted by the |
| public static final int | GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT
Accepted by the |
| public static final int | GL_UNIFORM_BUFFER_BINDING_EXT
Accepted by the |
| public static final int | GL_UNIFORM_BUFFER_EXT
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static native int | |
| public static native long | |
| public static native void |
| GL_MAX_BINDABLE_UNIFORM_SIZE_EXT | back to summary |
|---|---|
| public static final int GL_MAX_BINDABLE_UNIFORM_SIZE_EXT Accepted by the | |
| GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT | back to summary |
|---|---|
| public static final int GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT Accepted by the | |
| GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT | back to summary |
|---|---|
| public static final int GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT Accepted by the | |
| GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT | back to summary |
|---|---|
| public static final int GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT Accepted by the | |
| GL_UNIFORM_BUFFER_BINDING_EXT | back to summary |
|---|---|
| public static final int GL_UNIFORM_BUFFER_BINDING_EXT Accepted by the | |
| GL_UNIFORM_BUFFER_EXT | back to summary |
|---|---|
| public static final int GL_UNIFORM_BUFFER_EXT Accepted by the | |
| EXTBindableUniform | back to summary |
|---|---|
| protected EXTBindableUniform() | |
| glGetUniformBufferSizeEXT | back to summary |
|---|---|
public static native int glGetUniformBufferSizeEXT(int program, int location)
| |
| glGetUniformOffsetEXT | back to summary |
|---|---|
public static native long glGetUniformOffsetEXT(int program, int location)
| |
| glUniformBufferEXT | back to summary |
|---|---|
| public static native void glUniformBufferEXT(int program, int location, int buffer) | |