'''OpenGL extension ARB.clear_buffer_object

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

Overview (from the spec)
	
	Buffer objects are fundamental to the operation of OpenGL. Buffers are used
	as a source of data for vertices and indices, read through buffer textures
	in shaders, used to transfer texture and image data into and out of
	textures and framebuffers, and may be written to by operations such as
	transform feedback. OpenGL contains mechanisms to copy sections of buffers
	from one to another, but it has no mechanism to initialize the content
	of a buffer to a known value. In effect, it has memcpy, but not memset.
	
	This extension adds such a mechanism and has several use cases. Examples
	include clearing a pixel unpack buffer before transferring data to
	a texture or resetting buffer data to a known value before sparse updates
	through shader image stores or transform feedback.

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

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

# INPUT glClearBufferData.data size not checked against 'format,type'
glClearBufferData=wrapper.wrapper(glClearBufferData).setInputArraySize(
    'data', None
)
# INPUT glClearBufferSubData.data size not checked against 'format,type'
glClearBufferSubData=wrapper.wrapper(glClearBufferSubData).setInputArraySize(
    'data', None
)
### END AUTOGENERATED SECTION