--------------------------------------------------------------------------------
-- |
-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
-- Copyright   :  (c) Sven Panne 2013
-- License     :  BSD3
--
-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
-- Stability   :  stable
-- Portability :  portable
--
-- All raw functions and tokens from the ARB_fragment_program extension, see
-- <http://www.opengl.org/registry/specs/ARB/fragment_program.txt>.
--
--------------------------------------------------------------------------------

module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram (
   -- * Functions
   glProgramString,
   glBindProgram,
   glDeletePrograms,
   glGenPrograms,
   glProgramEnvParameter4d,
   glProgramEnvParameter4dv,
   glProgramEnvParameter4f,
   glProgramEnvParameter4fv,
   glProgramLocalParameter4d,
   glProgramLocalParameter4dv,
   glProgramLocalParameter4f,
   glProgramLocalParameter4fv,
   glGetProgramEnvParameterdv,
   glGetProgramEnvParameterfv,
   glGetProgramLocalParameterdv,
   glGetProgramLocalParameterfv,
   glGetProgramiv,
   glGetProgramString,
   glIsProgram,
   -- * Tokens
   gl_FRAGMENT_PROGRAM,
   gl_PROGRAM_FORMAT_ASCII,
   gl_PROGRAM_LENGTH,
   gl_PROGRAM_FORMAT,
   gl_PROGRAM_BINDING,
   gl_PROGRAM_INSTRUCTIONS,
   gl_MAX_PROGRAM_INSTRUCTIONS,
   gl_PROGRAM_NATIVE_INSTRUCTIONS,
   gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS,
   gl_PROGRAM_TEMPORARIES,
   gl_MAX_PROGRAM_TEMPORARIES,
   gl_PROGRAM_NATIVE_TEMPORARIES,
   gl_MAX_PROGRAM_NATIVE_TEMPORARIES,
   gl_PROGRAM_PARAMETERS,
   gl_MAX_PROGRAM_PARAMETERS,
   gl_PROGRAM_NATIVE_PARAMETERS,
   gl_MAX_PROGRAM_NATIVE_PARAMETERS,
   gl_PROGRAM_ATTRIBS,
   gl_MAX_PROGRAM_ATTRIBS,
   gl_PROGRAM_NATIVE_ATTRIBS,
   gl_MAX_PROGRAM_NATIVE_ATTRIBS,
   gl_MAX_PROGRAM_LOCAL_PARAMETERS,
   gl_MAX_PROGRAM_ENV_PARAMETERS,
   gl_PROGRAM_UNDER_NATIVE_LIMITS,
   gl_PROGRAM_ALU_INSTRUCTIONS,
   gl_PROGRAM_TEX_INSTRUCTIONS,
   gl_PROGRAM_TEX_INDIRECTIONS,
   gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS,
   gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS,
   gl_PROGRAM_NATIVE_TEX_INDIRECTIONS,
   gl_MAX_PROGRAM_ALU_INSTRUCTIONS,
   gl_MAX_PROGRAM_TEX_INSTRUCTIONS,
   gl_MAX_PROGRAM_TEX_INDIRECTIONS,
   gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS,
   gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS,
   gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS,
   gl_PROGRAM_STRING,
   gl_PROGRAM_ERROR_POSITION,
   gl_CURRENT_MATRIX,
   gl_TRANSPOSE_CURRENT_MATRIX,
   gl_CURRENT_MATRIX_STACK_DEPTH,
   gl_MAX_PROGRAM_MATRICES,
   gl_MAX_PROGRAM_MATRIX_STACK_DEPTH,
   gl_MAX_TEXTURE_COORDS,
   gl_MAX_TEXTURE_IMAGE_UNITS,
   gl_PROGRAM_ERROR_STRING,
   gl_MATRIX0,
   gl_MATRIX1,
   gl_MATRIX2,
   gl_MATRIX3,
   gl_MATRIX4,
   gl_MATRIX5,
   gl_MATRIX6,
   gl_MATRIX7,
   gl_MATRIX8,
   gl_MATRIX9,
   gl_MATRIX10,
   gl_MATRIX11,
   gl_MATRIX12,
   gl_MATRIX13,
   gl_MATRIX14,
   gl_MATRIX15,
   gl_MATRIX16,
   gl_MATRIX17,
   gl_MATRIX18,
   gl_MATRIX19,
   gl_MATRIX20,
   gl_MATRIX21,
   gl_MATRIX22,
   gl_MATRIX23,
   gl_MATRIX24,
   gl_MATRIX25,
   gl_MATRIX26,
   gl_MATRIX27,
   gl_MATRIX28,
   gl_MATRIX29,
   gl_MATRIX30,
   gl_MATRIX31
) where

