-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.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.Raw.Internal.FFI
import Graphics.GL.Raw.Internal.Proc
import Graphics.GL.Raw.Internal.Shared
import Graphics.GL.Raw.Types
import System.IO.Unsafe

gl_EXT_tessellation_shader :: Bool
gl_EXT_tessellation_shader = member "GL_EXT_tessellation_shader" extensions

glPatchParameteriEXT :: MonadIO m => GLenum -> GLint -> m ()
glPatchParameteriEXT = ffienumintIOV glPatchParameteriEXTFunPtr

glPatchParameteriEXTFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glPatchParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glPatchParameteriEXT")

{-# NOINLINE glPatchParameteriEXTFunPtr #-}

pattern GL_FRACTIONAL_EVEN_EXT = 0x8E7C :: GLenum

pattern GL_FRACTIONAL_ODD_EXT = 0x8E7B :: GLenum

pattern GL_ISOLINES_EXT = 0x8E7A :: GLenum

pattern GL_IS_PER_PATCH_EXT = 0x92E7 :: GLenum

pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E :: GLenum

pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F :: GLenum

pattern GL_MAX_PATCH_VERTICES_EXT = 0x8E7D :: GLenum

pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3 :: GLenum

pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD :: GLenum

pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB :: GLenum

pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C :: GLenum

pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83 :: GLenum

pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8 :: GLenum

pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81 :: GLenum

pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85 :: GLenum

pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89 :: GLenum

pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F :: GLenum

pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4 :: GLenum

pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE :: GLenum

pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC :: GLenum

pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D :: GLenum

pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86 :: GLenum

pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9 :: GLenum

pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82 :: GLenum

pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A :: GLenum

pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80 :: GLenum

pattern GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E :: GLenum

pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84 :: GLenum

pattern GL_PATCHES_EXT = 0x000E :: GLenum

pattern GL_PATCH_VERTICES_EXT = 0x8E72 :: GLenum

pattern GL_QUADS_EXT = 0x0007 :: GLenum

pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307 :: GLenum

pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308 :: GLenum

pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75 :: GLenum

pattern GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008 :: GLenum

pattern GL_TESS_CONTROL_SHADER_EXT = 0x8E88 :: GLenum

pattern GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010 :: GLenum

pattern GL_TESS_EVALUATION_SHADER_EXT = 0x8E87 :: GLenum

pattern GL_TESS_GEN_MODE_EXT = 0x8E76 :: GLenum

pattern GL_TESS_GEN_POINT_MODE_EXT = 0x8E79 :: GLenum

pattern GL_TESS_GEN_SPACING_EXT = 0x8E77 :: GLenum

pattern GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78 :: GLenum