-- 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 = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_OES_texture_cube_map" Set String
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 :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"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 :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetTexGenivOES")

{-# NOINLINE glGetTexGenivOESFunPtr #-}

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


glTexGenfOES :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glTexGenfOES :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"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 :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glTexGenfvOES")

{-# NOINLINE glTexGenfvOESFunPtr #-}

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


glTexGeniOES :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glTexGeniOES :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLenum -> GLenum -> GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"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 :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glTexGenivOES")

{-# NOINLINE glTexGenivOESFunPtr #-}

pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES  :: (Eq a, Num a) => a

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

pattern GL_NORMAL_MAP_OES  :: (Eq a, Num a) => a

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

pattern GL_REFLECTION_MAP_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_BINDING_CUBE_MAP_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_CUBE_MAP_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_GEN_MODE_OES  :: (Eq a, Num a) => a

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

pattern GL_TEXTURE_GEN_STR_OES  :: (Eq a, Num a) => a

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