luminance-0.7: Type-safe, type-level and stateless graphics framework

Copyright(C) 2015 Dimitri Sabadie
LicenseBSD3
MaintainerDimitri Sabadie <dimitri.sabadie@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Graphics.Luminance.Vertex

Contents

Description

 

Synopsis

Vertex components

data V n a :: k -> * -> *

Instances

FunctorWithIndex Int (V k n) 
FoldableWithIndex Int (V k n) 
TraversableWithIndex Int (V k n) 
(Dim k n, Unbox a) => Vector Vector (V k n a) 
Dim k n => Dim * (V k n a) 
(Dim k n, Unbox a) => MVector MVector (V k n a) 
Uniform [V Nat 2 Float] Source 
Uniform [V Nat 2 Int32] Source 
Uniform [V Nat 2 Word32] Source 
Uniform [V Nat 3 Float] Source 
Uniform [V Nat 3 Int32] Source 
Uniform [V Nat 3 Word32] Source 
Uniform [V Nat 4 Float] Source 
Uniform [V Nat 4 Int32] Source 
Uniform [V Nat 4 Word32] Source 
Dim k n => Monad (V k n) 
Functor (V k n) 
Dim k n => MonadFix (V k n) 
Dim k n => Applicative (V k n) 
Foldable (V k n) 
Traversable (V k n) 
Generic1 (V k n) 
Dim k n => Distributive (V k n) 
Dim k n => Representable (V k n) 
Dim k n => MonadZip (V k n) 
Dim k n => Serial1 (V k n) 
Dim k n => Metric (V k n) 
Dim k n => Additive (V k n) 
Apply (V k n) 
Bind (V k n) 
Dim k n => Eq1 (V k n) 
Dim k n => Ord1 (V k n) 
Dim k n => Read1 (V k n) 
Dim k n => Show1 (V k n) 
(Bounded a, Dim k n) => Bounded (V k n a) 
Eq a => Eq (V k n a) 
(Dim k n, Floating a) => Floating (V k n a) 
(Dim k n, Fractional a) => Fractional (V k n a) 
(Typeable (* -> *) (V k n), Typeable * (V k n a), Dim k n, Data a) => Data (V k n a) 
(Dim k n, Num a) => Num (V k n a) 
Ord a => Ord (V k n a) 
Read a => Read (V k n a) 
Show a => Show (V k n a) 
Generic (V k n a) 
(Dim k n, Storable a) => Storable (V k n a) 
(Dim k n, Binary a) => Binary (V k n a) 
(Dim k n, Serial a) => Serial (V k n a) 
(Dim k n, Serialize a) => Serialize (V k n a) 
NFData a => NFData (V k n a) 
(Dim k n, Unbox a) => Unbox (V k n a) 
Ixed (V k n a) 
(Dim k n, Epsilon a) => Epsilon (V k n a) 
Uniform (V Nat 2 Float) Source 
Uniform (V Nat 2 Int32) Source 
Uniform (V Nat 2 Word32) Source 
Uniform (V Nat 3 Float) Source 
Uniform (V Nat 3 Int32) Source 
Uniform (V Nat 3 Word32) Source 
Uniform (V Nat 4 Float) Source 
Uniform (V Nat 4 Int32) Source 
Uniform (V Nat 4 Word32) Source 
(KnownNat n, Storable a, VertexAttribute a) => Vertex (V Nat n a) Source 
Each (V k n a) (V k n b) a b 
data MVector s (V k n a) = MV_VN !Int !(MVector s a) 
type Rep1 (V k n) = D1 D1V (C1 C1_0V (S1 S1_0_0V (Rec1 Vector))) 
type Rep (V k n) = Int 
type Rep (V k n a) = D1 D1V (C1 C1_0V (S1 S1_0_0V (Rec0 (Vector a)))) 
data Vector (V k n a) = V_VN !Int !(Vector a) 
type Index (V k n a) = Int 
type IxValue (V k n a) = a 

vec2 :: a -> a -> V 2 a Source

Create a new V 2.

vec3 :: a -> a -> a -> V 3 a Source

Create a new V 3.

vec4 :: a -> a -> a -> a -> V 4 a Source

Create a new V 4.

class VertexAttribute a Source

A vertex might have several attributes. The types of those attributes have to implement the VertexAttribute typeclass in order to be used as vertex attributes.

Minimal complete definition

vertexGLType

Vertex

class Vertex v Source

A vertex has to implement Vertex in order to be used as-is. That typeclass is closed, so you cannot add anymore instances. However, you shouldn’t need to since you can use the already provided types to build up your vertex type.

Minimal complete definition

setFormatV

Instances