-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.ATI.DrawBuffers (
  -- * Extension Support
    gl_ATI_draw_buffers

  -- * GL_ATI_draw_buffers
  , glDrawBuffersATI
  , pattern GL_DRAW_BUFFER0_ATI
  , pattern GL_DRAW_BUFFER10_ATI
  , pattern GL_DRAW_BUFFER11_ATI
  , pattern GL_DRAW_BUFFER12_ATI
  , pattern GL_DRAW_BUFFER13_ATI
  , pattern GL_DRAW_BUFFER14_ATI
  , pattern GL_DRAW_BUFFER15_ATI
  , pattern GL_DRAW_BUFFER1_ATI
  , pattern GL_DRAW_BUFFER2_ATI
  , pattern GL_DRAW_BUFFER3_ATI
  , pattern GL_DRAW_BUFFER4_ATI
  , pattern GL_DRAW_BUFFER5_ATI
  , pattern GL_DRAW_BUFFER6_ATI
  , pattern GL_DRAW_BUFFER7_ATI
  , pattern GL_DRAW_BUFFER8_ATI
  , pattern GL_DRAW_BUFFER9_ATI
  , pattern GL_MAX_DRAW_BUFFERS_ATI
) 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.Types
import System.IO.Unsafe

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

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

-- | Usage: @'glDrawBuffersATI' n bufs@
--
-- The parameter @bufs@ is a @DrawBufferModeATI@.
--
-- The length of @bufs@ should be @n@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawBuffers'.


glDrawBuffersATI :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
glDrawBuffersATI :: GLsizei -> Ptr GLenum -> m ()
glDrawBuffersATI = FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLenum -> IO ())
-> GLsizei -> Ptr GLenum -> m ()
ffisizeiPtrenumIOV FunPtr (GLsizei -> Ptr GLenum -> IO ())
glDrawBuffersATIFunPtr

glDrawBuffersATIFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
glDrawBuffersATIFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
glDrawBuffersATIFunPtr = 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 "glDrawBuffersATI")

{-# NOINLINE glDrawBuffersATIFunPtr #-}

pattern $bGL_DRAW_BUFFER0_ATI :: a
$mGL_DRAW_BUFFER0_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER0_ATI = 0x8825

pattern $bGL_DRAW_BUFFER10_ATI :: a
$mGL_DRAW_BUFFER10_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER10_ATI = 0x882F

pattern $bGL_DRAW_BUFFER11_ATI :: a
$mGL_DRAW_BUFFER11_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER11_ATI = 0x8830

pattern $bGL_DRAW_BUFFER12_ATI :: a
$mGL_DRAW_BUFFER12_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER12_ATI = 0x8831

pattern $bGL_DRAW_BUFFER13_ATI :: a
$mGL_DRAW_BUFFER13_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER13_ATI = 0x8832

pattern $bGL_DRAW_BUFFER14_ATI :: a
$mGL_DRAW_BUFFER14_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER14_ATI = 0x8833

pattern $bGL_DRAW_BUFFER15_ATI :: a
$mGL_DRAW_BUFFER15_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER15_ATI = 0x8834

pattern $bGL_DRAW_BUFFER1_ATI :: a
$mGL_DRAW_BUFFER1_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER1_ATI = 0x8826

pattern $bGL_DRAW_BUFFER2_ATI :: a
$mGL_DRAW_BUFFER2_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER2_ATI = 0x8827

pattern $bGL_DRAW_BUFFER3_ATI :: a
$mGL_DRAW_BUFFER3_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER3_ATI = 0x8828

pattern $bGL_DRAW_BUFFER4_ATI :: a
$mGL_DRAW_BUFFER4_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER4_ATI = 0x8829

pattern $bGL_DRAW_BUFFER5_ATI :: a
$mGL_DRAW_BUFFER5_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER5_ATI = 0x882A

pattern $bGL_DRAW_BUFFER6_ATI :: a
$mGL_DRAW_BUFFER6_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER6_ATI = 0x882B

pattern $bGL_DRAW_BUFFER7_ATI :: a
$mGL_DRAW_BUFFER7_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER7_ATI = 0x882C

pattern $bGL_DRAW_BUFFER8_ATI :: a
$mGL_DRAW_BUFFER8_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER8_ATI = 0x882D

pattern $bGL_DRAW_BUFFER9_ATI :: a
$mGL_DRAW_BUFFER9_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DRAW_BUFFER9_ATI = 0x882E

pattern $bGL_MAX_DRAW_BUFFERS_ATI :: a
$mGL_MAX_DRAW_BUFFERS_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_DRAW_BUFFERS_ATI = 0x8824