'''OpenGL extension ARB.depth_clamp

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

Overview (from the spec)
	
	Conventional OpenGL clips geometric primitives to a clip volume
	with six faces, two of which are the near and far clip planes.
	Clipping to the near and far planes of the clip volume ensures that
	interpolated depth values (after the depth range transform) must be
	in the [0,1] range.
	
	In some rendering applications such as shadow volumes, it is useful
	to allow line and polygon primitives to be rasterized without
	clipping the primitive to the near or far clip volume planes (side
	clip volume planes clip normally).  Without the near and far clip
	planes, rasterization (pixel coverage determination) in X and Y
	can proceed normally if we ignore the near and far clip planes.
	The one major issue is that fragments of a  primitive may extend
	beyond the conventional window space depth range for depth values
	(typically the range [0,1]).  Rather than discarding fragments that
	defy the window space depth range (effectively what near and far
	plane clipping accomplish), the depth values can be clamped to the
	current depth range.
	
	This extension provides exactly such functionality.  This
	functionality is useful to obviate the need for near plane capping
	of stenciled shadow volumes.  The functionality may also be useful
	for rendering geometry "beyond" the far plane if an alternative
	algorithm (rather than depth testing) for hidden surface removal is
	applied to such geometry (specifically, the painter's algorithm).
	Similar situations at the near clip plane can be avoided at the
	near clip plane where apparently solid objects can be "seen through"
	if they intersect the near clip plane.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/depth_clamp.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.ARB.depth_clamp import *
from OpenGL.raw.GL.ARB.depth_clamp import _EXTENSION_NAME

def glInitDepthClampARB():
    '''Return boolean indicating whether this extension is available'''
    from OpenGL import extensions
    return extensions.hasGLExtension( _EXTENSION_NAME )


### END AUTOGENERATED SECTION