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

  -- * GL_OES_byte_coordinates
  , glMultiTexCoord1bOES
  , glMultiTexCoord1bvOES
  , glMultiTexCoord2bOES
  , glMultiTexCoord2bvOES
  , glMultiTexCoord3bOES
  , glMultiTexCoord3bvOES
  , glMultiTexCoord4bOES
  , glMultiTexCoord4bvOES
  , glTexCoord1bOES
  , glTexCoord1bvOES
  , glTexCoord2bOES
  , glTexCoord2bvOES
  , glTexCoord3bOES
  , glTexCoord3bvOES
  , glTexCoord4bOES
  , glTexCoord4bvOES
  , glVertex2bOES
  , glVertex2bvOES
  , glVertex3bOES
  , glVertex3bvOES
  , glVertex4bOES
  , glVertex4bvOES
  , pattern GL_BYTE
) 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_byte_coordinates.txt GL_OES_byte_coordinates> extension is available.

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

-- | Usage: @'glMultiTexCoord1bOES' texture s@


glMultiTexCoord1bOES :: MonadIO m => GLenum -> GLbyte -> m ()
glMultiTexCoord1bOES :: GLenum -> GLbyte -> m ()
glMultiTexCoord1bOES = FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> m ()
ffienumbyteIOV FunPtr (GLenum -> GLbyte -> IO ())
glMultiTexCoord1bOESFunPtr

