| HOpenGL Libraries (OpenGL package) | Source code | Contents | Index
Graphics.Rendering.OpenGL.GL.Shaders |
Portability | portable
Stability | stable
Maintainer | sven.panne@aedion.de
Contents
Shader Objects Program Objects Vertex attributes Uniform variables Implementation limits related to GLSL
Description
This module corresponds to sections 2.15 (Vertex Shaders) and section 3.11 (Fragment Shaders) of the OpenGL 2.1 specs.
Synopsis
class (Eq s, Ord s, Show s, ObjectName s) => Shader s
data VertexShader
data FragmentShader
shaderDeleteStatus :: Shader s => s -> GettableStateVar Bool
shaderSource :: Shader s => s -> StateVar [String]
compileShader :: Shader s => s -> IO ()
compileStatus :: Shader s => s -> GettableStateVar Bool
shaderInfoLog :: Shader s => s -> GettableStateVar String
data Program
programDeleteStatus :: Program -> GettableStateVar Bool
attachedShaders :: Program -> StateVar ([VertexShader], [FragmentShader])
linkProgram :: Program -> IO ()
linkStatus :: Program -> GettableStateVar Bool
programInfoLog :: Program -> GettableStateVar String
validateProgram :: Program -> IO ()
validateStatus :: Program -> GettableStateVar Bool
currentProgram :: StateVar (Maybe Program)
attribLocation :: Program -> String -> StateVar AttribLocation
data VariableType
= Float'
| FloatVec2
| FloatVec3
| FloatVec4
| FloatMat2
| FloatMat3
| FloatMat4
| Int'
| IntVec2
| IntVec3
| IntVec4
| Bool
| BoolVec2
| BoolVec3
| BoolVec4
| Sampler1D
| Sampler2D
| Sampler3D
| SamplerCube
| Sampler1DShadow
| Sampler2DShadow
activeAttribs :: Program -> GettableStateVar [(GLint, VariableType, String)]
data UniformLocation
uniformLocation :: Program -> String -> GettableStateVar UniformLocation
activeUniforms :: Program -> GettableStateVar [(GLint, VariableType, String)]
class Uniform a where
uniform :: UniformLocation -> StateVar a
uniformv :: UniformLocation -> GLsizei -> Ptr a -> IO ()
class Storable a => UniformComponent a
maxVertexTextureImageUnits :: GettableStateVar GLsizei
maxTextureImageUnits :: GettableStateVar GLsizei
maxCombinedTextureImageUnits :: GettableStateVar GLsizei
maxTextureCoords :: GettableStateVar GLsizei
maxVertexUniformComponents :: GettableStateVar GLsizei
maxFragmentUniformComponents :: GettableStateVar GLsizei
maxVertexAttribs :: GettableStateVar GLsizei
maxVaryingFloats :: GettableStateVar GLsizei
Shader Objects
class (Eq s, Ord s, Show s, ObjectName s) => Shader s
Instances
Shader FragmentShader
Shader VertexShader
data VertexShader
Instances
Eq VertexShader
ObjectName VertexShader
Ord VertexShader
Shader VertexShader
Show VertexShader
data FragmentShader
Instances
Eq FragmentShader
ObjectName FragmentShader
Ord FragmentShader
Shader FragmentShader
Show FragmentShader
shaderDeleteStatus :: Shader s => s -> GettableStateVar Bool
shaderSource :: Shader s => s -> StateVar [String]
compileShader :: Shader s => s -> IO ()
compileStatus :: Shader s => s -> GettableStateVar Bool
shaderInfoLog :: Shader s => s -> GettableStateVar String
Program Objects
data Program
Instances
Eq Program
ObjectName Program
Ord Program
Show Program
programDeleteStatus :: Program -> GettableStateVar Bool
attachedShaders :: Program -> StateVar ([VertexShader], [FragmentShader])
linkProgram :: Program -> IO ()
linkStatus :: Program -> GettableStateVar Bool
programInfoLog :: Program -> GettableStateVar String
validateProgram :: Program -> IO ()
validateStatus :: Program -> GettableStateVar Bool
currentProgram :: StateVar (Maybe Program)
Vertex attributes
attribLocation :: Program -> String -> StateVar AttribLocation
data VariableType
Constructors
Float' |
FloatVec2 |
FloatVec3 |
FloatVec4 |
FloatMat2 |
FloatMat3 |
FloatMat4 |
Int' |
IntVec2 |
IntVec3 |
IntVec4 |
Bool |
BoolVec2 |
BoolVec3 |
BoolVec4 |
Sampler1D |
Sampler2D |
Sampler3D |
SamplerCube |
Sampler1DShadow |
Sampler2DShadow |
Instances
Eq VariableType
Ord VariableType
Show VariableType
activeAttribs :: Program -> GettableStateVar [(GLint, VariableType, String)]
Uniform variables
data UniformLocation
Instances
Eq UniformLocation
Ord UniformLocation
Show UniformLocation
uniformLocation :: Program -> String -> GettableStateVar UniformLocation
activeUniforms :: Program -> GettableStateVar [(GLint, VariableType, String)]
class Uniform a where
Methods
uniform :: UniformLocation -> StateVar a
uniformv :: UniformLocation -> GLsizei -> Ptr a -> IO ()
Instances
UniformComponent a => Uniform (Color3 a)
UniformComponent a => Uniform (Color4 a)
UniformComponent a => Uniform (FogCoord1 a)
UniformComponent a => Uniform (Index1 a)
UniformComponent a => Uniform (Normal3 a)
UniformComponent a => Uniform (TexCoord1 a)
UniformComponent a => Uniform (TexCoord2 a)
UniformComponent a => Uniform (TexCoord3 a)
UniformComponent a => Uniform (TexCoord4 a)
UniformComponent a => Uniform (Vertex2 a)
UniformComponent a => Uniform (Vertex3 a)
UniformComponent a => Uniform (Vertex4 a)
class Storable a => UniformComponent a
Instances
UniformComponent GLfloat
UniformComponent GLint
Implementation limits related to GLSL
maxVertexTextureImageUnits :: GettableStateVar GLsizei
Contains the number of hardware units that can be used to access texture maps from the vertex processor. The minimum legal value is 0.
maxTextureImageUnits :: GettableStateVar GLsizei
Contains the total number of hardware units that can be used to access texture maps from the fragment processor. The minimum legal value is 2.
maxCombinedTextureImageUnits :: GettableStateVar GLsizei
Contains the total number of hardware units that can be used to access texture maps from the vertex processor and the fragment processor combined. Note: If the vertex shader and the fragment processing stage access the same texture image unit, then that counts as using two texture image units. The minimum legal value is 2.
maxTextureCoords :: GettableStateVar GLsizei
Contains the number of texture coordinate sets that are available. The minimum legal value is 2.
maxVertexUniformComponents :: GettableStateVar GLsizei
Contains the number of individual components (i.e., floating-point, integer or boolean values) that are available for vertex shader uniform variables. The minimum legal value is 512.
maxFragmentUniformComponents :: GettableStateVar GLsizei
Contains the number of individual components (i.e., floating-point, integer or boolean values) that are available for fragment shader uniform variables. The minimum legal value is 64.
maxVertexAttribs :: GettableStateVar GLsizei
Contains the number of active vertex attributes that are available. The minimum legal value is 16.
maxVaryingFloats :: GettableStateVar GLsizei
Contains the number of individual floating-point values available for varying variables. The minimum legal value is 32.
Produced by Haddock version 0.8