summaryrefslogtreecommitdiff
path: root/testdata/reduce01.lc
blob: b5c2636c474207fc4db1ee0f78c5a475fd5a21bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
data AB = A | B

render choice = let
  emptyFB           = FrameBuffer ((colorImage1 (V4 0.0 0.0 0.4 1.0)))
  rasterCtx         = TriangleCtx CullNone PolygonFill NoOffset LastVertex
  fragmentCtx       = ((ColorOp NoBlending (V4 True True True True)))
  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 -> v
                            B -> V4 1.0 0.0 0.0 1.0))
  frame             = accumulate fragmentCtx fragmentShader fragmentStream emptyFB
 in ScreenOut frame

data Out = Out (AB -> Output)

out = Out render

main = let
  Out o = out
  in o A