-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.EXT.FramebufferObject (
  -- * Extension Support
    gl_EXT_framebuffer_object

  -- * GL_EXT_framebuffer_object
  , glBindFramebufferEXT
  , glBindRenderbufferEXT
  , glCheckFramebufferStatusEXT
  , glDeleteFramebuffersEXT
  , glDeleteRenderbuffersEXT
  , glFramebufferRenderbufferEXT
  , glFramebufferTexture1DEXT
  , glFramebufferTexture2DEXT
  , glFramebufferTexture3DEXT
  , glGenFramebuffersEXT
  , glGenRenderbuffersEXT
  , glGenerateMipmapEXT
  , glGetFramebufferAttachmentParameterivEXT
  , glGetRenderbufferParameterivEXT
  , glIsFramebufferEXT
  , glIsRenderbufferEXT
  , glRenderbufferStorageEXT
  , pattern GL_COLOR_ATTACHMENT0_EXT
  , pattern GL_COLOR_ATTACHMENT10_EXT
  , pattern GL_COLOR_ATTACHMENT11_EXT
  , pattern GL_COLOR_ATTACHMENT12_EXT
  , pattern GL_COLOR_ATTACHMENT13_EXT
  , pattern GL_COLOR_ATTACHMENT14_EXT
  , pattern GL_COLOR_ATTACHMENT15_EXT
  , pattern GL_COLOR_ATTACHMENT1_EXT
  , pattern GL_COLOR_ATTACHMENT2_EXT
  , pattern GL_COLOR_ATTACHMENT3_EXT
  , pattern GL_COLOR_ATTACHMENT4_EXT
  , pattern GL_COLOR_ATTACHMENT5_EXT
  , pattern GL_COLOR_ATTACHMENT6_EXT
  , pattern GL_COLOR_ATTACHMENT7_EXT
  , pattern GL_COLOR_ATTACHMENT8_EXT
  , pattern GL_COLOR_ATTACHMENT9_EXT
  , pattern GL_DEPTH_ATTACHMENT_EXT
  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
  , pattern GL_FRAMEBUFFER_BINDING_EXT
  , pattern GL_FRAMEBUFFER_COMPLETE_EXT
  , pattern GL_FRAMEBUFFER_EXT
  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
  , pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
  , pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT
  , pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT
  , pattern GL_MAX_COLOR_ATTACHMENTS_EXT
  , pattern GL_MAX_RENDERBUFFER_SIZE_EXT
  , pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT
  , pattern GL_RENDERBUFFER_BINDING_EXT
  , pattern GL_RENDERBUFFER_BLUE_SIZE_EXT
  , pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT
  , pattern GL_RENDERBUFFER_EXT
  , pattern GL_RENDERBUFFER_GREEN_SIZE_EXT
  , pattern GL_RENDERBUFFER_HEIGHT_EXT
  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT
  , pattern GL_RENDERBUFFER_RED_SIZE_EXT
  , pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT
  , pattern GL_RENDERBUFFER_WIDTH_EXT
  , pattern GL_STENCIL_ATTACHMENT_EXT
  , pattern GL_STENCIL_INDEX16_EXT
  , pattern GL_STENCIL_INDEX1_EXT
  , pattern GL_STENCIL_INDEX4_EXT
  , pattern GL_STENCIL_INDEX8_EXT
) where

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

-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_object.txt GL_EXT_framebuffer_object> extension is available.

