blob: 1a6a710cc1ec4b3b116824624d1be5f8faeb500c (
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])
|