-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.ARB.ShadingLanguageInclude (
  -- * Extension Support
    gl_ARB_shading_language_include

  -- * GL_ARB_shading_language_include
  , glCompileShaderIncludeARB
  , glDeleteNamedStringARB
  , glGetNamedStringARB
  , glGetNamedStringivARB
  , glIsNamedStringARB
  , glNamedStringARB
  , pattern GL_NAMED_STRING_LENGTH_ARB
  , pattern GL_NAMED_STRING_TYPE_ARB
  , pattern GL_SHADER_INCLUDE_ARB
) 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.Types
import System.IO.Unsafe

gl_ARB_shading_language_include :: Bool
gl_ARB_shading_language_include = member "GL_ARB_shading_language_include" extensions

glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> m ()
glCompileShaderIncludeARB = ffiuintsizeiPtrcharPtrintIOV glCompileShaderIncludeARBFunPtr

glCompileShaderIncludeARBFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> IO ())
glCompileShaderIncludeARBFunPtr = unsafePerformIO (getProcAddress "glCompileShaderIncludeARB")

{-# NOINLINE glCompileShaderIncludeARBFunPtr #-}

glDeleteNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m ()
glDeleteNamedStringARB = ffiintPtrcharIOV glDeleteNamedStringARBFunPtr

glDeleteNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> IO ())
glDeleteNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glDeleteNamedStringARB")

{-# NOINLINE glDeleteNamedStringARBFunPtr #-}

glGetNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
glGetNamedStringARB = ffiintPtrcharsizeiPtrintPtrcharIOV glGetNamedStringARBFunPtr

glGetNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ())
glGetNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glGetNamedStringARB")

{-# NOINLINE glGetNamedStringARBFunPtr #-}

glGetNamedStringivARB :: MonadIO m => GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
glGetNamedStringivARB = ffiintPtrcharenumPtrintIOV glGetNamedStringivARBFunPtr

glGetNamedStringivARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ())
glGetNamedStringivARBFunPtr = unsafePerformIO (getProcAddress "glGetNamedStringivARB")

{-# NOINLINE glGetNamedStringivARBFunPtr #-}

glIsNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m GLboolean
glIsNamedStringARB = ffiintPtrcharIOboolean glIsNamedStringARBFunPtr

glIsNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> IO GLboolean)
glIsNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glIsNamedStringARB")

{-# NOINLINE glIsNamedStringARBFunPtr #-}

glNamedStringARB :: MonadIO m => GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()
glNamedStringARB = ffienumintPtrcharintPtrcharIOV glNamedStringARBFunPtr

glNamedStringARBFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ())
glNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glNamedStringARB")

{-# NOINLINE glNamedStringARBFunPtr #-}

pattern GL_NAMED_STRING_LENGTH_ARB = 0x8DE9 :: GLenum

pattern GL_NAMED_STRING_TYPE_ARB = 0x8DEA :: GLenum

pattern GL_SHADER_INCLUDE_ARB = 0x8DAE :: GLenum