summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO9
-rw-r--r--lc/Builtins.lc5
-rw-r--r--testdata/accept/Builtins.out112
-rw-r--r--testdata/accept/helloWorld.lc2
4 files changed, 104 insertions, 24 deletions
diff --git a/TODO b/TODO
index 478b8163..ca43782e 100644
--- a/TODO
+++ b/TODO
@@ -202,6 +202,15 @@ plan the route, ...
202- domain-free compiler (move all lambacube specific parts into libraries & backend) 202- domain-free compiler (move all lambacube specific parts into libraries & backend)
203- compiler: Agda modelling 203- compiler: Agda modelling
204 204
205--------------------------------------------------------------------------------------------
206
205include also somewhere: 207include also somewhere:
206 - user supplied cpu values like color values and rendering context 208 - user supplied cpu values like color values and rendering context
209 - move VertexOut's first two arguments to Rasterize
210 & transformVertices1 (scale 0.5 . (projmat *.)) id
211 & rasterize (TriangleCtx CullNone PolygonFill NoOffset LastVertex)
212 -->
213 & transformVertices id
214 & rasterize (scale 0.5 . (projmat *.)) (TriangleCtx CullNone PolygonFill NoOffset LastVertex)
215 - eliminate VertexOut
207 216
diff --git a/lc/Builtins.lc b/lc/Builtins.lc
index 88b90d57..502f040b 100644
--- a/lc/Builtins.lc
+++ b/lc/Builtins.lc
@@ -577,7 +577,10 @@ filterFragmentStream = FilteredFragmentStream
577transformFragmentsRastDepth f = ShadedFragmentStream (FragmentShaderRastDepth f) 577transformFragmentsRastDepth f = ShadedFragmentStream (FragmentShaderRastDepth f)
578accumulateWith ctx x = (ctx, x) 578accumulateWith ctx x = (ctx, x)
579overlay cl (ctx, str) = Accumulate ctx str cl 579overlay cl (ctx, str) = Accumulate ctx str cl
580transformVertices f s = Transform (\v -> VertexOut (f v) 1 () (Smooth v)) s 580transformVertices0 f () s = Transform (\v -> VertexOut (f v) 1 () ()) s
581transformVertices1 f g1 s = Transform (\v -> VertexOut (f v) 1 () (Smooth (g1 v))) s
582transformVertices2 f (g1, g2) s = Transform (\v -> VertexOut (f v) 1 () (Smooth (g1 v), Smooth (g2 v))) s
583transformVertices3 f (g1, g2, g3) s = Transform (\v -> VertexOut (f v) 1 () (Smooth (g1 v), Smooth (g2 v), Smooth (g3 v))) s
581renderFrame = ScreenOut 584renderFrame = ScreenOut
582imageFrame = FrameBuffer 585imageFrame = FrameBuffer
583emptyDepthImage = DepthImage @1 586emptyDepthImage = DepthImage @1
diff --git a/testdata/accept/Builtins.out b/testdata/accept/Builtins.out
index a820c70a..9a1dbd2f 100644
--- a/testdata/accept/Builtins.out
+++ b/testdata/accept/Builtins.out
@@ -2071,25 +2071,93 @@ tooltips:
2071./testdata/accept/Builtins.lc 579:13-579:21 'Tuple2 V1 ('ShadedFragmentStream V0 ('FragOps V1)) 2071./testdata/accept/Builtins.lc 579:13-579:21 'Tuple2 V1 ('ShadedFragmentStream V0 ('FragOps V1))
2072./testdata/accept/Builtins.lc 579:13-579:21 V3 2072./testdata/accept/Builtins.lc 579:13-579:21 V3
2073./testdata/accept/Builtins.lc 579:1-579:8 {a} -> {b:'Nat} -> 'FrameBuffer b ('FragOps a) -> 'Tuple2 a ('ShadedFragmentStream b ('FragOps a)) -> 'FrameBuffer b ('FragOps a) 2073./testdata/accept/Builtins.lc 579:1-579:8 {a} -> {b:'Nat} -> 'FrameBuffer b ('FragOps a) -> 'Tuple2 a ('ShadedFragmentStream b ('FragOps a)) -> 'FrameBuffer b ('FragOps a)
2074./testdata/accept/Builtins.lc 580:26-580:35 {a:'PrimitiveType} -> {b} -> {c} -> (b -> 'VertexOut c) -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) c 2074./testdata/accept/Builtins.lc 580:29-580:69 V0
2075./testdata/accept/Builtins.lc 580:37-580:74 V1 -> 'VertexOut V1 2075./testdata/accept/Builtins.lc 580:29-580:38 {a:'PrimitiveType} -> {b} -> {c} -> (b -> 'VertexOut c) -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) c
2076./testdata/accept/Builtins.lc 580:43-580:73 'VertexOut V1 2076./testdata/accept/Builtins.lc 580:40-580:69 V1 -> 'VertexOut V1
2077./testdata/accept/Builtins.lc 580:43-580:52 {a} -> {b} -> {c : a ~ 'FTRepr' b} -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Float -> 'Tuple0 -> b -> 'VertexOut a 2077./testdata/accept/Builtins.lc 580:46-580:69 'VertexOut V1
2078./testdata/accept/Builtins.lc 580:56-580:57 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) 2078./testdata/accept/Builtins.lc 580:46-580:55 {a} -> {b} -> {c : a ~ 'FTRepr' b} -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Float -> 'Tuple0 -> b -> 'VertexOut a
2079./testdata/accept/Builtins.lc 580:56-580:57 V6 2079./testdata/accept/Builtins.lc 580:59-580:60 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
2080./testdata/accept/Builtins.lc 580:59-580:60 'Float 2080./testdata/accept/Builtins.lc 580:59-580:60 V6
2081./testdata/accept/Builtins.lc 580:59-580:60 'Int 2081./testdata/accept/Builtins.lc 580:62-580:63 'Float
2082./testdata/accept/Builtins.lc 580:61-580:63 'Tuple0 2082./testdata/accept/Builtins.lc 580:62-580:63 'Int
2083./testdata/accept/Builtins.lc 580:65-580:73 V0 2083./testdata/accept/Builtins.lc 580:64-580:66 'Tuple0
2084./testdata/accept/Builtins.lc 580:65-580:71 {a} -> {b : 'Floating a} -> a -> 'Interpolated a 2084./testdata/accept/Builtins.lc 580:67-580:69 V0
2085./testdata/accept/Builtins.lc 580:72-580:73 V1 2085./testdata/accept/Builtins.lc 580:67-580:69 'Tuple0
2086./testdata/accept/Builtins.lc 580:72-580:73 V4 2086./testdata/accept/Builtins.lc 580:1-580:19 {a:'PrimitiveType} -> {b} -> (b -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))) -> 'Tuple0 -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) ('FTRepr' 'Tuple0)
2087./testdata/accept/Builtins.lc 580:1-580:18 {a:'PrimitiveType} -> {b} -> {c : 'Floating b} -> (b -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))) -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) b 2087./testdata/accept/Builtins.lc 581:29-581:38 {a:'PrimitiveType} -> {b} -> {c} -> (b -> 'VertexOut c) -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) c
2088./testdata/accept/Builtins.lc 581:15-581:24 {a:'Nat} -> {b} -> 'FrameBuffer a b -> 'Output 2088./testdata/accept/Builtins.lc 581:40-581:82 V1 -> 'VertexOut V1
2089./testdata/accept/Builtins.lc 581:1-581:12 {a:'Nat} -> {b} -> 'FrameBuffer a b -> 'Output 2089./testdata/accept/Builtins.lc 581:46-581:80 'VertexOut V1
2090./testdata/accept/Builtins.lc 582:14-582:25 {a:'Nat} -> {b} -> {c} -> {d : 'SameLayerCounts c} -> {e : 'FrameBuffer a b ~ 'TFFrameBuffer c} -> c -> 'FrameBuffer a b 2090./testdata/accept/Builtins.lc 581:46-581:55 {a} -> {b} -> {c : a ~ 'FTRepr' b} -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Float -> 'Tuple0 -> b -> 'VertexOut a
2091./testdata/accept/Builtins.lc 582:1-582:11 {a:'Nat} -> {b} -> {c} -> {d : 'SameLayerCounts c} -> {e : 'FrameBuffer a b ~ 'TFFrameBuffer c} -> c -> 'FrameBuffer a b 2091./testdata/accept/Builtins.lc 581:59-581:60 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
2092./testdata/accept/Builtins.lc 583:19-583:29 {a:'Nat} -> 'Float -> 'Image a ('Depth 'Float) 2092./testdata/accept/Builtins.lc 581:59-581:60 V6
2093./testdata/accept/Builtins.lc 583:1-583:16 'Float -> 'Image (Succ Zero) ('Depth 'Float) 2093./testdata/accept/Builtins.lc 581:62-581:63 'Float
2094./testdata/accept/Builtins.lc 584:19-584:29 {a:'Nat} -> {b:'Nat} -> {c} -> {d} -> {e : 'Num c} -> {f : d ~ 'VecScalar b c} -> d -> 'Image a ('Color d) 2094./testdata/accept/Builtins.lc 581:62-581:63 'Int
2095./testdata/accept/Builtins.lc 584:1-584:16 {a:'Nat} -> {b} -> {c} -> {d : 'Num b} -> {e : c ~ 'VecScalar a b} -> c -> 'Image (Succ Zero) ('Color c) 2095./testdata/accept/Builtins.lc 581:64-581:66 'Tuple0
2096./testdata/accept/Builtins.lc 581:68-581:80 V0
2097./testdata/accept/Builtins.lc 581:68-581:74 {a} -> {b : 'Floating a} -> a -> 'Interpolated a
2098./testdata/accept/Builtins.lc 581:79-581:80 V1
2099./testdata/accept/Builtins.lc 581:79-581:80 V7
2100./testdata/accept/Builtins.lc 581:1-581:19 {a:'PrimitiveType} -> {b} -> {c} -> {d : 'Floating c} -> (b -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))) -> b->c -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) c
2101./testdata/accept/Builtins.lc 582:35-582:103 V2 -> V2->V2
2102./testdata/accept/Builtins.lc 582:35-582:103 V2->V2
2103./testdata/accept/Builtins.lc 582:35-582:103 V2
2104./testdata/accept/Builtins.lc 582:35-582:44 {a:'PrimitiveType} -> {b} -> {c} -> (b -> 'VertexOut c) -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) c
2105./testdata/accept/Builtins.lc 582:46-582:103 V1 -> 'VertexOut V1
2106./testdata/accept/Builtins.lc 582:52-582:103 'VertexOut V1
2107./testdata/accept/Builtins.lc 582:52-582:61 {a} -> {b} -> {c : a ~ 'FTRepr' b} -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Float -> 'Tuple0 -> b -> 'VertexOut a
2108./testdata/accept/Builtins.lc 582:65-582:66 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
2109./testdata/accept/Builtins.lc 582:65-582:66 V6
2110./testdata/accept/Builtins.lc 582:68-582:69 'Float
2111./testdata/accept/Builtins.lc 582:68-582:69 'Int
2112./testdata/accept/Builtins.lc 582:70-582:72 'Tuple0
2113./testdata/accept/Builtins.lc 582:73-582:103 V0
2114./testdata/accept/Builtins.lc 582:73-582:103 {a} -> {b} -> a -> b -> 'Tuple2 a b
2115./testdata/accept/Builtins.lc 582:74-582:86 V1
2116./testdata/accept/Builtins.lc 582:74-582:80 {a} -> {b : 'Floating a} -> a -> 'Interpolated a
2117./testdata/accept/Builtins.lc 582:85-582:86 V1
2118./testdata/accept/Builtins.lc 582:85-582:86 V9
2119./testdata/accept/Builtins.lc 582:89-582:101 V2
2120./testdata/accept/Builtins.lc 582:89-582:95 {a} -> {b : 'Floating a} -> a -> 'Interpolated a
2121./testdata/accept/Builtins.lc 582:100-582:101 V1
2122./testdata/accept/Builtins.lc 582:100-582:101 V9
2123./testdata/accept/Builtins.lc 582:23-582:29 'Tuple2 V4->V4 V4->V2
2124./testdata/accept/Builtins.lc 582:23-582:29 V8
2125./testdata/accept/Builtins.lc 582:1-582:19 {a:'PrimitiveType} -> {b} -> {c} -> {d : 'Floating c} -> {e} -> {f : 'Floating e} -> (b -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))) -> 'Tuple2 b->c b->e -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) ('Tuple2 c e)
2126./testdata/accept/Builtins.lc 583:39-583:122 V3 -> V3 -> V3->V3
2127./testdata/accept/Builtins.lc 583:39-583:122 V3 -> V3->V3
2128./testdata/accept/Builtins.lc 583:39-583:122 V3->V3
2129./testdata/accept/Builtins.lc 583:39-583:122 V3
2130./testdata/accept/Builtins.lc 583:39-583:48 {a:'PrimitiveType} -> {b} -> {c} -> (b -> 'VertexOut c) -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) c
2131./testdata/accept/Builtins.lc 583:50-583:122 V1 -> 'VertexOut V1
2132./testdata/accept/Builtins.lc 583:56-583:122 'VertexOut V1
2133./testdata/accept/Builtins.lc 583:56-583:65 {a} -> {b} -> {c : a ~ 'FTRepr' b} -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero)))) -> 'Float -> 'Tuple0 -> b -> 'VertexOut a
2134./testdata/accept/Builtins.lc 583:69-583:70 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))
2135./testdata/accept/Builtins.lc 583:69-583:70 V6
2136./testdata/accept/Builtins.lc 583:72-583:73 'Float
2137./testdata/accept/Builtins.lc 583:72-583:73 'Int
2138./testdata/accept/Builtins.lc 583:74-583:76 'Tuple0
2139./testdata/accept/Builtins.lc 583:77-583:122 V0
2140./testdata/accept/Builtins.lc 583:77-583:122 {a} -> {b} -> {c} -> a -> b -> c -> 'Tuple3 a b c
2141./testdata/accept/Builtins.lc 583:78-583:90 V2
2142./testdata/accept/Builtins.lc 583:78-583:84 {a} -> {b : 'Floating a} -> a -> 'Interpolated a
2143./testdata/accept/Builtins.lc 583:89-583:90 V1
2144./testdata/accept/Builtins.lc 583:89-583:90 V10
2145./testdata/accept/Builtins.lc 583:93-583:105 V3
2146./testdata/accept/Builtins.lc 583:93-583:99 {a} -> {b : 'Floating a} -> a -> 'Interpolated a
2147./testdata/accept/Builtins.lc 583:104-583:105 V1
2148./testdata/accept/Builtins.lc 583:104-583:105 V11
2149./testdata/accept/Builtins.lc 583:108-583:120 V4
2150./testdata/accept/Builtins.lc 583:108-583:114 {a} -> {b : 'Floating a} -> a -> 'Interpolated a
2151./testdata/accept/Builtins.lc 583:119-583:120 V1
2152./testdata/accept/Builtins.lc 583:119-583:120 V11
2153./testdata/accept/Builtins.lc 583:23-583:33 'Tuple3 V6->V6 V6->V4 V6->V2
2154./testdata/accept/Builtins.lc 583:23-583:33 V10
2155./testdata/accept/Builtins.lc 583:1-583:19 {a:'PrimitiveType} -> {b} -> {c} -> {d : 'Floating c} -> {e} -> {f : 'Floating e} -> {g} -> {h : 'Floating g} -> (b -> 'VecS 'Float (Succ (Succ (Succ (Succ Zero))))) -> 'Tuple3 b->c b->e b->g -> 'VertexStream a b -> 'PrimitiveStream a (Succ Zero) ('Tuple3 c e g)
2156./testdata/accept/Builtins.lc 584:15-584:24 {a:'Nat} -> {b} -> 'FrameBuffer a b -> 'Output
2157./testdata/accept/Builtins.lc 584:1-584:12 {a:'Nat} -> {b} -> 'FrameBuffer a b -> 'Output
2158./testdata/accept/Builtins.lc 585:14-585:25 {a:'Nat} -> {b} -> {c} -> {d : 'SameLayerCounts c} -> {e : 'FrameBuffer a b ~ 'TFFrameBuffer c} -> c -> 'FrameBuffer a b
2159./testdata/accept/Builtins.lc 585:1-585:11 {a:'Nat} -> {b} -> {c} -> {d : 'SameLayerCounts c} -> {e : 'FrameBuffer a b ~ 'TFFrameBuffer c} -> c -> 'FrameBuffer a b
2160./testdata/accept/Builtins.lc 586:19-586:29 {a:'Nat} -> 'Float -> 'Image a ('Depth 'Float)
2161./testdata/accept/Builtins.lc 586:1-586:16 'Float -> 'Image (Succ Zero) ('Depth 'Float)
2162./testdata/accept/Builtins.lc 587:19-587:29 {a:'Nat} -> {b:'Nat} -> {c} -> {d} -> {e : 'Num c} -> {f : d ~ 'VecScalar b c} -> d -> 'Image a ('Color d)
2163./testdata/accept/Builtins.lc 587:1-587:16 {a:'Nat} -> {b} -> {c} -> {d : 'Num b} -> {e : c ~ 'VecScalar a b} -> c -> 'Image (Succ Zero) ('Color c)
diff --git a/testdata/accept/helloWorld.lc b/testdata/accept/helloWorld.lc
index f99d3088..9376ddd0 100644
--- a/testdata/accept/helloWorld.lc
+++ b/testdata/accept/helloWorld.lc
@@ -5,7 +5,7 @@ makeFrame (projmat :: Mat 4 4 Float)
5 = imageFrame (emptyDepthImage 1000, emptyColorImage navy) 5 = imageFrame (emptyDepthImage 1000, emptyColorImage navy)
6 `overlay` 6 `overlay`
7 vertexstream 7 vertexstream
8 & transformVertices (scale 0.5 . (projmat *.)) 8 & transformVertices1 (scale 0.5 . (projmat *.)) id
9 & rasterize (TriangleCtx CullNone PolygonFill NoOffset LastVertex) 9 & rasterize (TriangleCtx CullNone PolygonFill NoOffset LastVertex)
10 & filterFragmentStream PassAll 10 & filterFragmentStream PassAll
11 & transformFragmentsRastDepth (\x -> x) 11 & transformFragmentsRastDepth (\x -> x)