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

Graphics.GPipe.GeometryStream

Synopsis

The data type

Needed to use custom data types with the geometry shader.

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 #

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 #

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 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 [Text] 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 [Text] 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 [Text] 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 [Text] 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 [Text] Source #

Needed for generic functions.

Creating GeometryStream

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

Various GeometryStream operations