    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.Rendering.OpenGL.GL.Shaders
    -- Copyright   :  (c) Sven Panne 2002-2009
    -- License     :  BSD-style (see the file libraries/OpenGL/LICENSE)
    --
    -- Maintainer  :  sven.panne@aedion.de
    -- Stability   :  stable
    -- Portability :  portable
    --
    -- This module corresponds to sections 2.15 (Vertex Shaders) and section 3.11
    -- (Fragment Shaders) of the OpenGL 2.1 specs.
    --
    --------------------------------------------------------------------------------

    module Graphics.Rendering.OpenGL.GL.Shaders (
       -- * Shader Objects
       Shader, VertexShader, FragmentShader, shaderDeleteStatus, shaderSource,
       compileShader, compileStatus, shaderInfoLog,

       -- * Program Objects
       Program, programDeleteStatus, attachedShaders, linkProgram, linkStatus,
       programInfoLog, validateProgram, validateStatus, currentProgram,

       -- * FragmentData
       bindFragDataLocation,
       getFragDataLocation,

       -- * Vertex attributes
       attribLocation, VariableType(..), activeAttribs,

       -- * Uniform variables
       UniformLocation, uniformLocation, activeUniforms, Uniform(..),
       UniformComponent,

       -- * Implementation limits related to GLSL
       maxVertexTextureImageUnits, maxTextureImageUnits,
       maxCombinedTextureImageUnits, maxTextureCoords, maxVertexUniformComponents,
       maxFragmentUniformComponents, maxVertexAttribs, maxVaryingFloats
    ) where

    import Graphics.Rendering.OpenGL.GL.Shaders.Shaders
    import Graphics.Rendering.OpenGL.GL.Shaders.Attribs
    import Graphics.Rendering.OpenGL.GL.Shaders.Limits
    import Graphics.Rendering.OpenGL.GL.Shaders.Program
    import Graphics.Rendering.OpenGL.GL.Shaders.Uniform
    import Graphics.Rendering.OpenGL.GL.Shaders.Variables