glMultiTexCoord1bOESFunPtr :: FunPtr (GLenum -> GLbyte -> IO ())
glMultiTexCoord1bOESFunPtr :: FunPtr (GLenum -> GLbyte -> IO ())
glMultiTexCoord1bOESFunPtr = IO (FunPtr (GLenum -> GLbyte -> IO ()))
-> FunPtr (GLenum -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1bOES")

{-# NOINLINE glMultiTexCoord1bOESFunPtr #-}

-- | Usage: @'glMultiTexCoord1bvOES' texture coords@
--
-- The length of @coords@ should be @1@.


glMultiTexCoord1bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord1bvOES :: GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord1bvOES = FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
ffienumPtrbyteIOV FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord1bvOESFunPtr

glMultiTexCoord1bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord1bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord1bvOESFunPtr = IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
-> FunPtr (GLenum -> Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1bvOES")

{-# NOINLINE glMultiTexCoord1bvOESFunPtr #-}

-- | Usage: @'glMultiTexCoord2bOES' texture s t@


glMultiTexCoord2bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> m ()
glMultiTexCoord2bOES :: GLenum -> GLbyte -> GLbyte -> m ()
glMultiTexCoord2bOES = FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
-> GLenum -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
-> GLenum -> GLbyte -> GLbyte -> m ()
ffienumbytebyteIOV FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord2bOESFunPtr

glMultiTexCoord2bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord2bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord2bOESFunPtr = IO (FunPtr (GLenum -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2bOES")

{-# NOINLINE glMultiTexCoord2bOESFunPtr #-}

-- | Usage: @'glMultiTexCoord2bvOES' texture coords@
--
-- The length of @coords@ should be @2@.


glMultiTexCoord2bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord2bvOES :: GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord2bvOES = FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
ffienumPtrbyteIOV FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord2bvOESFunPtr

glMultiTexCoord2bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord2bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord2bvOESFunPtr = IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
-> FunPtr (GLenum -> Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2bvOES")

{-# NOINLINE glMultiTexCoord2bvOESFunPtr #-}

-- | Usage: @'glMultiTexCoord3bOES' texture s t r@


glMultiTexCoord3bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord3bOES :: GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord3bOES = FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
ffienumbytebytebyteIOV FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord3bOESFunPtr

glMultiTexCoord3bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord3bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord3bOESFunPtr = IO (FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3bOES")

{-# NOINLINE glMultiTexCoord3bOESFunPtr #-}

-- | Usage: @'glMultiTexCoord3bvOES' texture coords@
--
-- The length of @coords@ should be @3@.


glMultiTexCoord3bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord3bvOES :: GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord3bvOES = FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
ffienumPtrbyteIOV FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord3bvOESFunPtr

glMultiTexCoord3bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord3bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord3bvOESFunPtr = IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
-> FunPtr (GLenum -> Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3bvOES")

{-# NOINLINE glMultiTexCoord3bvOESFunPtr #-}

-- | Usage: @'glMultiTexCoord4bOES' texture s t r q@


glMultiTexCoord4bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord4bOES :: GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord4bOES = FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
ffienumbytebytebytebyteIOV FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord4bOESFunPtr

glMultiTexCoord4bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord4bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glMultiTexCoord4bOESFunPtr = IO
  (FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4bOES")

{-# NOINLINE glMultiTexCoord4bOESFunPtr #-}

-- | Usage: @'glMultiTexCoord4bvOES' texture coords@
--
-- The length of @coords@ should be @4@.


glMultiTexCoord4bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord4bvOES :: GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord4bvOES = FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLbyte -> IO ())
-> GLenum -> Ptr GLbyte -> m ()
ffienumPtrbyteIOV FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord4bvOESFunPtr

glMultiTexCoord4bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord4bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
glMultiTexCoord4bvOESFunPtr = IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
-> FunPtr (GLenum -> Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4bvOES")

{-# NOINLINE glMultiTexCoord4bvOESFunPtr #-}

-- | Usage: @'glTexCoord1bOES' s@


glTexCoord1bOES :: MonadIO m => GLbyte -> m ()
glTexCoord1bOES :: GLbyte -> m ()
glTexCoord1bOES = FunPtr (GLbyte -> IO ()) -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> IO ()) -> GLbyte -> m ()
ffibyteIOV FunPtr (GLbyte -> IO ())
glTexCoord1bOESFunPtr

glTexCoord1bOESFunPtr :: FunPtr (GLbyte -> IO ())
glTexCoord1bOESFunPtr :: FunPtr (GLbyte -> IO ())
glTexCoord1bOESFunPtr = IO (FunPtr (GLbyte -> IO ())) -> FunPtr (GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord1bOES")

{-# NOINLINE glTexCoord1bOESFunPtr #-}

-- | Usage: @'glTexCoord1bvOES' coords@
--
-- The length of @coords@ should be @1@.


glTexCoord1bvOES :: MonadIO m => Ptr GLbyte -> m ()
glTexCoord1bvOES :: Ptr GLbyte -> m ()
glTexCoord1bvOES = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glTexCoord1bvOESFunPtr

glTexCoord1bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord1bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord1bvOESFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord1bvOES")

{-# NOINLINE glTexCoord1bvOESFunPtr #-}

-- | Usage: @'glTexCoord2bOES' s t@


glTexCoord2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
glTexCoord2bOES :: GLbyte -> GLbyte -> m ()
glTexCoord2bOES = FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> m ()
ffibytebyteIOV FunPtr (GLbyte -> GLbyte -> IO ())
glTexCoord2bOESFunPtr

glTexCoord2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
glTexCoord2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
glTexCoord2bOESFunPtr = IO (FunPtr (GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord2bOES")

{-# NOINLINE glTexCoord2bOESFunPtr #-}

-- | Usage: @'glTexCoord2bvOES' coords@
--
-- The length of @coords@ should be @2@.


glTexCoord2bvOES :: MonadIO m => Ptr GLbyte -> m ()
glTexCoord2bvOES :: Ptr GLbyte -> m ()
glTexCoord2bvOES = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glTexCoord2bvOESFunPtr

glTexCoord2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord2bvOESFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord2bvOES")

{-# NOINLINE glTexCoord2bvOESFunPtr #-}

-- | Usage: @'glTexCoord3bOES' s t r@


glTexCoord3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord3bOES :: GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord3bOES = FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glTexCoord3bOESFunPtr

glTexCoord3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glTexCoord3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glTexCoord3bOESFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord3bOES")

{-# NOINLINE glTexCoord3bOESFunPtr #-}

-- | Usage: @'glTexCoord3bvOES' coords@
--
-- The length of @coords@ should be @3@.


glTexCoord3bvOES :: MonadIO m => Ptr GLbyte -> m ()
glTexCoord3bvOES :: Ptr GLbyte -> m ()
glTexCoord3bvOES = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glTexCoord3bvOESFunPtr

glTexCoord3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord3bvOESFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord3bvOES")

{-# NOINLINE glTexCoord3bvOESFunPtr #-}

-- | Usage: @'glTexCoord4bOES' s t r q@


glTexCoord4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord4bOES :: GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord4bOES = FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glTexCoord4bOESFunPtr

glTexCoord4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glTexCoord4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glTexCoord4bOESFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord4bOES")

{-# NOINLINE glTexCoord4bOESFunPtr #-}

-- | Usage: @'glTexCoord4bvOES' coords@
--
-- The length of @coords@ should be @4@.


glTexCoord4bvOES :: MonadIO m => Ptr GLbyte -> m ()
glTexCoord4bvOES :: Ptr GLbyte -> m ()
glTexCoord4bvOES = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glTexCoord4bvOESFunPtr

glTexCoord4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glTexCoord4bvOESFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord4bvOES")

{-# NOINLINE glTexCoord4bvOESFunPtr #-}

-- | Usage: @'glVertex2bOES' x y@


glVertex2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
glVertex2bOES :: GLbyte -> GLbyte -> m ()
glVertex2bOES = FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> m ()
ffibytebyteIOV FunPtr (GLbyte -> GLbyte -> IO ())
glVertex2bOESFunPtr

glVertex2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
glVertex2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
glVertex2bOESFunPtr = IO (FunPtr (GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex2bOES")

{-# NOINLINE glVertex2bOESFunPtr #-}

-- | Usage: @'glVertex2bvOES' coords@
--
-- The length of @coords@ should be @2@.


glVertex2bvOES :: MonadIO m => Ptr GLbyte -> m ()
glVertex2bvOES :: Ptr GLbyte -> m ()
glVertex2bvOES = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glVertex2bvOESFunPtr

glVertex2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glVertex2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glVertex2bvOESFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex2bvOES")

{-# NOINLINE glVertex2bvOESFunPtr #-}

-- | Usage: @'glVertex3bOES' x y z@


glVertex3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glVertex3bOES :: GLbyte -> GLbyte -> GLbyte -> m ()
glVertex3bOES = FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glVertex3bOESFunPtr

glVertex3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glVertex3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glVertex3bOESFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex3bOES")

{-# NOINLINE glVertex3bOESFunPtr #-}

-- | Usage: @'glVertex3bvOES' coords@
--
-- The length of @coords@ should be @3@.


glVertex3bvOES :: MonadIO m => Ptr GLbyte -> m ()
glVertex3bvOES :: Ptr GLbyte -> m ()
glVertex3bvOES = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glVertex3bvOESFunPtr

glVertex3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glVertex3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glVertex3bvOESFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex3bvOES")

{-# NOINLINE glVertex3bvOESFunPtr #-}

-- | Usage: @'glVertex4bOES' x y z w@


glVertex4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glVertex4bOES :: GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glVertex4bOES = FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glVertex4bOESFunPtr

glVertex4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glVertex4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glVertex4bOESFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex4bOES")

{-# NOINLINE glVertex4bOESFunPtr #-}

-- | Usage: @'glVertex4bvOES' coords@
--
-- The length of @coords@ should be @4@.


glVertex4bvOES :: MonadIO m => Ptr GLbyte -> m ()
glVertex4bvOES :: Ptr GLbyte -> m ()
glVertex4bvOES = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glVertex4bvOESFunPtr

glVertex4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glVertex4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glVertex4bvOESFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex4bvOES")

{-# NOINLINE glVertex4bvOESFunPtr #-}