| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
FWGL.Graphics.Types
- 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
A monad that represents OpenGL actions with some state (DrawState).
The state of the Draw monad.
Constructors
| DrawState | |
Fields
| |
newtype UniformLocation Source
Constructors
| UniformLocation UniformLocation |
data TextureImage Source
Constructors
| TexturePixels [Color] GLSize GLSize Int | |
| TextureURL String Int |
Instances
data LoadedTexture Source
Constructors
| LoadedTexture GLSize GLSize Texture |
A set of attributes and indices.
A static or dinamic geometry.
data Object gs is where Source
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, Objects 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.
Constructors
| 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'' |