gl_EXT_framebuffer_object :: Bool
gl_EXT_framebuffer_object :: Bool
gl_EXT_framebuffer_object = [Char] -> Set [Char] -> Bool
forall a. Ord a => a -> Set a -> Bool
member "GL_EXT_framebuffer_object" Set [Char]
extensions
{-# NOINLINE gl_EXT_framebuffer_object #-}

-- | Usage: @'glBindFramebufferEXT' target framebuffer@
--
-- The parameter @target@ is a @FramebufferTarget@.


glBindFramebufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
glBindFramebufferEXT :: GLenum -> GLenum -> m ()
glBindFramebufferEXT = FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
ffienumuintIOV FunPtr (GLenum -> GLenum -> IO ())
glBindFramebufferEXTFunPtr

glBindFramebufferEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glBindFramebufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glBindFramebufferEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glBindFramebufferEXT")

{-# NOINLINE glBindFramebufferEXTFunPtr #-}

-- | Usage: @'glBindRenderbufferEXT' target renderbuffer@
--
-- The parameter @target@ is a @RenderbufferTarget@.


glBindRenderbufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
glBindRenderbufferEXT :: GLenum -> GLenum -> m ()
glBindRenderbufferEXT = FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
ffienumuintIOV FunPtr (GLenum -> GLenum -> IO ())
glBindRenderbufferEXTFunPtr

glBindRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glBindRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glBindRenderbufferEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glBindRenderbufferEXT")

{-# NOINLINE glBindRenderbufferEXTFunPtr #-}

-- | Usage: @'glCheckFramebufferStatusEXT' target@
--
-- The parameter @target@ is a @FramebufferTarget@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glCheckFramebufferStatus'.


glCheckFramebufferStatusEXT :: MonadIO m => GLenum -> m GLenum
glCheckFramebufferStatusEXT :: GLenum -> m GLenum
glCheckFramebufferStatusEXT = FunPtr (GLenum -> IO GLenum) -> GLenum -> m GLenum
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO GLenum) -> GLenum -> m GLenum
ffienumIOenum FunPtr (GLenum -> IO GLenum)
glCheckFramebufferStatusEXTFunPtr

glCheckFramebufferStatusEXTFunPtr :: FunPtr (GLenum -> IO GLenum)
glCheckFramebufferStatusEXTFunPtr :: FunPtr (GLenum -> IO GLenum)
glCheckFramebufferStatusEXTFunPtr = IO (FunPtr (GLenum -> IO GLenum)) -> FunPtr (GLenum -> IO GLenum)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> IO GLenum))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCheckFramebufferStatusEXT")

{-# NOINLINE glCheckFramebufferStatusEXTFunPtr #-}

-- | Usage: @'glDeleteFramebuffersEXT' n framebuffers@
--
-- The length of @framebuffers@ should be @n@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteFramebuffers'.


glDeleteFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFramebuffersEXT :: GLsizei -> Ptr GLenum -> m ()
glDeleteFramebuffersEXT = FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLenum -> IO ())
glDeleteFramebuffersEXTFunPtr

glDeleteFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
glDeleteFramebuffersEXTFunPtr = IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
-> FunPtr (GLsizei -> Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDeleteFramebuffersEXT")

{-# NOINLINE glDeleteFramebuffersEXTFunPtr #-}

-- | Usage: @'glDeleteRenderbuffersEXT' n renderbuffers@
--
-- The length of @renderbuffers@ should be @n@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteRenderbuffers'.


glDeleteRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteRenderbuffersEXT :: GLsizei -> Ptr GLenum -> m ()
glDeleteRenderbuffersEXT = FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLenum -> IO ())
glDeleteRenderbuffersEXTFunPtr

glDeleteRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
glDeleteRenderbuffersEXTFunPtr = IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
-> FunPtr (GLsizei -> Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDeleteRenderbuffersEXT")

{-# NOINLINE glDeleteRenderbuffersEXTFunPtr #-}

-- | Usage: @'glFramebufferRenderbufferEXT' target attachment renderbuffertarget renderbuffer@
--
-- The parameter @target@ is a @FramebufferTarget@.
--
-- The parameter @attachment@ is a @FramebufferAttachment@.
--
-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferRenderbuffer'.


glFramebufferRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
glFramebufferRenderbufferEXT :: GLenum -> GLenum -> GLenum -> GLenum -> m ()
glFramebufferRenderbufferEXT = FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumenumenumuintIOV FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glFramebufferRenderbufferEXTFunPtr

glFramebufferRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
glFramebufferRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glFramebufferRenderbufferEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFramebufferRenderbufferEXT")

{-# NOINLINE glFramebufferRenderbufferEXTFunPtr #-}

-- | Usage: @'glFramebufferTexture1DEXT' target attachment textarget texture level@
--
-- The parameter @target@ is a @FramebufferTarget@.
--
-- The parameter @attachment@ is a @FramebufferAttachment@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture1D'.


glFramebufferTexture1DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTexture1DEXT :: GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> m ()
glFramebufferTexture1DEXT = FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> m ()
ffienumenumenumuintintIOV FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
glFramebufferTexture1DEXTFunPtr

glFramebufferTexture1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
glFramebufferTexture1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
glFramebufferTexture1DEXTFunPtr = IO
  (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFramebufferTexture1DEXT")

{-# NOINLINE glFramebufferTexture1DEXTFunPtr #-}

-- | Usage: @'glFramebufferTexture2DEXT' target attachment textarget texture level@
--
-- The parameter @target@ is a @FramebufferTarget@.
--
-- The parameter @attachment@ is a @FramebufferAttachment@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture2D'.


glFramebufferTexture2DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTexture2DEXT :: GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> m ()
glFramebufferTexture2DEXT = FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> m ()
ffienumenumenumuintintIOV FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
glFramebufferTexture2DEXTFunPtr

glFramebufferTexture2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
glFramebufferTexture2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
glFramebufferTexture2DEXTFunPtr = IO
  (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFramebufferTexture2DEXT")

{-# NOINLINE glFramebufferTexture2DEXTFunPtr #-}

-- | Usage: @'glFramebufferTexture3DEXT' target attachment textarget texture level zoffset@
--
-- The parameter @target@ is a @FramebufferTarget@.
--
-- The parameter @attachment@ is a @FramebufferAttachment@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture3D'.


glFramebufferTexture3DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glFramebufferTexture3DEXT :: GLenum -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
glFramebufferTexture3DEXT = FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> m ()
ffienumenumenumuintintintIOV FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
glFramebufferTexture3DEXTFunPtr

glFramebufferTexture3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
glFramebufferTexture3DEXTFunPtr :: FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
glFramebufferTexture3DEXTFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFramebufferTexture3DEXT")

{-# NOINLINE glFramebufferTexture3DEXTFunPtr #-}

-- | Usage: @'glGenFramebuffersEXT' n framebuffers@
--
-- The length of @framebuffers@ should be @n@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenFramebuffers'.


glGenFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFramebuffersEXT :: GLsizei -> Ptr GLenum -> m ()
glGenFramebuffersEXT = FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLenum -> IO ())
glGenFramebuffersEXTFunPtr

glGenFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
glGenFramebuffersEXTFunPtr = IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
-> FunPtr (GLsizei -> Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGenFramebuffersEXT")

{-# NOINLINE glGenFramebuffersEXTFunPtr #-}

-- | Usage: @'glGenRenderbuffersEXT' n renderbuffers@
--
-- The length of @renderbuffers@ should be @n@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenRenderbuffers'.


glGenRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenRenderbuffersEXT :: GLsizei -> Ptr GLenum -> m ()
glGenRenderbuffersEXT = FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLenum -> IO ())
glGenRenderbuffersEXTFunPtr

glGenRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
glGenRenderbuffersEXTFunPtr = IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
-> FunPtr (GLsizei -> Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> Ptr GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGenRenderbuffersEXT")

{-# NOINLINE glGenRenderbuffersEXTFunPtr #-}

-- | Usage: @'glGenerateMipmapEXT' target@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenerateMipmap'.


glGenerateMipmapEXT :: MonadIO m => GLenum -> m ()
glGenerateMipmapEXT :: GLenum -> m ()
glGenerateMipmapEXT = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glGenerateMipmapEXTFunPtr

glGenerateMipmapEXTFunPtr :: FunPtr (GLenum -> IO ())
glGenerateMipmapEXTFunPtr :: FunPtr (GLenum -> IO ())
glGenerateMipmapEXTFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGenerateMipmapEXT")

{-# NOINLINE glGenerateMipmapEXTFunPtr #-}

-- | Usage: @'glGetFramebufferAttachmentParameterivEXT' target attachment pname params@
--
-- The parameter @target@ is a @FramebufferTarget@.
--
-- The parameter @attachment@ is a @FramebufferAttachment@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFramebufferAttachmentParameteriv'.


glGetFramebufferAttachmentParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetFramebufferAttachmentParameterivEXT :: GLenum -> GLenum -> GLenum -> Ptr GLsizei -> m ()
glGetFramebufferAttachmentParameterivEXT = FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumenumPtrintIOV FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetFramebufferAttachmentParameterivEXTFunPtr

glGetFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetFramebufferAttachmentParameterivEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetFramebufferAttachmentParameterivEXT")

{-# NOINLINE glGetFramebufferAttachmentParameterivEXTFunPtr #-}

-- | Usage: @'glGetRenderbufferParameterivEXT' target pname params@
--
-- The parameter @target@ is a @RenderbufferTarget@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetRenderbufferParameteriv'.


glGetRenderbufferParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetRenderbufferParameterivEXT :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glGetRenderbufferParameterivEXT = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetRenderbufferParameterivEXTFunPtr

glGetRenderbufferParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetRenderbufferParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetRenderbufferParameterivEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetRenderbufferParameterivEXT")

{-# NOINLINE glGetRenderbufferParameterivEXTFunPtr #-}

-- | Usage: @'glIsFramebufferEXT' framebuffer@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsFramebuffer'.


glIsFramebufferEXT :: MonadIO m => GLuint -> m GLboolean
glIsFramebufferEXT :: GLenum -> m GLboolean
glIsFramebufferEXT = FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
ffiuintIOboolean FunPtr (GLenum -> IO GLboolean)
glIsFramebufferEXTFunPtr

glIsFramebufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsFramebufferEXTFunPtr :: FunPtr (GLenum -> IO GLboolean)
glIsFramebufferEXTFunPtr = IO (FunPtr (GLenum -> IO GLboolean))
-> FunPtr (GLenum -> IO GLboolean)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> IO GLboolean))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glIsFramebufferEXT")

{-# NOINLINE glIsFramebufferEXTFunPtr #-}

-- | Usage: @'glIsRenderbufferEXT' renderbuffer@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsRenderbuffer'.


glIsRenderbufferEXT :: MonadIO m => GLuint -> m GLboolean
glIsRenderbufferEXT :: GLenum -> m GLboolean
glIsRenderbufferEXT = FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
ffiuintIOboolean FunPtr (GLenum -> IO GLboolean)
glIsRenderbufferEXTFunPtr

glIsRenderbufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsRenderbufferEXTFunPtr :: FunPtr (GLenum -> IO GLboolean)
glIsRenderbufferEXTFunPtr = IO (FunPtr (GLenum -> IO GLboolean))
-> FunPtr (GLenum -> IO GLboolean)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> IO GLboolean))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glIsRenderbufferEXT")

{-# NOINLINE glIsRenderbufferEXTFunPtr #-}

-- | Usage: @'glRenderbufferStorageEXT' target internalformat width height@
--
-- The parameter @target@ is a @RenderbufferTarget@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorage'.


glRenderbufferStorageEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageEXT :: GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageEXT = FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
ffienumenumsizeisizeiIOV FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
glRenderbufferStorageEXTFunPtr

glRenderbufferStorageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
glRenderbufferStorageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
glRenderbufferStorageEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glRenderbufferStorageEXT")

{-# NOINLINE glRenderbufferStorageEXTFunPtr #-}

pattern $bGL_DEPTH_ATTACHMENT_EXT :: a
$mGL_DEPTH_ATTACHMENT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEPTH_ATTACHMENT_EXT = 0x8D00

pattern $bGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT :: a
$mGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1

pattern $bGL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT :: a
$mGL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0

pattern $bGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT :: a
$mGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4

pattern $bGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT :: a
$mGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3

pattern $bGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT :: a
$mGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2

pattern $bGL_FRAMEBUFFER_BINDING_EXT :: a
$mGL_FRAMEBUFFER_BINDING_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6

pattern $bGL_FRAMEBUFFER_COMPLETE_EXT :: a
$mGL_FRAMEBUFFER_COMPLETE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5

pattern $bGL_FRAMEBUFFER_EXT :: a
$mGL_FRAMEBUFFER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_EXT = 0x8D40

pattern $bGL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT :: a
$mGL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6

pattern $bGL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT :: a
$mGL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9

pattern $bGL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT :: a
$mGL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB

pattern $bGL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT :: a
$mGL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA

pattern $bGL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT :: a
$mGL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7

pattern $bGL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT :: a
$mGL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC

pattern $bGL_FRAMEBUFFER_UNSUPPORTED_EXT :: a
$mGL_FRAMEBUFFER_UNSUPPORTED_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD

pattern $bGL_INVALID_FRAMEBUFFER_OPERATION_EXT :: a
$mGL_INVALID_FRAMEBUFFER_OPERATION_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506

pattern $bGL_MAX_RENDERBUFFER_SIZE_EXT :: a
$mGL_MAX_RENDERBUFFER_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8

pattern $bGL_RENDERBUFFER_ALPHA_SIZE_EXT :: a
$mGL_RENDERBUFFER_ALPHA_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53

pattern $bGL_RENDERBUFFER_BINDING_EXT :: a
$mGL_RENDERBUFFER_BINDING_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_BINDING_EXT = 0x8CA7

pattern $bGL_RENDERBUFFER_BLUE_SIZE_EXT :: a
$mGL_RENDERBUFFER_BLUE_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52

pattern $bGL_RENDERBUFFER_DEPTH_SIZE_EXT :: a
$mGL_RENDERBUFFER_DEPTH_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54

pattern $bGL_RENDERBUFFER_EXT :: a
$mGL_RENDERBUFFER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_EXT = 0x8D41

pattern $bGL_RENDERBUFFER_GREEN_SIZE_EXT :: a
$mGL_RENDERBUFFER_GREEN_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51

pattern $bGL_RENDERBUFFER_HEIGHT_EXT :: a
$mGL_RENDERBUFFER_HEIGHT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43

pattern $bGL_RENDERBUFFER_INTERNAL_FORMAT_EXT :: a
$mGL_RENDERBUFFER_INTERNAL_FORMAT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44

pattern $bGL_RENDERBUFFER_RED_SIZE_EXT :: a
$mGL_RENDERBUFFER_RED_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50

pattern $bGL_RENDERBUFFER_STENCIL_SIZE_EXT :: a
$mGL_RENDERBUFFER_STENCIL_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55

pattern $bGL_RENDERBUFFER_WIDTH_EXT :: a
$mGL_RENDERBUFFER_WIDTH_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RENDERBUFFER_WIDTH_EXT = 0x8D42

pattern $bGL_STENCIL_ATTACHMENT_EXT :: a
$mGL_STENCIL_ATTACHMENT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STENCIL_ATTACHMENT_EXT = 0x8D20

pattern $bGL_STENCIL_INDEX16_EXT :: a
$mGL_STENCIL_INDEX16_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STENCIL_INDEX16_EXT = 0x8D49

pattern $bGL_STENCIL_INDEX1_EXT :: a
$mGL_STENCIL_INDEX1_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STENCIL_INDEX1_EXT = 0x8D46

pattern $bGL_STENCIL_INDEX4_EXT :: a
$mGL_STENCIL_INDEX4_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STENCIL_INDEX4_EXT = 0x8D47

pattern $bGL_STENCIL_INDEX8_EXT :: a
$mGL_STENCIL_INDEX8_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STENCIL_INDEX8_EXT = 0x8D48