'''OpenGL extension NV.transform_feedback

The official definition of this extension is available here:
	http://oss.sgi.com/projects/ogl-sample/registry/NV/transform_feedback.txt

Automatically generated by the get_gl_extensions script, do not edit!
'''
from OpenGL import platform, constants, constant, arrays
from OpenGL import extensions
from OpenGL.GL import glget
import ctypes
EXTENSION_NAME = 'GL_NV_transform_feedback'
GL_BACK_PRIMARY_COLOR_NV = constant.Constant( 'GL_BACK_PRIMARY_COLOR_NV', 0x8C77 )
GL_BACK_SECONDARY_COLOR_NV = constant.Constant( 'GL_BACK_SECONDARY_COLOR_NV', 0x8C78 )
GL_TEXTURE_COORD_NV = constant.Constant( 'GL_TEXTURE_COORD_NV', 0x8C79 )
GL_CLIP_DISTANCE_NV = constant.Constant( 'GL_CLIP_DISTANCE_NV', 0x8C7A )
GL_VERTEX_ID_NV = constant.Constant( 'GL_VERTEX_ID_NV', 0x8C7B )
GL_PRIMITIVE_ID_NV = constant.Constant( 'GL_PRIMITIVE_ID_NV', 0x8C7C )
GL_GENERIC_ATTRIB_NV = constant.Constant( 'GL_GENERIC_ATTRIB_NV', 0x8C7D )
GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_ATTRIBS_NV', 0x8C7E )
GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV', 0x8C7F )
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = constant.Constant( 'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV', 0x8C80 )
GL_ACTIVE_VARYINGS_NV = constant.Constant( 'GL_ACTIVE_VARYINGS_NV', 0x8C81 )
GL_ACTIVE_VARYING_MAX_LENGTH_NV = constant.Constant( 'GL_ACTIVE_VARYING_MAX_LENGTH_NV', 0x8C82 )
GL_TRANSFORM_FEEDBACK_VARYINGS_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_VARYINGS_NV', 0x8C83 )
GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_BUFFER_START_NV', 0x8C84 )
GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV', 0x8C85 )
GL_TRANSFORM_FEEDBACK_RECORD_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_RECORD_NV', 0x8C86 )
GL_PRIMITIVES_GENERATED_NV = constant.Constant( 'GL_PRIMITIVES_GENERATED_NV', 0x8C87 )
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV', 0x8C88 )
GL_RASTERIZER_DISCARD_NV = constant.Constant( 'GL_RASTERIZER_DISCARD_NV', 0x8C89 )
GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV = constant.Constant( 'GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV', 0x8C8A )
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = constant.Constant( 'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV', 0x8C8B )
GL_INTERLEAVED_ATTRIBS_NV = constant.Constant( 'GL_INTERLEAVED_ATTRIBS_NV', 0x8C8C )
GL_SEPARATE_ATTRIBS_NV = constant.Constant( 'GL_SEPARATE_ATTRIBS_NV', 0x8C8D )
GL_TRANSFORM_FEEDBACK_BUFFER_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_BUFFER_NV', 0x8C8E )
GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = constant.Constant( 'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV', 0x8C8F )
glBeginTransformFeedbackNV = platform.createExtensionFunction( 
	'glBeginTransformFeedbackNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum,),
	doc = 'glBeginTransformFeedbackNV( GLenum(primitiveMode) ) -> None',
	argNames = ('primitiveMode',),
)

glEndTransformFeedbackNV = platform.createExtensionFunction( 
	'glEndTransformFeedbackNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(),
	doc = 'glEndTransformFeedbackNV(  ) -> None',
	argNames = (),
)

glTransformFeedbackAttribsNV = platform.createExtensionFunction( 
	'glTransformFeedbackAttribsNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, arrays.GLintArray, constants.GLenum,),
	doc = 'glTransformFeedbackAttribsNV( GLuint(count), GLintArray(attribs), GLenum(bufferMode) ) -> None',
	argNames = ('count', 'attribs', 'bufferMode',),
)

glBindBufferRangeNV = platform.createExtensionFunction( 
	'glBindBufferRangeNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLintptr, constants.GLsizeiptr,),
	doc = 'glBindBufferRangeNV( GLenum(target), GLuint(index), GLuint(buffer), GLintptr(offset), GLsizeiptr(size) ) -> None',
	argNames = ('target', 'index', 'buffer', 'offset', 'size',),
)

glBindBufferOffsetNV = platform.createExtensionFunction( 
	'glBindBufferOffsetNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint, constants.GLintptr,),
	doc = 'glBindBufferOffsetNV( GLenum(target), GLuint(index), GLuint(buffer), GLintptr(offset) ) -> None',
	argNames = ('target', 'index', 'buffer', 'offset',),
)

glBindBufferBaseNV = platform.createExtensionFunction( 
	'glBindBufferBaseNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLuint, constants.GLuint,),
	doc = 'glBindBufferBaseNV( GLenum(target), GLuint(index), GLuint(buffer) ) -> None',
	argNames = ('target', 'index', 'buffer',),
)

glTransformFeedbackVaryingsNV = platform.createExtensionFunction( 
	'glTransformFeedbackVaryingsNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, constants.GLsizei, arrays.GLintArray, constants.GLenum,),
	doc = 'glTransformFeedbackVaryingsNV( GLuint(program), GLsizei(count), GLintArray(locations), GLenum(bufferMode) ) -> None',
	argNames = ('program', 'count', 'locations', 'bufferMode',),
)

glActiveVaryingNV = platform.createExtensionFunction( 
	'glActiveVaryingNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, arrays.GLcharArray,),
	doc = 'glActiveVaryingNV( GLuint(program), GLcharArray(name) ) -> None',
	argNames = ('program', 'name',),
)

glGetVaryingLocationNV = platform.createExtensionFunction( 
	'glGetVaryingLocationNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=constants.GLint, 
	argTypes=(constants.GLuint, arrays.GLcharArray,),
	doc = 'glGetVaryingLocationNV( GLuint(program), GLcharArray(name) ) -> constants.GLint',
	argNames = ('program', 'name',),
)

glGetActiveVaryingNV = platform.createExtensionFunction( 
	'glGetActiveVaryingNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, constants.GLuint, constants.GLsizei, arrays.GLsizeiArray, arrays.GLsizeiArray, arrays.GLuintArray, arrays.GLcharArray,),
	doc = 'glGetActiveVaryingNV( GLuint(program), GLuint(index), GLsizei(bufSize), GLsizeiArray(length), GLsizeiArray(size), GLuintArray(type), GLcharArray(name) ) -> None',
	argNames = ('program', 'index', 'bufSize', 'length', 'size', 'type', 'name',),
)

glGetTransformFeedbackVaryingNV = platform.createExtensionFunction( 
	'glGetTransformFeedbackVaryingNV', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLuint, constants.GLuint, arrays.GLintArray,),
	doc = 'glGetTransformFeedbackVaryingNV( GLuint(program), GLuint(index), GLintArray(location) ) -> None',
	argNames = ('program', 'index', 'location',),
)


def glInitTransformFeedbackNV():
	'''Return boolean indicating whether this extension is available'''
	return extensions.hasGLExtension( EXTENSION_NAME )
