OpenGL-2.2.1.1: A binding for the OpenGL graphics systemSource codeContentsIndex
Graphics.Rendering.OpenGL.GL.Shaders
Portabilityportable
Stabilitystable
Maintainersven.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 Source
show/hide Instances
data VertexShader Source
show/hide Instances
data FragmentShader Source
show/hide Instances
shaderDeleteStatus :: Shader s => s -> GettableStateVar BoolSource
shaderSource :: Shader s => s -> StateVar [String]Source
compileShader :: Shader s => s -> IO ()Source
compileStatus :: Shader s => s -> GettableStateVar BoolSource
shaderInfoLog :: Shader s => s -> GettableStateVar StringSource
Program Objects
data Program Source
show/hide Instances
programDeleteStatus :: Program -> GettableStateVar BoolSource
attachedShaders :: Program -> StateVar ([VertexShader], [FragmentShader])Source
linkProgram :: Program -> IO ()Source
linkStatus :: Program -> GettableStateVar BoolSource
programInfoLog :: Program -> GettableStateVar StringSource
validateProgram :: Program -> IO ()Source
validateStatus :: Program -> GettableStateVar BoolSource
currentProgram :: StateVar (Maybe Program)Source
Vertex attributes
attribLocation :: Program -> String -> StateVar AttribLocationSource
data VariableType Source
Constructors
Float'
FloatVec2
FloatVec3
FloatVec4
FloatMat2
FloatMat3
FloatMat4
Int'
IntVec2
IntVec3
IntVec4
Bool
BoolVec2
BoolVec3
BoolVec4
Sampler1D
Sampler2D
Sampler3D
SamplerCube
Sampler1DShadow
Sampler2DShadow
show/hide Instances
activeAttribs :: Program -> GettableStateVar [(GLint, VariableType, String)]Source
Uniform variables
data UniformLocation Source
show/hide Instances
uniformLocation :: Program -> String -> GettableStateVar UniformLocationSource
activeUniforms :: Program -> GettableStateVar [(GLint, VariableType, String)]Source
class Uniform a whereSource
Methods
uniform :: UniformLocation -> StateVar aSource
uniformv :: UniformLocation -> GLsizei -> Ptr a -> IO ()Source
show/hide Instances
class Storable a => UniformComponent a Source
show/hide Instances
Implementation limits related to GLSL
maxVertexTextureImageUnits :: GettableStateVar GLsizeiSource
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 GLsizeiSource
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 GLsizeiSource
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 GLsizeiSource
Contains the number of texture coordinate sets that are available. The minimum legal value is 2.
maxVertexUniformComponents :: GettableStateVar GLsizeiSource
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 GLsizeiSource
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 GLsizeiSource
Contains the number of active vertex attributes that are available. The minimum legal value is 16.
maxVaryingFloats :: GettableStateVar GLsizeiSource
Contains the number of individual floating-point values available for varying variables. The minimum legal value is 32.
Produced by Haddock version 0.8