'''OpenGL extension ARB.framebuffer_object

The official definition of this extension is available here:
	http://oss.sgi.com/projects/ogl-sample/registry/ARB/framebuffer_object.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_ARB_framebuffer_object'
GL_INVALID_FRAMEBUFFER_OPERATION = constant.Constant( 'GL_INVALID_FRAMEBUFFER_OPERATION', 0x506 )
GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING', 0x8210 )
GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE', 0x8211 )
GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE', 0x8212 )
GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE', 0x8213 )
GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE', 0x8214 )
GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE', 0x8215 )
GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE', 0x8216 )
GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE', 0x8217 )
GL_FRAMEBUFFER_DEFAULT = constant.Constant( 'GL_FRAMEBUFFER_DEFAULT', 0x8218 )
GL_FRAMEBUFFER_UNDEFINED = constant.Constant( 'GL_FRAMEBUFFER_UNDEFINED', 0x8219 )
GL_DEPTH_STENCIL_ATTACHMENT = constant.Constant( 'GL_DEPTH_STENCIL_ATTACHMENT', 0x821A )
GL_INDEX = constant.Constant( 'GL_INDEX', 0x8222 )
GL_MAX_RENDERBUFFER_SIZE = constant.Constant( 'GL_MAX_RENDERBUFFER_SIZE', 0x84E8 )
GL_DEPTH_STENCIL = constant.Constant( 'GL_DEPTH_STENCIL', 0x84F9 )
GL_UNSIGNED_INT_24_8 = constant.Constant( 'GL_UNSIGNED_INT_24_8', 0x84FA )
GL_DEPTH24_STENCIL8 = constant.Constant( 'GL_DEPTH24_STENCIL8', 0x88F0 )
GL_TEXTURE_STENCIL_SIZE = constant.Constant( 'GL_TEXTURE_STENCIL_SIZE', 0x88F1 )
GL_FRAMEBUFFER_BINDING = constant.Constant( 'GL_FRAMEBUFFER_BINDING', 0x8CA6 )
GL_RENDERBUFFER_BINDING = constant.Constant( 'GL_RENDERBUFFER_BINDING', 0x8CA7 )
GL_READ_FRAMEBUFFER = constant.Constant( 'GL_READ_FRAMEBUFFER', 0x8CA8 )
GL_DRAW_FRAMEBUFFER = constant.Constant( 'GL_DRAW_FRAMEBUFFER', 0x8CA9 )
GL_READ_FRAMEBUFFER_BINDING = constant.Constant( 'GL_READ_FRAMEBUFFER_BINDING', 0x8CAA )
GL_RENDERBUFFER_SAMPLES = constant.Constant( 'GL_RENDERBUFFER_SAMPLES', 0x8CAB )
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE', 0x8CD0 )
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME', 0x8CD1 )
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL', 0x8CD2 )
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE', 0x8CD3 )
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = constant.Constant( 'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER', 0x8CD4 )
GL_FRAMEBUFFER_COMPLETE = constant.Constant( 'GL_FRAMEBUFFER_COMPLETE', 0x8CD5 )
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = constant.Constant( 'GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT', 0x8CD6 )
GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = constant.Constant( 'GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT', 0x8CD7 )
GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = constant.Constant( 'GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER', 0x8CDB )
GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = constant.Constant( 'GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER', 0x8CDC )
GL_FRAMEBUFFER_UNSUPPORTED = constant.Constant( 'GL_FRAMEBUFFER_UNSUPPORTED', 0x8CDD )
GL_MAX_COLOR_ATTACHMENTS = constant.Constant( 'GL_MAX_COLOR_ATTACHMENTS', 0x8CDF )
GL_COLOR_ATTACHMENT0 = constant.Constant( 'GL_COLOR_ATTACHMENT0', 0x8CE0 )
GL_COLOR_ATTACHMENT1 = constant.Constant( 'GL_COLOR_ATTACHMENT1', 0x8CE1 )
GL_COLOR_ATTACHMENT2 = constant.Constant( 'GL_COLOR_ATTACHMENT2', 0x8CE2 )
GL_COLOR_ATTACHMENT3 = constant.Constant( 'GL_COLOR_ATTACHMENT3', 0x8CE3 )
GL_COLOR_ATTACHMENT4 = constant.Constant( 'GL_COLOR_ATTACHMENT4', 0x8CE4 )
GL_COLOR_ATTACHMENT5 = constant.Constant( 'GL_COLOR_ATTACHMENT5', 0x8CE5 )
GL_COLOR_ATTACHMENT6 = constant.Constant( 'GL_COLOR_ATTACHMENT6', 0x8CE6 )
GL_COLOR_ATTACHMENT7 = constant.Constant( 'GL_COLOR_ATTACHMENT7', 0x8CE7 )
GL_COLOR_ATTACHMENT8 = constant.Constant( 'GL_COLOR_ATTACHMENT8', 0x8CE8 )
GL_COLOR_ATTACHMENT9 = constant.Constant( 'GL_COLOR_ATTACHMENT9', 0x8CE9 )
GL_COLOR_ATTACHMENT10 = constant.Constant( 'GL_COLOR_ATTACHMENT10', 0x8CEA )
GL_COLOR_ATTACHMENT11 = constant.Constant( 'GL_COLOR_ATTACHMENT11', 0x8CEB )
GL_COLOR_ATTACHMENT12 = constant.Constant( 'GL_COLOR_ATTACHMENT12', 0x8CEC )
GL_COLOR_ATTACHMENT13 = constant.Constant( 'GL_COLOR_ATTACHMENT13', 0x8CED )
GL_COLOR_ATTACHMENT14 = constant.Constant( 'GL_COLOR_ATTACHMENT14', 0x8CEE )
GL_COLOR_ATTACHMENT15 = constant.Constant( 'GL_COLOR_ATTACHMENT15', 0x8CEF )
GL_DEPTH_ATTACHMENT = constant.Constant( 'GL_DEPTH_ATTACHMENT', 0x8D00 )
GL_STENCIL_ATTACHMENT = constant.Constant( 'GL_STENCIL_ATTACHMENT', 0x8D20 )
GL_FRAMEBUFFER = constant.Constant( 'GL_FRAMEBUFFER', 0x8D40 )
GL_RENDERBUFFER = constant.Constant( 'GL_RENDERBUFFER', 0x8D41 )
GL_RENDERBUFFER_WIDTH = constant.Constant( 'GL_RENDERBUFFER_WIDTH', 0x8D42 )
GL_RENDERBUFFER_HEIGHT = constant.Constant( 'GL_RENDERBUFFER_HEIGHT', 0x8D43 )
GL_RENDERBUFFER_INTERNAL_FORMAT = constant.Constant( 'GL_RENDERBUFFER_INTERNAL_FORMAT', 0x8D44 )
GL_STENCIL_INDEX1 = constant.Constant( 'GL_STENCIL_INDEX1', 0x8D46 )
GL_STENCIL_INDEX4 = constant.Constant( 'GL_STENCIL_INDEX4', 0x8D47 )
GL_STENCIL_INDEX8 = constant.Constant( 'GL_STENCIL_INDEX8', 0x8D48 )
GL_STENCIL_INDEX16 = constant.Constant( 'GL_STENCIL_INDEX16', 0x8D49 )
GL_RENDERBUFFER_RED_SIZE = constant.Constant( 'GL_RENDERBUFFER_RED_SIZE', 0x8D50 )
GL_RENDERBUFFER_GREEN_SIZE = constant.Constant( 'GL_RENDERBUFFER_GREEN_SIZE', 0x8D51 )
GL_RENDERBUFFER_BLUE_SIZE = constant.Constant( 'GL_RENDERBUFFER_BLUE_SIZE', 0x8D52 )
GL_RENDERBUFFER_ALPHA_SIZE = constant.Constant( 'GL_RENDERBUFFER_ALPHA_SIZE', 0x8D53 )
GL_RENDERBUFFER_DEPTH_SIZE = constant.Constant( 'GL_RENDERBUFFER_DEPTH_SIZE', 0x8D54 )
GL_RENDERBUFFER_STENCIL_SIZE = constant.Constant( 'GL_RENDERBUFFER_STENCIL_SIZE', 0x8D55 )
GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = constant.Constant( 'GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE', 0x8D56 )
GL_MAX_SAMPLES = constant.Constant( 'GL_MAX_SAMPLES', 0x8D57 )
glIsRenderbuffer = platform.createExtensionFunction( 
	'glIsRenderbuffer', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=constants.GLboolean, 
	argTypes=(constants.GLuint,),
	doc = 'glIsRenderbuffer( GLuint(renderbuffer) ) -> constants.GLboolean',
	argNames = ('renderbuffer',),
)

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

glDeleteRenderbuffers = platform.createExtensionFunction( 
	'glDeleteRenderbuffers', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLsizei, arrays.GLuintArray,),
	doc = 'glDeleteRenderbuffers( GLsizei(n), GLuintArray(renderbuffers) ) -> None',
	argNames = ('n', 'renderbuffers',),
)

glGenRenderbuffers = platform.createExtensionFunction( 
	'glGenRenderbuffers', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLsizei, arrays.GLuintArray,),
	doc = 'glGenRenderbuffers( GLsizei(n), GLuintArray(renderbuffers) ) -> None',
	argNames = ('n', 'renderbuffers',),
)

glRenderbufferStorage = platform.createExtensionFunction( 
	'glRenderbufferStorage', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLsizei, constants.GLsizei,),
	doc = 'glRenderbufferStorage( GLenum(target), GLenum(internalformat), GLsizei(width), GLsizei(height) ) -> None',
	argNames = ('target', 'internalformat', 'width', 'height',),
)

glGetRenderbufferParameteriv = platform.createExtensionFunction( 
	'glGetRenderbufferParameteriv', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, arrays.GLintArray,),
	doc = 'glGetRenderbufferParameteriv( GLenum(target), GLenum(pname), GLintArray(params) ) -> None',
	argNames = ('target', 'pname', 'params',),
)

glIsFramebuffer = platform.createExtensionFunction( 
	'glIsFramebuffer', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=constants.GLboolean, 
	argTypes=(constants.GLuint,),
	doc = 'glIsFramebuffer( GLuint(framebuffer) ) -> constants.GLboolean',
	argNames = ('framebuffer',),
)

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

glDeleteFramebuffers = platform.createExtensionFunction( 
	'glDeleteFramebuffers', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLsizei, arrays.GLuintArray,),
	doc = 'glDeleteFramebuffers( GLsizei(n), GLuintArray(framebuffers) ) -> None',
	argNames = ('n', 'framebuffers',),
)

glGenFramebuffers = platform.createExtensionFunction( 
	'glGenFramebuffers', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLsizei, arrays.GLuintArray,),
	doc = 'glGenFramebuffers( GLsizei(n), GLuintArray(framebuffers) ) -> None',
	argNames = ('n', 'framebuffers',),
)

glCheckFramebufferStatus = platform.createExtensionFunction( 
	'glCheckFramebufferStatus', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=constants.GLenum, 
	argTypes=(constants.GLenum,),
	doc = 'glCheckFramebufferStatus( GLenum(target) ) -> constants.GLenum',
	argNames = ('target',),
)

glFramebufferTexture1D = platform.createExtensionFunction( 
	'glFramebufferTexture1D', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLenum, constants.GLuint, constants.GLint,),
	doc = 'glFramebufferTexture1D( GLenum(target), GLenum(attachment), GLenum(textarget), GLuint(texture), GLint(level) ) -> None',
	argNames = ('target', 'attachment', 'textarget', 'texture', 'level',),
)

glFramebufferTexture2D = platform.createExtensionFunction( 
	'glFramebufferTexture2D', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLenum, constants.GLuint, constants.GLint,),
	doc = 'glFramebufferTexture2D( GLenum(target), GLenum(attachment), GLenum(textarget), GLuint(texture), GLint(level) ) -> None',
	argNames = ('target', 'attachment', 'textarget', 'texture', 'level',),
)

glFramebufferTexture3D = platform.createExtensionFunction( 
	'glFramebufferTexture3D', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLenum, constants.GLuint, constants.GLint, constants.GLint,),
	doc = 'glFramebufferTexture3D( GLenum(target), GLenum(attachment), GLenum(textarget), GLuint(texture), GLint(level), GLint(zoffset) ) -> None',
	argNames = ('target', 'attachment', 'textarget', 'texture', 'level', 'zoffset',),
)

glFramebufferRenderbuffer = platform.createExtensionFunction( 
	'glFramebufferRenderbuffer', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLenum, constants.GLuint,),
	doc = 'glFramebufferRenderbuffer( GLenum(target), GLenum(attachment), GLenum(renderbuffertarget), GLuint(renderbuffer) ) -> None',
	argNames = ('target', 'attachment', 'renderbuffertarget', 'renderbuffer',),
)

glGetFramebufferAttachmentParameteriv = platform.createExtensionFunction( 
	'glGetFramebufferAttachmentParameteriv', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLenum, arrays.GLintArray,),
	doc = 'glGetFramebufferAttachmentParameteriv( GLenum(target), GLenum(attachment), GLenum(pname), GLintArray(params) ) -> None',
	argNames = ('target', 'attachment', 'pname', 'params',),
)

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

glBlitFramebuffer = platform.createExtensionFunction( 
	'glBlitFramebuffer', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLint, constants.GLint, constants.GLint, constants.GLint, constants.GLint, constants.GLint, constants.GLint, constants.GLint, constants.GLbitfield, constants.GLenum,),
	doc = 'glBlitFramebuffer( GLint(srcX0), GLint(srcY0), GLint(srcX1), GLint(srcY1), GLint(dstX0), GLint(dstY0), GLint(dstX1), GLint(dstY1), GLbitfield(mask), GLenum(filter) ) -> None',
	argNames = ('srcX0', 'srcY0', 'srcX1', 'srcY1', 'dstX0', 'dstY0', 'dstX1', 'dstY1', 'mask', 'filter',),
)

glRenderbufferStorageMultisample = platform.createExtensionFunction( 
	'glRenderbufferStorageMultisample', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLsizei, constants.GLenum, constants.GLsizei, constants.GLsizei,),
	doc = 'glRenderbufferStorageMultisample( GLenum(target), GLsizei(samples), GLenum(internalformat), GLsizei(width), GLsizei(height) ) -> None',
	argNames = ('target', 'samples', 'internalformat', 'width', 'height',),
)

glFramebufferTextureLayer = platform.createExtensionFunction( 
	'glFramebufferTextureLayer', dll=platform.GL,
	extension=EXTENSION_NAME,
	resultType=None, 
	argTypes=(constants.GLenum, constants.GLenum, constants.GLuint, constants.GLint, constants.GLint,),
	doc = 'glFramebufferTextureLayer( GLenum(target), GLenum(attachment), GLuint(texture), GLint(level), GLint(layer) ) -> None',
	argNames = ('target', 'attachment', 'texture', 'level', 'layer',),
)


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