-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.NV.HalfFloat (
  -- * Extension Support
    gl_NV_half_float

  -- * GL_NV_half_float
  , glColor3hNV
  , glColor3hvNV
  , glColor4hNV
  , glColor4hvNV
  , glFogCoordhNV
  , glFogCoordhvNV
  , glMultiTexCoord1hNV
  , glMultiTexCoord1hvNV
  , glMultiTexCoord2hNV
  , glMultiTexCoord2hvNV
  , glMultiTexCoord3hNV
  , glMultiTexCoord3hvNV
  , glMultiTexCoord4hNV
  , glMultiTexCoord4hvNV
  , glNormal3hNV
  , glNormal3hvNV
  , glSecondaryColor3hNV
  , glSecondaryColor3hvNV
  , glTexCoord1hNV
  , glTexCoord1hvNV
  , glTexCoord2hNV
  , glTexCoord2hvNV
  , glTexCoord3hNV
  , glTexCoord3hvNV
  , glTexCoord4hNV
  , glTexCoord4hvNV
  , glVertex2hNV
  , glVertex2hvNV
  , glVertex3hNV
  , glVertex3hvNV
  , glVertex4hNV
  , glVertex4hvNV
  , glVertexAttrib1hNV
  , glVertexAttrib1hvNV
  , glVertexAttrib2hNV
  , glVertexAttrib2hvNV
  , glVertexAttrib3hNV
  , glVertexAttrib3hvNV
  , glVertexAttrib4hNV
  , glVertexAttrib4hvNV
  , glVertexAttribs1hvNV
  , glVertexAttribs2hvNV
  , glVertexAttribs3hvNV
  , glVertexAttribs4hvNV
  , glVertexWeighthNV
  , glVertexWeighthvNV
  , pattern GL_HALF_FLOAT_NV
) 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/NV/half_float.txt GL_NV_half_float> extension is available.

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

-- | Usage: @'glColor3hNV' red green blue@
--
-- The parameter @red@ is a @Half16NV@.
--
-- The parameter @green@ is a @Half16NV@.
--
-- The parameter @blue@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glColor3hvNV'.


glColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor3hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor3hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glColor3hNVFunPtr

glColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glColor3hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glColor3hNV")

