blob: 6e6bfb65ac2105ab23bf35324c0a90ca87bba856 (
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
|