'''OpenGL extension AMD.vertex_shader_tessellator

This module customises the behaviour of the 
OpenGL.raw.GL.AMD.vertex_shader_tessellator to provide a more 
Python-friendly API

Overview (from the spec)
	
	The vertex shader tessellator gives new flexibility to the shader
	author to shade at a tessellated vertex, rather than just at a
	provided vertex.
	
	In unextended vertex shading, the built-in attributes such as
	gl_Vertex, gl_Normal, and gl_MultiTexcoord0, together with the
	user defined attributes, are system provided values which are
	initialized prior to vertex shader invocation.
	
	With vertex shading tessellation, additional vertex shader special 
	values are available:
	
	    ivec3 gl_VertexTriangleIndex; // indices of the three control
	                                  // points for the vertex
	    vec3 gl_BarycentricCoord;     // barycentric coordinates
	                                  // of the vertex
	
	i o
	  |\\
	  | \\
	  *--*
	  |\\ |\\
	  | \\| \\
	  *--*--*
	  |\\ |\\ |\\
	  | \\| \\| \\
	j o--*--*--o k
	
	Figure 1  A Tessellated Triangle
	o = control point (and tessellated vertex)
	* = tessellated vertex
	
	    ivec4 gl_VertexQuadIndex;   // indices for the four control
	                                // points for the vertex
	    vec2 gl_UVCoord;            // UV coordinates of the vertex
	
	i o--*--*--o k
	  |\\ |\\ |\\ | 
	  | \\| \\| \\|
	  *--*--*--*
	  |\\ |\\ |\\ | 
	  | \\| \\| \\|
	  *--*--*--*
	  |\\ |\\ |\\ | 
	  | \\| \\| \\|
	j o--*--*--o l
	
	Figure 2  A Tessellated Quad
	o = control point (and tessellated vertex)
	* = tessellated vertex
	
	When this extension is enabled, conventional built-in attributes
	and user defined attributes are uninitialized.  The shader writer
	is responsible for explicitly fetching all other vertex data either
	from textures, uniform buffers, or vertex buffers.
	
	The shader writer is further responsible for interpolating 
	the vertex data at the given barycentric coordinates or uv
	coordinates of the vertex.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
'''

from OpenGL import platform, constant, arrays
from OpenGL import extensions, wrapper
import ctypes
from OpenGL.raw.GL import _types, _glgets
from OpenGL.raw.GL.AMD.vertex_shader_tessellator import *
from OpenGL.raw.GL.AMD.vertex_shader_tessellator import _EXTENSION_NAME


def glInitVertexShaderTessellatorAMD():
    '''Return boolean indicating whether this extension is available'''
    from OpenGL import extensions

    return extensions.hasGLExtension(_EXTENSION_NAME)


### END AUTOGENERATED SECTION
