diff options
-rw-r--r-- | TODO | 9 | ||||
-rw-r--r-- | lc/Builtins.lc | 5 | ||||
-rw-r--r-- | testdata/accept/Builtins.out | 112 | ||||
-rw-r--r-- | testdata/accept/helloWorld.lc | 2 |
4 files changed, 104 insertions, 24 deletions
@@ -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 | |||
205 | include also somewhere: | 207 | include 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 | |||
577 | transformFragmentsRastDepth f = ShadedFragmentStream (FragmentShaderRastDepth f) | 577 | transformFragmentsRastDepth f = ShadedFragmentStream (FragmentShaderRastDepth f) |
578 | accumulateWith ctx x = (ctx, x) | 578 | accumulateWith ctx x = (ctx, x) |
579 | overlay cl (ctx, str) = Accumulate ctx str cl | 579 | overlay cl (ctx, str) = Accumulate ctx str cl |
580 | transformVertices f s = Transform (\v -> VertexOut (f v) 1 () (Smooth v)) s | 580 | transformVertices0 f () s = Transform (\v -> VertexOut (f v) 1 () ()) s |
581 | transformVertices1 f g1 s = Transform (\v -> VertexOut (f v) 1 () (Smooth (g1 v))) s | ||
582 | transformVertices2 f (g1, g2) s = Transform (\v -> VertexOut (f v) 1 () (Smooth (g1 v), Smooth (g2 v))) s | ||
583 | transformVertices3 f (g1, g2, g3) s = Transform (\v -> VertexOut (f v) 1 () (Smooth (g1 v), Smooth (g2 v), Smooth (g3 v))) s | ||
581 | renderFrame = ScreenOut | 584 | renderFrame = ScreenOut |
582 | imageFrame = FrameBuffer | 585 | imageFrame = FrameBuffer |
583 | emptyDepthImage = DepthImage @1 | 586 | emptyDepthImage = 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) |