import Graphics.Rendering.OpenGL.Raw.Functions
import Graphics.Rendering.OpenGL.Raw.Tokens

glProgramString = glProgramStringARB
glBindProgram = glBindProgramARB
glDeletePrograms = glDeleteProgramsARB
glGenPrograms = glGenProgramsARB
glProgramEnvParameter4d = glProgramEnvParameter4dARB
glProgramEnvParameter4dv = glProgramEnvParameter4dvARB
glProgramEnvParameter4f = glProgramEnvParameter4fARB
glProgramEnvParameter4fv = glProgramEnvParameter4fvARB
glProgramLocalParameter4d = glProgramLocalParameter4dARB
glProgramLocalParameter4dv = glProgramLocalParameter4dvARB
glProgramLocalParameter4f = glProgramLocalParameter4fARB
glProgramLocalParameter4fv = glProgramLocalParameter4fvARB
glGetProgramEnvParameterdv = glGetProgramEnvParameterdvARB
glGetProgramEnvParameterfv = glGetProgramEnvParameterfvARB
glGetProgramLocalParameterdv = glGetProgramLocalParameterdvARB
glGetProgramLocalParameterfv = glGetProgramLocalParameterfvARB
glGetProgramString = glGetProgramStringARB

gl_FRAGMENT_PROGRAM = gl_FRAGMENT_PROGRAM_ARB
gl_PROGRAM_FORMAT_ASCII = gl_PROGRAM_FORMAT_ASCII_ARB
gl_PROGRAM_LENGTH = gl_PROGRAM_LENGTH_ARB
gl_PROGRAM_FORMAT = gl_PROGRAM_FORMAT_ARB
gl_PROGRAM_BINDING = gl_PROGRAM_BINDING_ARB
gl_PROGRAM_INSTRUCTIONS = gl_PROGRAM_INSTRUCTIONS_ARB
gl_MAX_PROGRAM_INSTRUCTIONS = gl_MAX_PROGRAM_INSTRUCTIONS_ARB
gl_PROGRAM_NATIVE_INSTRUCTIONS = gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB
gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS = gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
gl_PROGRAM_TEMPORARIES = gl_PROGRAM_TEMPORARIES_ARB
gl_MAX_PROGRAM_TEMPORARIES = gl_MAX_PROGRAM_TEMPORARIES_ARB
gl_PROGRAM_NATIVE_TEMPORARIES = gl_PROGRAM_NATIVE_TEMPORARIES_ARB
gl_MAX_PROGRAM_NATIVE_TEMPORARIES = gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
gl_PROGRAM_PARAMETERS = gl_PROGRAM_PARAMETERS_ARB
gl_MAX_PROGRAM_PARAMETERS = gl_MAX_PROGRAM_PARAMETERS_ARB
gl_PROGRAM_NATIVE_PARAMETERS = gl_PROGRAM_NATIVE_PARAMETERS_ARB
gl_MAX_PROGRAM_NATIVE_PARAMETERS = gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
gl_PROGRAM_ATTRIBS = gl_PROGRAM_ATTRIBS_ARB
gl_MAX_PROGRAM_ATTRIBS = gl_MAX_PROGRAM_ATTRIBS_ARB
gl_PROGRAM_NATIVE_ATTRIBS = gl_PROGRAM_NATIVE_ATTRIBS_ARB
gl_MAX_PROGRAM_NATIVE_ATTRIBS = gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
gl_MAX_PROGRAM_LOCAL_PARAMETERS = gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
gl_MAX_PROGRAM_ENV_PARAMETERS = gl_MAX_PROGRAM_ENV_PARAMETERS_ARB
gl_PROGRAM_UNDER_NATIVE_LIMITS = gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB
gl_PROGRAM_ALU_INSTRUCTIONS = gl_PROGRAM_ALU_INSTRUCTIONS_ARB
gl_PROGRAM_TEX_INSTRUCTIONS = gl_PROGRAM_TEX_INSTRUCTIONS_ARB
gl_PROGRAM_TEX_INDIRECTIONS = gl_PROGRAM_TEX_INDIRECTIONS_ARB
gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS = gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS = gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
gl_PROGRAM_NATIVE_TEX_INDIRECTIONS = gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
gl_MAX_PROGRAM_ALU_INSTRUCTIONS = gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
gl_MAX_PROGRAM_TEX_INSTRUCTIONS = gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
gl_MAX_PROGRAM_TEX_INDIRECTIONS = gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS = gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS = gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS = gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
gl_PROGRAM_STRING = gl_PROGRAM_STRING_ARB
gl_PROGRAM_ERROR_POSITION = gl_PROGRAM_ERROR_POSITION_ARB
gl_CURRENT_MATRIX = gl_CURRENT_MATRIX_ARB
gl_TRANSPOSE_CURRENT_MATRIX = gl_TRANSPOSE_CURRENT_MATRIX_ARB
gl_CURRENT_MATRIX_STACK_DEPTH = gl_CURRENT_MATRIX_STACK_DEPTH_ARB
gl_MAX_PROGRAM_MATRICES = gl_MAX_PROGRAM_MATRICES_ARB
gl_MAX_PROGRAM_MATRIX_STACK_DEPTH = gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
gl_PROGRAM_ERROR_STRING = gl_PROGRAM_ERROR_STRING_ARB

