Supported Hardware

Series6, Series6XE, Series6XT

Valid APIs

OpenGL ES 3.1


This extension adds a way to effectively treat a buffer as a 1-dimensional texture, and sample from that buffer in a shader. This is done by attaching a buffer object as the data store for a texture, in place of the TexStorage* or TexImage* functions.

This allows applications to have access to a linear texture in memory which can be mapped into CPU space and the data can be manipulated more readily than typically opaque textures.


// Bind a texture object 
GLuint textureObject; 
glBindTexture(GL_TEXTURE_2D, textureObject); 
// Set a buffer as the bound texture object's data store, with RGBA8 data 
GLuint bufferObject; 
glTexBufferEXT(GL_TEXTURE_2D, GL_RGBA8, bufferobject); 
#extension GL_EXT_texture_buffer : require 
uniform samplerBuffer myTextureBuffer; 
in float textureBufferCoords; 
void main() 
	// Sample the texture buffer. 
	vec4 value = texture(myTextureBuffer, textureBufferCoords);