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
|
'''OpenGL extension OES.shader_io_blocks
This module customises the behaviour of the
OpenGL.raw.GLES2.OES.shader_io_blocks to provide a more
Python-friendly API
Overview (from the spec)
This extension extends the functionality of interface blocks to
support input and output interfaces in the OpenGL ES Shading Language.
Input and output interface blocks are used for forming the
interfaces between vertex, tessellation control, tessellation
evaluation, geometry and fragment shaders. This accommodates passing
arrays between stages, which otherwise would require multi-dimensional
array support for tessellation control outputs and for tessellation
control, tessellation evaluation, and geometry shader inputs.
This extension provides support for application defined
interface blocks which are used for passing application-specific
information between shader stages.
This extension moves the built-in "per-vertex" in/out variables
to a new built-in gl_PerVertex block. This is necessary for
tessellation and geometry shaders which require a separate
instance for each vertex, but it can also be useful for vertex
shaders.
Finally, this extension allows the redeclaration of the
gl_PerVertex block in order to reduce the set of variables that must
be passed between shaders.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/OES/shader_io_blocks.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.shader_io_blocks import *
from OpenGL.raw.GLES2.OES.shader_io_blocks import _EXTENSION_NAME
def glInitShaderIoBlocksOES():
'''Return boolean indicating whether this extension is available'''
from OpenGL import extensions
return extensions.hasGLExtension( _EXTENSION_NAME )
### END AUTOGENERATED SECTION
|