-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.EXT.TessellationShader (
  -- * Extension Support
    gl_EXT_tessellation_shader

  -- * GL_EXT_tessellation_shader
  , glPatchParameteriEXT
  , pattern GL_CCW
  , pattern GL_CW
  , pattern GL_EQUAL
  , pattern GL_FRACTIONAL_EVEN_EXT
  , pattern GL_FRACTIONAL_ODD_EXT
  , pattern GL_ISOLINES_EXT
  , pattern GL_IS_PER_PATCH_EXT
  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
  , pattern GL_MAX_PATCH_VERTICES_EXT
  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT
  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT
  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT
  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT
  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT
  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT
  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT
  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT
  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT
  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT
  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT
  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT
  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT
  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT
  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT
  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT
  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT
  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
  , pattern GL_MAX_TESS_GEN_LEVEL_EXT
  , pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT
  , pattern GL_PATCHES_EXT
  , pattern GL_PATCH_VERTICES_EXT
  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
  , pattern GL_QUADS_EXT
  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT
  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT
  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT
  , pattern GL_TESS_CONTROL_SHADER_BIT_EXT
  , pattern GL_TESS_CONTROL_SHADER_EXT
  , pattern GL_TESS_EVALUATION_SHADER_BIT_EXT
  , pattern GL_TESS_EVALUATION_SHADER_EXT
  , pattern GL_TESS_GEN_MODE_EXT
  , pattern GL_TESS_GEN_POINT_MODE_EXT
  , pattern GL_TESS_GEN_SPACING_EXT
  , pattern GL_TESS_GEN_VERTEX_ORDER_EXT
  , pattern GL_TRIANGLES
) 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/EXT/EXT_tessellation_shader.txt GL_EXT_tessellation_shader> extension is available.

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

-- | Usage: @'glPatchParameteriEXT' pname value@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glPatchParameteri'.


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

glPatchParameteriEXTFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glPatchParameteriEXTFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glPatchParameteriEXTFunPtr = 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 "glPatchParameteriEXT")

{-# NOINLINE glPatchParameteriEXTFunPtr #-}

pattern $bGL_FRACTIONAL_EVEN_EXT :: a
$mGL_FRACTIONAL_EVEN_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRACTIONAL_EVEN_EXT = 0x8E7C

pattern $bGL_FRACTIONAL_ODD_EXT :: a
$mGL_FRACTIONAL_ODD_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRACTIONAL_ODD_EXT = 0x8E7B

pattern $bGL_ISOLINES_EXT :: a
$mGL_ISOLINES_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ISOLINES_EXT = 0x8E7A

pattern $bGL_IS_PER_PATCH_EXT :: a
$mGL_IS_PER_PATCH_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IS_PER_PATCH_EXT = 0x92E7

pattern $bGL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: a
$mGL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E

pattern $bGL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: a
$mGL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F

pattern $bGL_MAX_PATCH_VERTICES_EXT :: a
$mGL_MAX_PATCH_VERTICES_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_PATCH_VERTICES_EXT = 0x8E7D

pattern $bGL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT :: a
$mGL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3

pattern $bGL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT :: a
$mGL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD

pattern $bGL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT :: a
$mGL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB

pattern $bGL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT :: a
$mGL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C

pattern $bGL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT :: a
$mGL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83

pattern $bGL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT :: a
$mGL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8

pattern $bGL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT :: a
$mGL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81

pattern $bGL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT :: a
$mGL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85

pattern $bGL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT :: a
$mGL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89

pattern $bGL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: a
$mGL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F

pattern $bGL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT :: a
$mGL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4

pattern $bGL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT :: a
$mGL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE

pattern $bGL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT :: a
$mGL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC

pattern $bGL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT :: a
$mGL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D

pattern $bGL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT :: a
$mGL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86

pattern $bGL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT :: a
$mGL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9

pattern $bGL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT :: a
$mGL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82

pattern $bGL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT :: a
$mGL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A

pattern $bGL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: a
$mGL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80

pattern $bGL_MAX_TESS_GEN_LEVEL_EXT :: a
$mGL_MAX_TESS_GEN_LEVEL_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E

pattern $bGL_MAX_TESS_PATCH_COMPONENTS_EXT :: a
$mGL_MAX_TESS_PATCH_COMPONENTS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84

pattern $bGL_PATCHES_EXT :: a
$mGL_PATCHES_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PATCHES_EXT = 0x000E

pattern $bGL_PATCH_VERTICES_EXT :: a
$mGL_PATCH_VERTICES_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PATCH_VERTICES_EXT = 0x8E72

pattern $bGL_QUADS_EXT :: a
$mGL_QUADS_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_QUADS_EXT = 0x0007

pattern $bGL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT :: a
$mGL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307

pattern $bGL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT :: a
$mGL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308

pattern $bGL_TESS_CONTROL_OUTPUT_VERTICES_EXT :: a
$mGL_TESS_CONTROL_OUTPUT_VERTICES_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75

pattern $bGL_TESS_CONTROL_SHADER_BIT_EXT :: a
$mGL_TESS_CONTROL_SHADER_BIT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008

pattern $bGL_TESS_CONTROL_SHADER_EXT :: a
$mGL_TESS_CONTROL_SHADER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_CONTROL_SHADER_EXT = 0x8E88

pattern $bGL_TESS_EVALUATION_SHADER_BIT_EXT :: a
$mGL_TESS_EVALUATION_SHADER_BIT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010

pattern $bGL_TESS_EVALUATION_SHADER_EXT :: a
$mGL_TESS_EVALUATION_SHADER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_EVALUATION_SHADER_EXT = 0x8E87

pattern $bGL_TESS_GEN_MODE_EXT :: a
$mGL_TESS_GEN_MODE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_GEN_MODE_EXT = 0x8E76

pattern $bGL_TESS_GEN_POINT_MODE_EXT :: a
$mGL_TESS_GEN_POINT_MODE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_GEN_POINT_MODE_EXT = 0x8E79

pattern $bGL_TESS_GEN_SPACING_EXT :: a
$mGL_TESS_GEN_SPACING_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_GEN_SPACING_EXT = 0x8E77

pattern $bGL_TESS_GEN_VERTEX_ORDER_EXT :: a
$mGL_TESS_GEN_VERTEX_ORDER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78