-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.OES.TextureCubeMap (
  -- * Extension Support
    gl_OES_texture_cube_map

  -- * GL_OES_texture_cube_map
  , glGetTexGenfvOES
  , glGetTexGenivOES
  , glGetTexGenxvOES
  , glTexGenfOES
  , glTexGenfvOES
  , glTexGeniOES
  , glTexGenivOES
  , glTexGenxOES
  , glTexGenxvOES
  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES
  , pattern GL_NORMAL_MAP_OES
  , pattern GL_REFLECTION_MAP_OES
  , pattern GL_TEXTURE_BINDING_CUBE_MAP_OES
  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES
  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES
  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES
  , pattern GL_TEXTURE_CUBE_MAP_OES
  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES
  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES
  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES
  , pattern GL_TEXTURE_GEN_MODE_OES
  , pattern GL_TEXTURE_GEN_STR_OES
) 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://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map.txt GL_OES_texture_cube_map> extension is available.

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

-- | Usage: @'glGetTexGenfvOES' coord pname params@
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexGenfvOES :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexGenfvOES = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexGenfvOESFunPtr

glGetTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexGenfvOESFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetTexGenfvOES")

{-# NOINLINE glGetTexGenfvOESFunPtr #-}

-- | Usage: @'glGetTexGenivOES' coord pname params@
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexGenivOES :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexGenivOES = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetTexGenivOESFunPtr

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

{-# NOINLINE glGetTexGenivOESFunPtr #-}

-- | Usage: @'glTexGenfOES' coord pname param@


glTexGenfOES :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glTexGenfOES :: GLenum -> GLenum -> GLfloat -> m ()
glTexGenfOES = FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumfloatIOV FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glTexGenfOESFunPtr

glTexGenfOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glTexGenfOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glTexGenfOESFunPtr = IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexGenfOES")

{-# NOINLINE glTexGenfOESFunPtr #-}

-- | Usage: @'glTexGenfvOES' coord pname params@
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glTexGenfvOES :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glTexGenfvOES = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glTexGenfvOESFunPtr

glTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glTexGenfvOESFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexGenfvOES")

{-# NOINLINE glTexGenfvOESFunPtr #-}

-- | Usage: @'glTexGeniOES' coord pname param@


glTexGeniOES :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glTexGeniOES :: GLenum -> GLenum -> GLint -> m ()
glTexGeniOES = FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
ffienumenumintIOV FunPtr (GLenum -> GLenum -> GLint -> IO ())
glTexGeniOESFunPtr

glTexGeniOESFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glTexGeniOESFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glTexGeniOESFunPtr = IO (FunPtr (GLenum -> GLenum -> GLint -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexGeniOES")

{-# NOINLINE glTexGeniOESFunPtr #-}

-- | Usage: @'glTexGenivOES' coord pname params@
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexGenivOES :: GLenum -> GLenum -> Ptr GLint -> m ()
glTexGenivOES = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glTexGenivOESFunPtr

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

{-# NOINLINE glTexGenivOESFunPtr #-}

pattern $bGL_MAX_CUBE_MAP_TEXTURE_SIZE_OES :: a
$mGL_MAX_CUBE_MAP_TEXTURE_SIZE_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C

pattern $bGL_NORMAL_MAP_OES :: a
$mGL_NORMAL_MAP_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_NORMAL_MAP_OES = 0x8511

pattern $bGL_REFLECTION_MAP_OES :: a
$mGL_REFLECTION_MAP_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REFLECTION_MAP_OES = 0x8512

pattern $bGL_TEXTURE_BINDING_CUBE_MAP_OES :: a
$mGL_TEXTURE_BINDING_CUBE_MAP_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514

pattern $bGL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES :: a
$mGL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516

pattern $bGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES :: a
$mGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518

pattern $bGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES :: a
$mGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A

pattern $bGL_TEXTURE_CUBE_MAP_OES :: a
$mGL_TEXTURE_CUBE_MAP_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_CUBE_MAP_OES = 0x8513

pattern $bGL_TEXTURE_CUBE_MAP_POSITIVE_X_OES :: a
$mGL_TEXTURE_CUBE_MAP_POSITIVE_X_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515

pattern $bGL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES :: a
$mGL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517

pattern $bGL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES :: a
$mGL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519

pattern $bGL_TEXTURE_GEN_MODE_OES :: a
$mGL_TEXTURE_GEN_MODE_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_GEN_MODE_OES = 0x2500

pattern $bGL_TEXTURE_GEN_STR_OES :: a
$mGL_TEXTURE_GEN_STR_OES :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_GEN_STR_OES = 0x8D60