|
Graphics.Rendering.OpenGL.GL.Shaders | Portability | portable | Stability | stable | Maintainer | sven.panne@aedion.de |
|
|
|
|
|
Description |
This module corresponds to sections 2.15 (Vertex Shaders) and section 3.11
(Fragment Shaders) of the OpenGL 2.1 specs.
|
|
Synopsis |
|
|
|
|
Shader Objects
|
|
class (Eq s, Ord s, Show s, ObjectName s) => Shader s |
| Instances | |
|
|
data VertexShader |
Instances | |
|
|
data FragmentShader |
Instances | |
|
|
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 | |
|
|
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 | |
|
|
activeAttribs :: Program -> GettableStateVar [(GLint, VariableType, String)] |
|
Uniform variables
|
|
data UniformLocation |
Instances | |
|
|
uniformLocation :: Program -> String -> GettableStateVar UniformLocation |
|
activeUniforms :: Program -> GettableStateVar [(GLint, VariableType, String)] |
|
class Uniform a where |
| Methods | | | Instances | |
|
|
class Storable a => UniformComponent a |
| Instances | |
|
|
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 |