-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.PGI.MiscHints (
  -- * Extension Support
    gl_PGI_misc_hints

  -- * GL_PGI_misc_hints
  , glHintPGI
  , pattern GL_ALLOW_DRAW_FRG_HINT_PGI
  , pattern GL_ALLOW_DRAW_MEM_HINT_PGI
  , pattern GL_ALLOW_DRAW_OBJ_HINT_PGI
  , pattern GL_ALLOW_DRAW_WIN_HINT_PGI
  , pattern GL_ALWAYS_FAST_HINT_PGI
  , pattern GL_ALWAYS_SOFT_HINT_PGI
  , pattern GL_BACK_NORMALS_HINT_PGI
  , pattern GL_CLIP_FAR_HINT_PGI
  , pattern GL_CLIP_NEAR_HINT_PGI
  , pattern GL_CONSERVE_MEMORY_HINT_PGI
  , pattern GL_FULL_STIPPLE_HINT_PGI
  , pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI
  , pattern GL_NATIVE_GRAPHICS_END_HINT_PGI
  , pattern GL_NATIVE_GRAPHICS_HANDLE_PGI
  , pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI
  , pattern GL_RECLAIM_MEMORY_HINT_PGI
  , pattern GL_STRICT_DEPTHFUNC_HINT_PGI
  , pattern GL_STRICT_LIGHTING_HINT_PGI
  , pattern GL_STRICT_SCISSOR_HINT_PGI
  , pattern GL_WIDE_LINE_HINT_PGI
) 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/PGI/misc_hints.txt GL_PGI_misc_hints> extension is available.

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

-- | Usage: @'glHintPGI' target mode@
--
-- The parameter @target@ is a @HintTargetPGI@.


glHintPGI :: MonadIO m => GLenum -> GLint -> m ()
glHintPGI :: GLenum -> GLint -> m ()
glHintPGI = FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> m ()
ffienumintIOV FunPtr (GLenum -> GLint -> IO ())
glHintPGIFunPtr

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

{-# NOINLINE glHintPGIFunPtr #-}

pattern $bGL_ALLOW_DRAW_FRG_HINT_PGI :: a
$mGL_ALLOW_DRAW_FRG_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210

pattern $bGL_ALLOW_DRAW_MEM_HINT_PGI :: a
$mGL_ALLOW_DRAW_MEM_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211

pattern $bGL_ALLOW_DRAW_OBJ_HINT_PGI :: a
$mGL_ALLOW_DRAW_OBJ_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E

pattern $bGL_ALLOW_DRAW_WIN_HINT_PGI :: a
$mGL_ALLOW_DRAW_WIN_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F

pattern $bGL_ALWAYS_FAST_HINT_PGI :: a
$mGL_ALWAYS_FAST_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ALWAYS_FAST_HINT_PGI = 0x1A20C

pattern $bGL_ALWAYS_SOFT_HINT_PGI :: a
$mGL_ALWAYS_SOFT_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D

pattern $bGL_BACK_NORMALS_HINT_PGI :: a
$mGL_BACK_NORMALS_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BACK_NORMALS_HINT_PGI = 0x1A223

pattern $bGL_CLIP_FAR_HINT_PGI :: a
$mGL_CLIP_FAR_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CLIP_FAR_HINT_PGI = 0x1A221

pattern $bGL_CLIP_NEAR_HINT_PGI :: a
$mGL_CLIP_NEAR_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CLIP_NEAR_HINT_PGI = 0x1A220

pattern $bGL_CONSERVE_MEMORY_HINT_PGI :: a
$mGL_CONSERVE_MEMORY_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD

pattern $bGL_FULL_STIPPLE_HINT_PGI :: a
$mGL_FULL_STIPPLE_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FULL_STIPPLE_HINT_PGI = 0x1A219

pattern $bGL_NATIVE_GRAPHICS_BEGIN_HINT_PGI :: a
$mGL_NATIVE_GRAPHICS_BEGIN_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203

pattern $bGL_NATIVE_GRAPHICS_END_HINT_PGI :: a
$mGL_NATIVE_GRAPHICS_END_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204

pattern $bGL_NATIVE_GRAPHICS_HANDLE_PGI :: a
$mGL_NATIVE_GRAPHICS_HANDLE_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202

pattern $bGL_PREFER_DOUBLEBUFFER_HINT_PGI :: a
$mGL_PREFER_DOUBLEBUFFER_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8

pattern $bGL_RECLAIM_MEMORY_HINT_PGI :: a
$mGL_RECLAIM_MEMORY_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE

pattern $bGL_STRICT_DEPTHFUNC_HINT_PGI :: a
$mGL_STRICT_DEPTHFUNC_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216

pattern $bGL_STRICT_LIGHTING_HINT_PGI :: a
$mGL_STRICT_LIGHTING_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STRICT_LIGHTING_HINT_PGI = 0x1A217

pattern $bGL_STRICT_SCISSOR_HINT_PGI :: a
$mGL_STRICT_SCISSOR_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STRICT_SCISSOR_HINT_PGI = 0x1A218

pattern $bGL_WIDE_LINE_HINT_PGI :: a
$mGL_WIDE_LINE_HINT_PGI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_WIDE_LINE_HINT_PGI = 0x1A222