gl_MATRIX0 = gl_MATRIX0_ARB
gl_MATRIX1 = gl_MATRIX1_ARB
gl_MATRIX2 = gl_MATRIX2_ARB
gl_MATRIX3 = gl_MATRIX3_ARB
gl_MATRIX4 = gl_MATRIX4_ARB
gl_MATRIX5 = gl_MATRIX5_ARB
gl_MATRIX6 = gl_MATRIX6_ARB
gl_MATRIX7 = gl_MATRIX7_ARB
gl_MATRIX8 = gl_MATRIX8_ARB
gl_MATRIX9 = gl_MATRIX9_ARB
gl_MATRIX10 = gl_MATRIX10_ARB
gl_MATRIX11 = gl_MATRIX11_ARB
gl_MATRIX12 = gl_MATRIX12_ARB
gl_MATRIX13 = gl_MATRIX13_ARB
gl_MATRIX14 = gl_MATRIX14_ARB
gl_MATRIX15 = gl_MATRIX15_ARB
gl_MATRIX16 = gl_MATRIX16_ARB
gl_MATRIX17 = gl_MATRIX17_ARB
gl_MATRIX18 = gl_MATRIX18_ARB
gl_MATRIX19 = gl_MATRIX19_ARB
gl_MATRIX20 = gl_MATRIX20_ARB
gl_MATRIX21 = gl_MATRIX21_ARB
gl_MATRIX22 = gl_MATRIX22_ARB
gl_MATRIX23 = gl_MATRIX23_ARB
gl_MATRIX24 = gl_MATRIX24_ARB
gl_MATRIX25 = gl_MATRIX25_ARB
gl_MATRIX26 = gl_MATRIX26_ARB
gl_MATRIX27 = gl_MATRIX27_ARB
gl_MATRIX28 = gl_MATRIX28_ARB
gl_MATRIX29 = gl_MATRIX29_ARB
gl_MATRIX30 = gl_MATRIX30_ARB
gl_MATRIX31 = gl_MATRIX31_ARB