summaryrefslogtreecommitdiff
path: root/testdata/reduce05.lc
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])