1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
'''OpenGL extension OES.texture_buffer
This module customises the behaviour of the
OpenGL.raw.GLES2.OES.texture_buffer to provide a more
Python-friendly API
Overview (from the spec)
This extension provides a new texture type, called a buffer texture.
Buffer textures are one-dimensional arrays of texels whose storage comes
from an attached buffer object. When a buffer object is bound to a
buffer texture, a format is specified, and the data in the buffer object
is treated as an array of texels of the specified format.
The use of a buffer object to provide storage allows the texture data to
be specified in a number of different ways: via buffer object loads
(BufferData), direct CPU writes (MapBuffer), or framebuffer readbacks to
pixel buffer objects (ReadPixels). A buffer object can also be loaded by
transform feedback, which captures
selected transformed attributes of vertices processed by the GL. Several
of these mechanisms do not require an extra data copy, which would be
required when using conventional TexImage-like entry points.
Buffer textures do not support mipmapping, texture lookups with
normalized floating-point texture coordinates, and texture filtering of
any sort.
They can be accessed via single texel fetch operations in programmable
shaders, using a new sampler type and texel fetch function, and
access can be controlled using the same memory barrier operations
as for other texture types.
Buffer textures are treated as (potentially large) one-dimensional
textures; the maximum texture size supported for buffer textures in the
initial implementation of this extension is 2^27 texels (note that this
extension only guarantees support for buffer textures with 2^16 texels,
but we expect most implementations to exceed that substantially). When a
buffer object is attached to a buffer texture, a size is not specified;
rather, the number of texels in the texture is taken by dividing the size
of the buffer object by the size of each texel.
This extension also allows a sub-range of the buffer's data store to
be attached to a texture. This can be used, for example, to allow multiple
buffer textures to be backed by independent sub-ranges of the same buffer
object, or for different sub-ranges of a single buffer object to be used
for different purposes.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/OES/texture_buffer.txt
'''
from OpenGL import platform, constant, arrays
from OpenGL import extensions, wrapper
import ctypes
from OpenGL.raw.GLES2 import _types, _glgets
from OpenGL.raw.GLES2.OES.texture_buffer import *
from OpenGL.raw.GLES2.OES.texture_buffer import _EXTENSION_NAME
def glInitTextureBufferOES():
'''Return boolean indicating whether this extension is available'''
from OpenGL import extensions
return extensions.hasGLExtension( _EXTENSION_NAME )
### END AUTOGENERATED SECTION
|