Safe Haskell | Safe |
---|---|

Language | Haskell2010 |

- type Shader gs is os = STList gs -> STList is -> STList os
- type Valid gs is os = (StaticList gs, StaticList is, StaticList os, StaticSTList gs, StaticSTList is, StaticSTList os)
- type Member x xs = IsMember x xs ~ True
- class AllTypeable xs
- class Subset xs ys
- type Equal xs ys = And (IsSubset xs ys) (IsSubset ys xs) ~ True
- type family Union xs ys
- type family Insert y xs
- data STList :: [*] -> * where
- stFold :: (forall x. (Typeable x, ShaderType x) => acc -> x -> acc) -> acc -> STList xs -> acc
- staticList :: StaticList xs => Proxy (xs :: [*]) -> (forall x. (Typeable x, ShaderType x) => x -> y) -> [y]
- staticSTList :: StaticSTList xs => Proxy (xs :: [*]) -> (forall x. (Typeable x, ShaderType x) => x -> x) -> STList xs

# Documentation

type Shader gs is os = STList gs -> STList is -> STList os Source

A function from a (heterogeneous) set of uniforms and a set of inputs (attributes or varyings) to a set of outputs (varyings).

type Valid gs is os = (StaticList gs, StaticList is, StaticList os, StaticSTList gs, StaticSTList is, StaticSTList os) Source

The condition for a valid `Shader`

.

class AllTypeable xs Source

AllTypeable ([] *) Source | |

(Typeable * x, AllTypeable xs) => AllTypeable ((:) * x xs) Source |

data STList :: [*] -> * where Source

An heterogeneous set of `ShaderType`

s and `Typeable`

s.

stFold :: (forall x. (Typeable x, ShaderType x) => acc -> x -> acc) -> acc -> STList xs -> acc Source

staticList :: StaticList xs => Proxy (xs :: [*]) -> (forall x. (Typeable x, ShaderType x) => x -> y) -> [y] Source

staticSTList :: StaticSTList xs => Proxy (xs :: [*]) -> (forall x. (Typeable x, ShaderType x) => x -> x) -> STList xs Source