-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.OES.FramebufferObject (
  -- * Extension Support
    gl_OES_framebuffer_object

  -- * GL_OES_framebuffer_object
  , glBindFramebufferOES
  , glBindRenderbufferOES
  , glCheckFramebufferStatusOES
  , glDeleteFramebuffersOES
  , glDeleteRenderbuffersOES
  , glFramebufferRenderbufferOES
  , glFramebufferTexture2DOES
  , glGenFramebuffersOES
  , glGenRenderbuffersOES
  , glGenerateMipmapOES
  , glGetFramebufferAttachmentParameterivOES
  , glGetRenderbufferParameterivOES
  , glIsFramebufferOES
  , glIsRenderbufferOES
  , glRenderbufferStorageOES
  , pattern GL_COLOR_ATTACHMENT0_OES
  , pattern GL_DEPTH_ATTACHMENT_OES
  , pattern GL_DEPTH_COMPONENT16_OES
  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES
  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES
  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES
  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES
  , pattern GL_FRAMEBUFFER_BINDING_OES
  , pattern GL_FRAMEBUFFER_COMPLETE_OES
  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES
  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES
  , pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES
  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES
  , pattern GL_FRAMEBUFFER_OES
  , pattern GL_FRAMEBUFFER_UNSUPPORTED_OES
  , pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES
  , pattern GL_MAX_RENDERBUFFER_SIZE_OES
  , pattern GL_NONE_OES
  , pattern GL_RENDERBUFFER_ALPHA_SIZE_OES
  , pattern GL_RENDERBUFFER_BINDING_OES
  , pattern GL_RENDERBUFFER_BLUE_SIZE_OES
  , pattern GL_RENDERBUFFER_DEPTH_SIZE_OES
  , pattern GL_RENDERBUFFER_GREEN_SIZE_OES
  , pattern GL_RENDERBUFFER_HEIGHT_OES
  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES
  , pattern GL_RENDERBUFFER_OES
  , pattern GL_RENDERBUFFER_RED_SIZE_OES
  , pattern GL_RENDERBUFFER_STENCIL_SIZE_OES
  , pattern GL_RENDERBUFFER_WIDTH_OES
  , pattern GL_RGB565_OES
  , pattern GL_RGB5_A1_OES
  , pattern GL_RGBA4_OES
  , pattern GL_STENCIL_ATTACHMENT_OES
) where

import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Raw.Internal.FFI
import Graphics.GL.Raw.Internal.Proc
import Graphics.GL.Raw.Internal.Shared
import Graphics.GL.Raw.Types
import System.IO.Unsafe

gl_OES_framebuffer_object :: Bool
gl_OES_framebuffer_object = member "GL_OES_framebuffer_object" extensions

glBindFramebufferOES :: MonadIO m => GLenum -> GLuint -> m ()
glBindFramebufferOES = ffienumuintIOV glBindFramebufferOESFunPtr

glBindFramebufferOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glBindFramebufferOESFunPtr = unsafePerformIO (getProcAddress "glBindFramebufferOES")

