Safe Haskell | None |
---|---|
Language | Haskell2010 |
- newtype Draw a = Draw {}
- data DrawState = DrawState {
- program :: Maybe (Program [] [])
- loadedProgram :: Maybe LoadedProgram
- programs :: ResMap (Program [] []) LoadedProgram
- uniforms :: ResMap (LoadedProgram, String) UniformLocation
- gpuMeshes :: ResMap (Geometry []) GPUGeometry
- textureImages :: ResMap TextureImage LoadedTexture
- newtype UniformLocation = UniformLocation UniformLocation
- data Texture
- data TextureImage
- data LoadedTexture = LoadedTexture GLSize GLSize Texture
- data Geometry is = Geometry (AttrList is) [Word16] Int
- data Mesh is where
- data Object gs is where
- ObjectEmpty :: Object gs is
- ObjectMesh :: Mesh is -> Object gs is
- ObjectGlobal :: (Typeable g, UniformCPU c g) => g -> Draw c -> Object gs is -> Object gs' is
- ObjectAppend :: Object gs is -> Object gs' is' -> Object gs'' is''
- data Layer
Documentation
data DrawState
The state of the Draw
monad.
DrawState | |
|
data TextureImage
data Geometry is
A set of attributes and indices.
data Mesh is where
A static or dinamic geometry.
data Object gs is where
An object is a set of geometries associated with some uniforms. For
example, if you want to draw a rotating cube, its vertices, normals, etc.
would be the Geometry
, the combination of the geometry and the value of the
model matrix would be the Object
, and the combination of the object with
a Program
would be the Layer
. In fact, Object
s are just descriptions
of the actions to perform to draw something. Instead, the Element types in
FWGL.Graphics.D2 and FWGL.Graphics.D3 represent managed (high level) objects,
and they are ultimately converted to them.
ObjectEmpty :: Object gs is | |
ObjectMesh :: Mesh is -> Object gs is | |
ObjectGlobal :: (Typeable g, UniformCPU c g) => g -> Draw c -> Object gs is -> Object gs' is | |
ObjectAppend :: Object gs is -> Object gs' is' -> Object gs'' is'' |