blob: 489bc54bbb154b0678237b2af10b80c43e06cd0c (
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" Triangle (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
|