{-# NOINLINE glBindFramebufferOESFunPtr #-}

glBindRenderbufferOES :: MonadIO m => GLenum -> GLuint -> m ()
glBindRenderbufferOES = ffienumuintIOV glBindRenderbufferOESFunPtr

glBindRenderbufferOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glBindRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glBindRenderbufferOES")

{-# NOINLINE glBindRenderbufferOESFunPtr #-}

glCheckFramebufferStatusOES :: MonadIO m => GLenum -> m GLenum
glCheckFramebufferStatusOES = ffienumIOenum glCheckFramebufferStatusOESFunPtr

glCheckFramebufferStatusOESFunPtr :: FunPtr (GLenum -> IO GLenum)
glCheckFramebufferStatusOESFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatusOES")

{-# NOINLINE glCheckFramebufferStatusOESFunPtr #-}

glDeleteFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFramebuffersOES = ffisizeiPtruintIOV glDeleteFramebuffersOESFunPtr

glDeleteFramebuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteFramebuffersOESFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffersOES")

{-# NOINLINE glDeleteFramebuffersOESFunPtr #-}

glDeleteRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteRenderbuffersOES = ffisizeiPtruintIOV glDeleteRenderbuffersOESFunPtr

glDeleteRenderbuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteRenderbuffersOESFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffersOES")

{-# NOINLINE glDeleteRenderbuffersOESFunPtr #-}

glFramebufferRenderbufferOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
glFramebufferRenderbufferOES = ffienumenumenumuintIOV glFramebufferRenderbufferOESFunPtr

glFramebufferRenderbufferOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
glFramebufferRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbufferOES")

{-# NOINLINE glFramebufferRenderbufferOESFunPtr #-}

glFramebufferTexture2DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTexture2DOES = ffienumenumenumuintintIOV glFramebufferTexture2DOESFunPtr

glFramebufferTexture2DOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
glFramebufferTexture2DOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DOES")

{-# NOINLINE glFramebufferTexture2DOESFunPtr #-}

glGenFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFramebuffersOES = ffisizeiPtruintIOV glGenFramebuffersOESFunPtr

glGenFramebuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenFramebuffersOESFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffersOES")

{-# NOINLINE glGenFramebuffersOESFunPtr #-}

glGenRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenRenderbuffersOES = ffisizeiPtruintIOV glGenRenderbuffersOESFunPtr

glGenRenderbuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenRenderbuffersOESFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffersOES")

{-# NOINLINE glGenRenderbuffersOESFunPtr #-}

glGenerateMipmapOES :: MonadIO m => GLenum -> m ()
glGenerateMipmapOES = ffienumIOV glGenerateMipmapOESFunPtr

glGenerateMipmapOESFunPtr :: FunPtr (GLenum -> IO ())
glGenerateMipmapOESFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmapOES")

{-# NOINLINE glGenerateMipmapOESFunPtr #-}

glGetFramebufferAttachmentParameterivOES :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetFramebufferAttachmentParameterivOES = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivOESFunPtr

glGetFramebufferAttachmentParameterivOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFramebufferAttachmentParameterivOESFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameterivOES")

{-# NOINLINE glGetFramebufferAttachmentParameterivOESFunPtr #-}

glGetRenderbufferParameterivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetRenderbufferParameterivOES = ffienumenumPtrintIOV glGetRenderbufferParameterivOESFunPtr

glGetRenderbufferParameterivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetRenderbufferParameterivOESFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameterivOES")

{-# NOINLINE glGetRenderbufferParameterivOESFunPtr #-}

glIsFramebufferOES :: MonadIO m => GLuint -> m GLboolean
glIsFramebufferOES = ffiuintIOboolean glIsFramebufferOESFunPtr

glIsFramebufferOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsFramebufferOESFunPtr = unsafePerformIO (getProcAddress "glIsFramebufferOES")

{-# NOINLINE glIsFramebufferOESFunPtr #-}

glIsRenderbufferOES :: MonadIO m => GLuint -> m GLboolean
glIsRenderbufferOES = ffiuintIOboolean glIsRenderbufferOESFunPtr

glIsRenderbufferOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glIsRenderbufferOES")

{-# NOINLINE glIsRenderbufferOESFunPtr #-}

glRenderbufferStorageOES :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageOES = ffienumenumsizeisizeiIOV glRenderbufferStorageOESFunPtr

glRenderbufferStorageOESFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
glRenderbufferStorageOESFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageOES")

{-# NOINLINE glRenderbufferStorageOESFunPtr #-}

pattern GL_COLOR_ATTACHMENT0_OES = 0x8CE0 :: GLenum

pattern GL_DEPTH_ATTACHMENT_OES = 0x8D00 :: GLenum

pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1 :: GLenum

pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0 :: GLenum

pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3 :: GLenum

pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2 :: GLenum

pattern GL_FRAMEBUFFER_BINDING_OES = 0x8CA6 :: GLenum

pattern GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5 :: GLenum

pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6 :: GLenum

pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9 :: GLenum

pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA :: GLenum

pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7 :: GLenum

pattern GL_FRAMEBUFFER_OES = 0x8D40 :: GLenum

pattern GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD :: GLenum

pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506 :: GLenum

pattern GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8 :: GLenum

pattern GL_NONE_OES = 0 :: GLenum

pattern GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53 :: GLenum

pattern GL_RENDERBUFFER_BINDING_OES = 0x8CA7 :: GLenum

pattern GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52 :: GLenum

pattern GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54 :: GLenum

pattern GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51 :: GLenum

pattern GL_RENDERBUFFER_HEIGHT_OES = 0x8D43 :: GLenum

pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44 :: GLenum

pattern GL_RENDERBUFFER_OES = 0x8D41 :: GLenum

pattern GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50 :: GLenum

pattern GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55 :: GLenum

pattern GL_RENDERBUFFER_WIDTH_OES = 0x8D42 :: GLenum

pattern GL_STENCIL_ATTACHMENT_OES = 0x8D20 :: GLenum