blob: d4ea9268940c85a48811a8a62899e797cf91871a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
data AB = A | B
render fb choice = let
rasterCtx = TriangleCtx CullNone PolygonFill NoOffset LastVertex
mask = case choice of
A -> V4 False True False False
B -> V4 True False False False
fragmentCtx = ((ColorOp NoBlending mask))
vertexShader = \((v)) -> (v, v)
vertexStream = fetch "stream4" ((Attribute "position4" :: Vec 4 Float))
primitiveStream = mapPrimitives vertexShader vertexStream
fragmentStream = rasterizePrimitives rasterCtx ((Smooth)) primitiveStream
fragmentShader = \((v)) -> ((case choice of
A -> V4 0.0 1.0 0.0 1.0
B -> V4 1.0 0.0 0.0 1.0))
frame = accumulate fragmentCtx fragmentShader fragmentStream fb
in frame
emptyFB = FrameBuffer ((colorImage1 (V4 0.0 0.0 1.0 1.0)))
main = ScreenOut (foldl' render emptyFB [A,B])
|