{-# NOINLINE glColor3hNVFunPtr #-}

-- | Usage: @'glColor3hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @3@.


glColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glColor3hvNV :: Ptr GLhalfNV -> m ()
glColor3hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glColor3hvNVFunPtr

glColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glColor3hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glColor3hvNV")

{-# NOINLINE glColor3hvNVFunPtr #-}

-- | Usage: @'glColor4hNV' red green blue alpha@
--
-- The parameter @red@ is a @Half16NV@.
--
-- The parameter @green@ is a @Half16NV@.
--
-- The parameter @blue@ is a @Half16NV@.
--
-- The parameter @alpha@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glColor4hvNV'.


glColor4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor4hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor4hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glColor4hNVFunPtr

glColor4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glColor4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glColor4hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glColor4hNV")

{-# NOINLINE glColor4hNVFunPtr #-}

-- | Usage: @'glColor4hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @4@.


glColor4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glColor4hvNV :: Ptr GLhalfNV -> m ()
glColor4hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glColor4hvNVFunPtr

glColor4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glColor4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glColor4hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glColor4hvNV")

{-# NOINLINE glColor4hvNVFunPtr #-}

-- | Usage: @'glFogCoordhNV' fog@
--
-- The parameter @fog@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glFogCoordhvNV'.


glFogCoordhNV :: MonadIO m => GLhalfNV -> m ()
glFogCoordhNV :: GLhalfNV -> m ()
glFogCoordhNV = FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
ffihalfNVIOV FunPtr (GLhalfNV -> IO ())
glFogCoordhNVFunPtr

glFogCoordhNVFunPtr :: FunPtr (GLhalfNV -> IO ())
glFogCoordhNVFunPtr :: FunPtr (GLhalfNV -> IO ())
glFogCoordhNVFunPtr = IO (FunPtr (GLhalfNV -> IO ())) -> FunPtr (GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFogCoordhNV")

{-# NOINLINE glFogCoordhNVFunPtr #-}

-- | Usage: @'glFogCoordhvNV' fog@
--
-- The parameter @fog@ is a @Half16NV@.
--
-- The length of @fog@ should be @1@.


glFogCoordhvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glFogCoordhvNV :: Ptr GLhalfNV -> m ()
glFogCoordhvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glFogCoordhvNVFunPtr

glFogCoordhvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glFogCoordhvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glFogCoordhvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFogCoordhvNV")

{-# NOINLINE glFogCoordhvNVFunPtr #-}

-- | Usage: @'glMultiTexCoord1hNV' target s@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord1hvNV'.


glMultiTexCoord1hNV :: MonadIO m => GLenum -> GLhalfNV -> m ()
glMultiTexCoord1hNV :: GLenum -> GLhalfNV -> m ()
glMultiTexCoord1hNV = FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> m ()
ffienumhalfNVIOV FunPtr (GLenum -> GLhalfNV -> IO ())
glMultiTexCoord1hNVFunPtr

glMultiTexCoord1hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> IO ())
glMultiTexCoord1hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> IO ())
glMultiTexCoord1hNVFunPtr = IO (FunPtr (GLenum -> GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1hNV")

{-# NOINLINE glMultiTexCoord1hNVFunPtr #-}

-- | Usage: @'glMultiTexCoord1hvNV' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @1@.


glMultiTexCoord1hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord1hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord1hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffienumPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord1hvNVFunPtr

glMultiTexCoord1hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord1hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord1hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1hvNV")

{-# NOINLINE glMultiTexCoord1hvNVFunPtr #-}

-- | Usage: @'glMultiTexCoord2hNV' target s t@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @Half16NV@.
--
-- The parameter @t@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord2hvNV'.


glMultiTexCoord2hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord2hNV :: GLenum -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord2hNV = FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> m ()
ffienumhalfNVhalfNVIOV FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord2hNVFunPtr

glMultiTexCoord2hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord2hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord2hNVFunPtr = IO (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2hNV")

{-# NOINLINE glMultiTexCoord2hNVFunPtr #-}

-- | Usage: @'glMultiTexCoord2hvNV' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @2@.


glMultiTexCoord2hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord2hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord2hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffienumPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord2hvNVFunPtr

glMultiTexCoord2hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord2hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord2hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2hvNV")

{-# NOINLINE glMultiTexCoord2hvNVFunPtr #-}

-- | Usage: @'glMultiTexCoord3hNV' target s t r@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @Half16NV@.
--
-- The parameter @t@ is a @Half16NV@.
--
-- The parameter @r@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord3hvNV'.


glMultiTexCoord3hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord3hNV :: GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord3hNV = FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffienumhalfNVhalfNVhalfNVIOV FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord3hNVFunPtr

glMultiTexCoord3hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord3hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord3hNVFunPtr = IO (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3hNV")

{-# NOINLINE glMultiTexCoord3hNVFunPtr #-}

-- | Usage: @'glMultiTexCoord3hvNV' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @3@.


glMultiTexCoord3hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord3hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord3hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffienumPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord3hvNVFunPtr

glMultiTexCoord3hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord3hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord3hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3hvNV")

{-# NOINLINE glMultiTexCoord3hvNVFunPtr #-}

-- | Usage: @'glMultiTexCoord4hNV' target s t r q@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @Half16NV@.
--
-- The parameter @t@ is a @Half16NV@.
--
-- The parameter @r@ is a @Half16NV@.
--
-- The parameter @q@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord4hvNV'.


glMultiTexCoord4hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord4hNV :: GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord4hNV = FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffienumhalfNVhalfNVhalfNVhalfNVIOV FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord4hNVFunPtr

glMultiTexCoord4hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord4hNVFunPtr :: FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glMultiTexCoord4hNVFunPtr = IO
  (FunPtr
     (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr
     (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4hNV")

{-# NOINLINE glMultiTexCoord4hNVFunPtr #-}

-- | Usage: @'glMultiTexCoord4hvNV' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @4@.


glMultiTexCoord4hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord4hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glMultiTexCoord4hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffienumPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord4hvNVFunPtr

glMultiTexCoord4hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord4hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glMultiTexCoord4hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4hvNV")

{-# NOINLINE glMultiTexCoord4hvNVFunPtr #-}

-- | Usage: @'glNormal3hNV' nx ny nz@
--
-- The parameter @nx@ is a @Half16NV@.
--
-- The parameter @ny@ is a @Half16NV@.
--
-- The parameter @nz@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glNormal3hvNV'.


glNormal3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glNormal3hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glNormal3hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glNormal3hNVFunPtr

glNormal3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glNormal3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glNormal3hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glNormal3hNV")

{-# NOINLINE glNormal3hNVFunPtr #-}

-- | Usage: @'glNormal3hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @3@.


glNormal3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glNormal3hvNV :: Ptr GLhalfNV -> m ()
glNormal3hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glNormal3hvNVFunPtr

glNormal3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glNormal3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glNormal3hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glNormal3hvNV")

{-# NOINLINE glNormal3hvNVFunPtr #-}

-- | Usage: @'glSecondaryColor3hNV' red green blue@
--
-- The parameter @red@ is a @Half16NV@.
--
-- The parameter @green@ is a @Half16NV@.
--
-- The parameter @blue@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glSecondaryColor3hvNV'.


glSecondaryColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glSecondaryColor3hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glSecondaryColor3hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glSecondaryColor3hNVFunPtr

glSecondaryColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glSecondaryColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glSecondaryColor3hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3hNV")

{-# NOINLINE glSecondaryColor3hNVFunPtr #-}

-- | Usage: @'glSecondaryColor3hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @3@.


glSecondaryColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glSecondaryColor3hvNV :: Ptr GLhalfNV -> m ()
glSecondaryColor3hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glSecondaryColor3hvNVFunPtr

glSecondaryColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glSecondaryColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glSecondaryColor3hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3hvNV")

{-# NOINLINE glSecondaryColor3hvNVFunPtr #-}

-- | Usage: @'glTexCoord1hNV' s@
--
-- The parameter @s@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord1hvNV'.


glTexCoord1hNV :: MonadIO m => GLhalfNV -> m ()
glTexCoord1hNV :: GLhalfNV -> m ()
glTexCoord1hNV = FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
ffihalfNVIOV FunPtr (GLhalfNV -> IO ())
glTexCoord1hNVFunPtr

glTexCoord1hNVFunPtr :: FunPtr (GLhalfNV -> IO ())
glTexCoord1hNVFunPtr :: FunPtr (GLhalfNV -> IO ())
glTexCoord1hNVFunPtr = IO (FunPtr (GLhalfNV -> IO ())) -> FunPtr (GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord1hNV")

{-# NOINLINE glTexCoord1hNVFunPtr #-}

-- | Usage: @'glTexCoord1hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @1@.


glTexCoord1hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glTexCoord1hvNV :: Ptr GLhalfNV -> m ()
glTexCoord1hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord1hvNVFunPtr

glTexCoord1hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord1hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord1hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord1hvNV")

{-# NOINLINE glTexCoord1hvNVFunPtr #-}

-- | Usage: @'glTexCoord2hNV' s t@
--
-- The parameter @s@ is a @Half16NV@.
--
-- The parameter @t@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord2hvNV'.


glTexCoord2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
glTexCoord2hNV :: GLhalfNV -> GLhalfNV -> m ()
glTexCoord2hNV = FunPtr (GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> IO ())
glTexCoord2hNVFunPtr

glTexCoord2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
glTexCoord2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
glTexCoord2hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord2hNV")

{-# NOINLINE glTexCoord2hNVFunPtr #-}

-- | Usage: @'glTexCoord2hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @2@.


glTexCoord2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glTexCoord2hvNV :: Ptr GLhalfNV -> m ()
glTexCoord2hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord2hvNVFunPtr

glTexCoord2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord2hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord2hvNV")

{-# NOINLINE glTexCoord2hvNVFunPtr #-}

-- | Usage: @'glTexCoord3hNV' s t r@
--
-- The parameter @s@ is a @Half16NV@.
--
-- The parameter @t@ is a @Half16NV@.
--
-- The parameter @r@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord3hvNV'.


glTexCoord3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord3hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord3hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glTexCoord3hNVFunPtr

glTexCoord3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glTexCoord3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glTexCoord3hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord3hNV")

{-# NOINLINE glTexCoord3hNVFunPtr #-}

-- | Usage: @'glTexCoord3hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @3@.


glTexCoord3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glTexCoord3hvNV :: Ptr GLhalfNV -> m ()
glTexCoord3hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord3hvNVFunPtr

glTexCoord3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord3hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord3hvNV")

{-# NOINLINE glTexCoord3hvNVFunPtr #-}

-- | Usage: @'glTexCoord4hNV' s t r q@
--
-- The parameter @s@ is a @Half16NV@.
--
-- The parameter @t@ is a @Half16NV@.
--
-- The parameter @r@ is a @Half16NV@.
--
-- The parameter @q@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord4hvNV'.


glTexCoord4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord4hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord4hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glTexCoord4hNVFunPtr

glTexCoord4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glTexCoord4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glTexCoord4hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord4hNV")

{-# NOINLINE glTexCoord4hNVFunPtr #-}

-- | Usage: @'glTexCoord4hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @4@.


glTexCoord4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glTexCoord4hvNV :: Ptr GLhalfNV -> m ()
glTexCoord4hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord4hvNVFunPtr

glTexCoord4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glTexCoord4hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexCoord4hvNV")

{-# NOINLINE glTexCoord4hvNVFunPtr #-}

-- | Usage: @'glVertex2hNV' x y@
--
-- The parameter @x@ is a @Half16NV@.
--
-- The parameter @y@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex2hvNV'.


glVertex2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
glVertex2hNV :: GLhalfNV -> GLhalfNV -> m ()
glVertex2hNV = FunPtr (GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> IO ())
glVertex2hNVFunPtr

glVertex2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
glVertex2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
glVertex2hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex2hNV")

{-# NOINLINE glVertex2hNVFunPtr #-}

-- | Usage: @'glVertex2hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @2@.


glVertex2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glVertex2hvNV :: Ptr GLhalfNV -> m ()
glVertex2hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glVertex2hvNVFunPtr

glVertex2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertex2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertex2hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex2hvNV")

{-# NOINLINE glVertex2hvNVFunPtr #-}

-- | Usage: @'glVertex3hNV' x y z@
--
-- The parameter @x@ is a @Half16NV@.
--
-- The parameter @y@ is a @Half16NV@.
--
-- The parameter @z@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex3hvNV'.


glVertex3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex3hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex3hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertex3hNVFunPtr

glVertex3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertex3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertex3hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex3hNV")

{-# NOINLINE glVertex3hNVFunPtr #-}

-- | Usage: @'glVertex3hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @3@.


glVertex3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glVertex3hvNV :: Ptr GLhalfNV -> m ()
glVertex3hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glVertex3hvNVFunPtr

glVertex3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertex3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertex3hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex3hvNV")

{-# NOINLINE glVertex3hvNVFunPtr #-}

-- | Usage: @'glVertex4hNV' x y z w@
--
-- The parameter @x@ is a @Half16NV@.
--
-- The parameter @y@ is a @Half16NV@.
--
-- The parameter @z@ is a @Half16NV@.
--
-- The parameter @w@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex4hvNV'.


glVertex4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex4hNV :: GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex4hNV = FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffihalfNVhalfNVhalfNVhalfNVIOV FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertex4hNVFunPtr

glVertex4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertex4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertex4hNVFunPtr = IO (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex4hNV")

{-# NOINLINE glVertex4hNVFunPtr #-}

-- | Usage: @'glVertex4hvNV' v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @4@.


glVertex4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glVertex4hvNV :: Ptr GLhalfNV -> m ()
glVertex4hvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glVertex4hvNVFunPtr

glVertex4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertex4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertex4hvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertex4hvNV")

{-# NOINLINE glVertex4hvNVFunPtr #-}

-- | Usage: @'glVertexAttrib1hNV' index x@
--
-- The parameter @x@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib1hvNV'.


glVertexAttrib1hNV :: MonadIO m => GLuint -> GLhalfNV -> m ()
glVertexAttrib1hNV :: GLenum -> GLhalfNV -> m ()
glVertexAttrib1hNV = FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> m ()
ffiuinthalfNVIOV FunPtr (GLenum -> GLhalfNV -> IO ())
glVertexAttrib1hNVFunPtr

glVertexAttrib1hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> IO ())
glVertexAttrib1hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> IO ())
glVertexAttrib1hNVFunPtr = IO (FunPtr (GLenum -> GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib1hNV")

{-# NOINLINE glVertexAttrib1hNVFunPtr #-}

-- | Usage: @'glVertexAttrib1hvNV' index v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @1@.


glVertexAttrib1hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
glVertexAttrib1hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glVertexAttrib1hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffiuintPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib1hvNVFunPtr

glVertexAttrib1hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
glVertexAttrib1hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib1hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib1hvNV")

{-# NOINLINE glVertexAttrib1hvNVFunPtr #-}

-- | Usage: @'glVertexAttrib2hNV' index x y@
--
-- The parameter @x@ is a @Half16NV@.
--
-- The parameter @y@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib2hvNV'.


glVertexAttrib2hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib2hNV :: GLenum -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib2hNV = FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> m ()
ffiuinthalfNVhalfNVIOV FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib2hNVFunPtr

glVertexAttrib2hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib2hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib2hNVFunPtr = IO (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib2hNV")

{-# NOINLINE glVertexAttrib2hNVFunPtr #-}

-- | Usage: @'glVertexAttrib2hvNV' index v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @2@.


glVertexAttrib2hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
glVertexAttrib2hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glVertexAttrib2hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffiuintPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib2hvNVFunPtr

glVertexAttrib2hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
glVertexAttrib2hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib2hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib2hvNV")

{-# NOINLINE glVertexAttrib2hvNVFunPtr #-}

-- | Usage: @'glVertexAttrib3hNV' index x y z@
--
-- The parameter @x@ is a @Half16NV@.
--
-- The parameter @y@ is a @Half16NV@.
--
-- The parameter @z@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib3hvNV'.


glVertexAttrib3hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib3hNV :: GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib3hNV = FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffiuinthalfNVhalfNVhalfNVIOV FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib3hNVFunPtr

glVertexAttrib3hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib3hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib3hNVFunPtr = IO (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib3hNV")

{-# NOINLINE glVertexAttrib3hNVFunPtr #-}

-- | Usage: @'glVertexAttrib3hvNV' index v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @3@.


glVertexAttrib3hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
glVertexAttrib3hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glVertexAttrib3hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffiuintPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib3hvNVFunPtr

glVertexAttrib3hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
glVertexAttrib3hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib3hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib3hvNV")

{-# NOINLINE glVertexAttrib3hvNVFunPtr #-}

-- | Usage: @'glVertexAttrib4hNV' index x y z w@
--
-- The parameter @x@ is a @Half16NV@.
--
-- The parameter @y@ is a @Half16NV@.
--
-- The parameter @z@ is a @Half16NV@.
--
-- The parameter @w@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib4hvNV'.


glVertexAttrib4hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib4hNV :: GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib4hNV = FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffiuinthalfNVhalfNVhalfNVhalfNVIOV FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib4hNVFunPtr

glVertexAttrib4hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib4hNVFunPtr :: FunPtr
  (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
glVertexAttrib4hNVFunPtr = IO
  (FunPtr
     (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
-> FunPtr
     (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib4hNV")

{-# NOINLINE glVertexAttrib4hNVFunPtr #-}

-- | Usage: @'glVertexAttrib4hvNV' index v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @4@.


glVertexAttrib4hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
glVertexAttrib4hvNV :: GLenum -> Ptr GLhalfNV -> m ()
glVertexAttrib4hvNV = FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-> GLenum -> Ptr GLhalfNV -> m ()
ffiuintPtrhalfNVIOV FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib4hvNVFunPtr

glVertexAttrib4hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
glVertexAttrib4hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
glVertexAttrib4hvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttrib4hvNV")

{-# NOINLINE glVertexAttrib4hvNVFunPtr #-}

-- | Usage: @'glVertexAttribs1hvNV' index n v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @n@.


glVertexAttribs1hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs1hvNV :: GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs1hvNV = FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
ffiuintsizeiPtrhalfNVIOV FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs1hvNVFunPtr

glVertexAttribs1hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs1hvNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs1hvNVFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribs1hvNV")

{-# NOINLINE glVertexAttribs1hvNVFunPtr #-}

-- | Usage: @'glVertexAttribs2hvNV' index n v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @n@.


glVertexAttribs2hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs2hvNV :: GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs2hvNV = FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
ffiuintsizeiPtrhalfNVIOV FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs2hvNVFunPtr

glVertexAttribs2hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs2hvNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs2hvNVFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribs2hvNV")

{-# NOINLINE glVertexAttribs2hvNVFunPtr #-}

-- | Usage: @'glVertexAttribs3hvNV' index n v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @n@.


glVertexAttribs3hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs3hvNV :: GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs3hvNV = FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
ffiuintsizeiPtrhalfNVIOV FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs3hvNVFunPtr

glVertexAttribs3hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs3hvNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs3hvNVFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribs3hvNV")

{-# NOINLINE glVertexAttribs3hvNVFunPtr #-}

-- | Usage: @'glVertexAttribs4hvNV' index n v@
--
-- The parameter @v@ is a @Half16NV@.
--
-- The length of @v@ should be @n@.


glVertexAttribs4hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs4hvNV :: GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs4hvNV = FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
-> GLenum -> GLsizei -> Ptr GLhalfNV -> m ()
ffiuintsizeiPtrhalfNVIOV FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs4hvNVFunPtr

glVertexAttribs4hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs4hvNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
glVertexAttribs4hvNVFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribs4hvNV")

{-# NOINLINE glVertexAttribs4hvNVFunPtr #-}

-- | Usage: @'glVertexWeighthNV' weight@
--
-- The parameter @weight@ is a @Half16NV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexWeighthvNV'.


glVertexWeighthNV :: MonadIO m => GLhalfNV -> m ()
glVertexWeighthNV :: GLhalfNV -> m ()
glVertexWeighthNV = FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
ffihalfNVIOV FunPtr (GLhalfNV -> IO ())
glVertexWeighthNVFunPtr

glVertexWeighthNVFunPtr :: FunPtr (GLhalfNV -> IO ())
glVertexWeighthNVFunPtr :: FunPtr (GLhalfNV -> IO ())
glVertexWeighthNVFunPtr = IO (FunPtr (GLhalfNV -> IO ())) -> FunPtr (GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexWeighthNV")

{-# NOINLINE glVertexWeighthNVFunPtr #-}

-- | Usage: @'glVertexWeighthvNV' weight@
--
-- The parameter @weight@ is a @Half16NV@.
--
-- The length of @weight@ should be @1@.


glVertexWeighthvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glVertexWeighthvNV :: Ptr GLhalfNV -> m ()
glVertexWeighthvNV = FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiPtrhalfNVIOV FunPtr (Ptr GLhalfNV -> IO ())
glVertexWeighthvNVFunPtr

glVertexWeighthvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertexWeighthvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
glVertexWeighthvNVFunPtr = IO (FunPtr (Ptr GLhalfNV -> IO ()))
-> FunPtr (Ptr GLhalfNV -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexWeighthvNV")

{-# NOINLINE glVertexWeighthvNVFunPtr #-}

pattern $bGL_HALF_FLOAT_NV :: a
$mGL_HALF_FLOAT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_HALF_FLOAT_NV = 0x140B