-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.EXT.PalettedTexture (
  -- * Extension Support
    gl_EXT_paletted_texture

  -- * GL_EXT_paletted_texture
  , glColorTableEXT
  , glGetColorTableEXT
  , glGetColorTableParameterfvEXT
  , glGetColorTableParameterivEXT
  , pattern GL_COLOR_INDEX12_EXT
  , pattern GL_COLOR_INDEX16_EXT
  , pattern GL_COLOR_INDEX1_EXT
  , pattern GL_COLOR_INDEX2_EXT
  , pattern GL_COLOR_INDEX4_EXT
  , pattern GL_COLOR_INDEX8_EXT
  , pattern GL_TEXTURE_INDEX_SIZE_EXT
) 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.Types
import System.IO.Unsafe

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

gl_EXT_paletted_texture :: Bool
gl_EXT_paletted_texture = member "GL_EXT_paletted_texture" extensions
{-# NOINLINE gl_EXT_paletted_texture #-}

-- | Usage: @'glColorTableEXT' target internalFormat width format type table@
--
-- The parameter @target@ is a @ColorTableTarget@.
--
-- The parameter @internalFormat@ is a @PixelInternalFormat@.
--
-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
--
-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
--
-- The length of @table@ should be @COMPSIZE(format,type,width)@.
--
-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glColorTable'.


glColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glColorTableEXT = ffienumenumsizeienumenumPtrVIOV glColorTableEXTFunPtr

glColorTableEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
glColorTableEXTFunPtr = unsafePerformIO (getProcAddress "glColorTableEXT")

{-# NOINLINE glColorTableEXTFunPtr #-}

-- | Usage: @'glGetColorTableEXT' target format type data@
--
-- The parameter @target@ is a @ColorTableTarget@.
--
-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
--
-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
--
-- The length of @data@ should be @COMPSIZE(target,format,type)@.
--
-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glGetColorTable'.


glGetColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
glGetColorTableEXT = ffienumenumenumPtrVIOV glGetColorTableEXTFunPtr

glGetColorTableEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
glGetColorTableEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableEXT")

{-# NOINLINE glGetColorTableEXTFunPtr #-}

-- | Usage: @'glGetColorTableParameterfvEXT' target pname params@
--
-- The parameter @target@ is a @ColorTableTarget@.
--
-- The parameter @pname@ is a @GetColorTableParameterPName@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.
--
-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glGetColorTableParameterfv'.


glGetColorTableParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetColorTableParameterfvEXT = ffienumenumPtrfloatIOV glGetColorTableParameterfvEXTFunPtr

glGetColorTableParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetColorTableParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfvEXT")

{-# NOINLINE glGetColorTableParameterfvEXTFunPtr #-}

-- | Usage: @'glGetColorTableParameterivEXT' target pname params@
--
-- The parameter @target@ is a @ColorTableTarget@.
--
-- The parameter @pname@ is a @GetColorTableParameterPName@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.
--
-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glGetColorTableParameteriv'.


glGetColorTableParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetColorTableParameterivEXT = ffienumenumPtrintIOV glGetColorTableParameterivEXTFunPtr

glGetColorTableParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetColorTableParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterivEXT")

{-# NOINLINE glGetColorTableParameterivEXTFunPtr #-}

pattern GL_COLOR_INDEX12_EXT = 0x80E6

pattern GL_COLOR_INDEX16_EXT = 0x80E7

pattern GL_COLOR_INDEX1_EXT = 0x80E2

pattern GL_COLOR_INDEX2_EXT = 0x80E3

pattern GL_COLOR_INDEX4_EXT = 0x80E4

pattern GL_COLOR_INDEX8_EXT = 0x80E5

pattern GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED