GPipe-Core-0.2.3.0: Typesafe functional GPU graphics programming
Safe HaskellNone
LanguageHaskell2010

Graphics.GPipe.Internal.GeometryStream

Documentation

newtype ToGeometry a b Source #

Constructors

ToGeometry (Kleisli (State (Int, Int)) a b) 

Instances

Instances details
Arrow ToGeometry Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

arr :: (b -> c) -> ToGeometry b c #

first :: ToGeometry b c -> ToGeometry (b, d) (c, d) #

second :: ToGeometry b c -> ToGeometry (d, b) (d, c) #

(***) :: ToGeometry b c -> ToGeometry b' c' -> ToGeometry (b, b') (c, c') #

(&&&) :: ToGeometry b c -> ToGeometry b c' -> ToGeometry b (c, c') #

Category ToGeometry Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

id :: forall (a :: k). ToGeometry a a #

(.) :: forall (b :: k) (c :: k) (a :: k). ToGeometry b c -> ToGeometry a b -> ToGeometry a c #

newtype ToAnotherVertex a b Source #

Constructors

ToAnotherVertex (Kleisli (State (Int, Int)) (Int, a) b) 

Instances

Instances details
Arrow ToAnotherVertex Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

arr :: (b -> c) -> ToAnotherVertex b c #

first :: ToAnotherVertex b c -> ToAnotherVertex (b, d) (c, d) #

second :: ToAnotherVertex b c -> ToAnotherVertex (d, b) (d, c) #

(***) :: ToAnotherVertex b c -> ToAnotherVertex b' c' -> ToAnotherVertex (b, b') (c, c') #

(&&&) :: ToAnotherVertex b c -> ToAnotherVertex b c' -> ToAnotherVertex b (c, c') #

Category ToAnotherVertex Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

id :: forall (a :: k). ToAnotherVertex a a #

(.) :: forall (b :: k) (c :: k) (a :: k). ToAnotherVertex b c -> ToAnotherVertex a b -> ToAnotherVertex a c #

class AnotherVertexInput a where Source #

Instances

Instances details
AnotherVertexInput () Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput VBool Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput VWord Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput VInt Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput VFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput NoPerspectiveVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput FlatVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput a => AnotherVertexInput (Plucker a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput a => AnotherVertexInput (Quaternion a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput a => AnotherVertexInput (V0 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput a => AnotherVertexInput (V4 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput a => AnotherVertexInput (V3 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput a => AnotherVertexInput (V2 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherVertexInput a => AnotherVertexInput (V1 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(AnotherVertexInput a, AnotherVertexInput b) => AnotherVertexInput (a, b) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toAnotherVertex :: ToAnotherVertex (a, b) (a, b) Source #

(AnotherVertexInput a, AnotherVertexInput b, AnotherVertexInput c) => AnotherVertexInput (a, b, c) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toAnotherVertex :: ToAnotherVertex (a, b, c) (a, b, c) Source #

(AnotherVertexInput a, AnotherVertexInput b, AnotherVertexInput c, AnotherVertexInput d) => AnotherVertexInput (a, b, c, d) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toAnotherVertex :: ToAnotherVertex (a, b, c, d) (a, b, c, d) Source #

(AnotherVertexInput a, AnotherVertexInput b, AnotherVertexInput c, AnotherVertexInput d, AnotherVertexInput e) => AnotherVertexInput (a, b, c, d, e) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toAnotherVertex :: ToAnotherVertex (a, b, c, d, e) (a, b, c, d, e) Source #

(AnotherVertexInput a, AnotherVertexInput b, AnotherVertexInput c, AnotherVertexInput d, AnotherVertexInput e, AnotherVertexInput f) => AnotherVertexInput (a, b, c, d, e, f) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toAnotherVertex :: ToAnotherVertex (a, b, c, d, e, f) (a, b, c, d, e, f) Source #

(AnotherVertexInput a, AnotherVertexInput b, AnotherVertexInput c, AnotherVertexInput d, AnotherVertexInput e, AnotherVertexInput f, AnotherVertexInput g) => AnotherVertexInput (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toAnotherVertex :: ToAnotherVertex (a, b, c, d, e, f, g) (a, b, c, d, e, f, g) Source #

makeAnotherVertex :: String -> SType -> (b -> ExprM String) -> (S c a -> b) -> ToAnotherVertex b b Source #

geometrize :: forall p a s os f. GeometryInput p a => PrimitiveStream p a -> Shader os s (GeometryStream (Geometry p a)) Source #

class FragmentInput a => GeometryExplosive a where Source #

Instances

Instances details
GeometryExplosive () Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive VBool Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive VWord Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive VInt Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive VFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive NoPerspectiveVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive FlatVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive a => GeometryExplosive (V0 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive a => GeometryExplosive (V4 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive a => GeometryExplosive (V3 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive a => GeometryExplosive (V2 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

GeometryExplosive a => GeometryExplosive (V1 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(GeometryExplosive a, GeometryExplosive b) => GeometryExplosive (a, b) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(GeometryExplosive a, GeometryExplosive b, GeometryExplosive c) => GeometryExplosive (a, b, c) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

exploseGeometry :: (a, b, c) -> Int -> ExprM Int Source #

declareGeometry :: (a, b, c) -> State Int (GlobDeclM ()) Source #

enumerateVaryings :: (a, b, c) -> State Int [String] Source #

(GeometryExplosive a, GeometryExplosive b, GeometryExplosive c, GeometryExplosive d) => GeometryExplosive (a, b, c, d) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

exploseGeometry :: (a, b, c, d) -> Int -> ExprM Int Source #

declareGeometry :: (a, b, c, d) -> State Int (GlobDeclM ()) Source #

enumerateVaryings :: (a, b, c, d) -> State Int [String] Source #

(GeometryExplosive a, GeometryExplosive b, GeometryExplosive c, GeometryExplosive d, GeometryExplosive e) => GeometryExplosive (a, b, c, d, e) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

exploseGeometry :: (a, b, c, d, e) -> Int -> ExprM Int Source #

declareGeometry :: (a, b, c, d, e) -> State Int (GlobDeclM ()) Source #

enumerateVaryings :: (a, b, c, d, e) -> State Int [String] Source #

(GeometryExplosive a, GeometryExplosive b, GeometryExplosive c, GeometryExplosive d, GeometryExplosive e, GeometryExplosive f) => GeometryExplosive (a, b, c, d, e, f) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

exploseGeometry :: (a, b, c, d, e, f) -> Int -> ExprM Int Source #

declareGeometry :: (a, b, c, d, e, f) -> State Int (GlobDeclM ()) Source #

enumerateVaryings :: (a, b, c, d, e, f) -> State Int [String] Source #

(GeometryExplosive a, GeometryExplosive b, GeometryExplosive c, GeometryExplosive d, GeometryExplosive e, GeometryExplosive f, GeometryExplosive g) => GeometryExplosive (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

exploseGeometry :: (a, b, c, d, e, f, g) -> Int -> ExprM Int Source #

declareGeometry :: (a, b, c, d, e, f, g) -> State Int (GlobDeclM ()) Source #

enumerateVaryings :: (a, b, c, d, e, f, g) -> State Int [String] Source #

defaultExploseGeometry :: (Show b, Num b) => (t -> S x a) -> t -> b -> SNMapReaderT [String] (StateT ExprState (WriterT String (StateT NextTempVar IO))) b Source #

defaultDeclareGeometry :: forall (m :: Type -> Type) a p. (Monad m, Num a, Show a) => SType -> p -> StateT a m (WriterT String Identity ()) Source #

defaultEnumerateVaryings :: forall (m :: Type -> Type) a p. (Monad m, Num a, Show a) => p -> StateT a m [[Char]] Source #

newtype ToAnotherFragment a b Source #

Constructors

ToAnotherFragment (Kleisli (State Int) a b) 

Instances

Instances details
Arrow ToAnotherFragment Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

arr :: (b -> c) -> ToAnotherFragment b c #

first :: ToAnotherFragment b c -> ToAnotherFragment (b, d) (c, d) #

second :: ToAnotherFragment b c -> ToAnotherFragment (d, b) (d, c) #

(***) :: ToAnotherFragment b c -> ToAnotherFragment b' c' -> ToAnotherFragment (b, b') (c, c') #

(&&&) :: ToAnotherFragment b c -> ToAnotherFragment b c' -> ToAnotherFragment b (c, c') #

Category ToAnotherFragment Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

id :: forall (a :: k). ToAnotherFragment a a #

(.) :: forall (b :: k) (c :: k) (a :: k). ToAnotherFragment b c -> ToAnotherFragment a b -> ToAnotherFragment a c #

class FragmentInput a => AnotherFragmentInput a where Source #

Instances

Instances details
AnotherFragmentInput () Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput VBool Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput VWord Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput VInt Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput VFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput NoPerspectiveVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput FlatVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput a => AnotherFragmentInput (Plucker a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput a => AnotherFragmentInput (Quaternion a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput a => AnotherFragmentInput (V0 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput a => AnotherFragmentInput (V4 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput a => AnotherFragmentInput (V3 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput a => AnotherFragmentInput (V2 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

AnotherFragmentInput a => AnotherFragmentInput (V1 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(AnotherFragmentInput a, AnotherFragmentInput b) => AnotherFragmentInput (a, b) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(AnotherFragmentInput (f a), AnotherFragmentInput a, FragmentFormat (f a) ~ f (FragmentFormat a)) => AnotherFragmentInput (Point f a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(AnotherFragmentInput a, AnotherFragmentInput b, AnotherFragmentInput c) => AnotherFragmentInput (a, b, c) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toFragment2 :: ToAnotherFragment (a, b, c) (FragmentFormat (a, b, c)) Source #

(AnotherFragmentInput a, AnotherFragmentInput b, AnotherFragmentInput c, AnotherFragmentInput d) => AnotherFragmentInput (a, b, c, d) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toFragment2 :: ToAnotherFragment (a, b, c, d) (FragmentFormat (a, b, c, d)) Source #

(AnotherFragmentInput a, AnotherFragmentInput b, AnotherFragmentInput c, AnotherFragmentInput d, AnotherFragmentInput e) => AnotherFragmentInput (a, b, c, d, e) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toFragment2 :: ToAnotherFragment (a, b, c, d, e) (FragmentFormat (a, b, c, d, e)) Source #

(AnotherFragmentInput a, AnotherFragmentInput b, AnotherFragmentInput c, AnotherFragmentInput d, AnotherFragmentInput e, AnotherFragmentInput f) => AnotherFragmentInput (a, b, c, d, e, f) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toFragment2 :: ToAnotherFragment (a, b, c, d, e, f) (FragmentFormat (a, b, c, d, e, f)) Source #

(AnotherFragmentInput a, AnotherFragmentInput b, AnotherFragmentInput c, AnotherFragmentInput d, AnotherFragmentInput e, AnotherFragmentInput f, AnotherFragmentInput g) => AnotherFragmentInput (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

toFragment2 :: ToAnotherFragment (a, b, c, d, e, f, g) (FragmentFormat (a, b, c, d, e, f, g)) Source #

class AnotherFragmentInput a => FragmentCreator a where Source #

Instances

Instances details
FragmentCreator () Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator VBool Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator VWord Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator VInt Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator VFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator NoPerspectiveVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator FlatVFloat Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator a => FragmentCreator (Plucker a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator a => FragmentCreator (Quaternion a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator a => FragmentCreator (V0 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator a => FragmentCreator (V4 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator a => FragmentCreator (V3 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator a => FragmentCreator (V2 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

FragmentCreator a => FragmentCreator (V1 a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(FragmentCreator a, FragmentCreator b) => FragmentCreator (a, b) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

createFragment :: State Int (a, b) Source #

(FragmentCreator (f a), FragmentCreator a, FragmentFormat (f a) ~ f (FragmentFormat a)) => FragmentCreator (Point f a) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

(FragmentCreator a, FragmentCreator b, FragmentCreator c) => FragmentCreator (a, b, c) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

createFragment :: State Int (a, b, c) Source #

(FragmentCreator a, FragmentCreator b, FragmentCreator c, FragmentCreator d) => FragmentCreator (a, b, c, d) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

createFragment :: State Int (a, b, c, d) Source #

(FragmentCreator a, FragmentCreator b, FragmentCreator c, FragmentCreator d, FragmentCreator e) => FragmentCreator (a, b, c, d, e) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

createFragment :: State Int (a, b, c, d, e) Source #

(FragmentCreator a, FragmentCreator b, FragmentCreator c, FragmentCreator d, FragmentCreator e, FragmentCreator f) => FragmentCreator (a, b, c, d, e, f) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

createFragment :: State Int (a, b, c, d, e, f) Source #

(FragmentCreator a, FragmentCreator b, FragmentCreator c, FragmentCreator d, FragmentCreator e, FragmentCreator f, FragmentCreator g) => FragmentCreator (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Graphics.GPipe.Internal.GeometryStream

Methods

createFragment :: State Int (a, b, c, d, e, f, g) Source #