354 lines
10 KiB
WebGPU Shading Language
354 lines
10 KiB
WebGPU Shading Language
|
struct buf0 {
|
||
|
resolution : vec2<f32>;
|
||
|
};
|
||
|
|
||
|
var<private> gl_FragCoord : vec4<f32>;
|
||
|
|
||
|
[[group(0), binding(0)]] var<uniform> x_7 : buf0;
|
||
|
|
||
|
var<private> map : array<i32, 256>;
|
||
|
|
||
|
var<private> x_GLF_color : vec4<f32>;
|
||
|
|
||
|
fn main_1() {
|
||
|
var pos : vec2<f32>;
|
||
|
var ipos : vec2<i32>;
|
||
|
var i : i32;
|
||
|
var p : vec2<i32>;
|
||
|
var canwalk : bool;
|
||
|
var v : i32;
|
||
|
var directions : i32;
|
||
|
var j : i32;
|
||
|
var d : i32;
|
||
|
let x_59 : vec4<f32> = gl_FragCoord;
|
||
|
let x_62 : vec2<f32> = x_7.resolution;
|
||
|
pos = (vec2<f32>(x_59.x, x_59.y) / x_62);
|
||
|
let x_65 : f32 = pos.x;
|
||
|
let x_69 : f32 = pos.y;
|
||
|
ipos = vec2<i32>(i32((x_65 * 16.0)), i32((x_69 * 16.0)));
|
||
|
i = 0;
|
||
|
loop {
|
||
|
let x_77 : i32 = i;
|
||
|
if ((x_77 < 256)) {
|
||
|
} else {
|
||
|
break;
|
||
|
}
|
||
|
let x_80 : i32 = i;
|
||
|
map[x_80] = 0;
|
||
|
|
||
|
continuing {
|
||
|
let x_82 : i32 = i;
|
||
|
i = (x_82 + 1);
|
||
|
}
|
||
|
}
|
||
|
p = vec2<i32>(0, 0);
|
||
|
canwalk = true;
|
||
|
v = 0;
|
||
|
loop {
|
||
|
var x_104 : bool;
|
||
|
var x_124 : bool;
|
||
|
var x_144 : bool;
|
||
|
var x_164 : bool;
|
||
|
var x_105_phi : bool;
|
||
|
var x_125_phi : bool;
|
||
|
var x_145_phi : bool;
|
||
|
var x_165_phi : bool;
|
||
|
let x_88 : i32 = v;
|
||
|
v = (x_88 + 1);
|
||
|
directions = 0;
|
||
|
let x_91 : i32 = p.x;
|
||
|
let x_92 : bool = (x_91 > 0);
|
||
|
x_105_phi = x_92;
|
||
|
if (x_92) {
|
||
|
let x_96 : i32 = p.x;
|
||
|
let x_99 : i32 = p.y;
|
||
|
let x_103 : i32 = map[((x_96 - 2) + (x_99 * 16))];
|
||
|
x_104 = (x_103 == 0);
|
||
|
x_105_phi = x_104;
|
||
|
}
|
||
|
let x_105 : bool = x_105_phi;
|
||
|
if (x_105) {
|
||
|
let x_108 : i32 = directions;
|
||
|
directions = (x_108 + 1);
|
||
|
}
|
||
|
let x_111 : i32 = p.y;
|
||
|
let x_112 : bool = (x_111 > 0);
|
||
|
x_125_phi = x_112;
|
||
|
if (x_112) {
|
||
|
let x_116 : i32 = p.x;
|
||
|
let x_118 : i32 = p.y;
|
||
|
let x_123 : i32 = map[(x_116 + ((x_118 - 2) * 16))];
|
||
|
x_124 = (x_123 == 0);
|
||
|
x_125_phi = x_124;
|
||
|
}
|
||
|
let x_125 : bool = x_125_phi;
|
||
|
if (x_125) {
|
||
|
let x_128 : i32 = directions;
|
||
|
directions = (x_128 + 1);
|
||
|
}
|
||
|
let x_131 : i32 = p.x;
|
||
|
let x_132 : bool = (x_131 < 14);
|
||
|
x_145_phi = x_132;
|
||
|
if (x_132) {
|
||
|
let x_136 : i32 = p.x;
|
||
|
let x_139 : i32 = p.y;
|
||
|
let x_143 : i32 = map[((x_136 + 2) + (x_139 * 16))];
|
||
|
x_144 = (x_143 == 0);
|
||
|
x_145_phi = x_144;
|
||
|
}
|
||
|
let x_145 : bool = x_145_phi;
|
||
|
if (x_145) {
|
||
|
let x_148 : i32 = directions;
|
||
|
directions = (x_148 + 1);
|
||
|
}
|
||
|
let x_151 : i32 = p.y;
|
||
|
let x_152 : bool = (x_151 < 14);
|
||
|
x_165_phi = x_152;
|
||
|
if (x_152) {
|
||
|
let x_156 : i32 = p.x;
|
||
|
let x_158 : i32 = p.y;
|
||
|
let x_163 : i32 = map[(x_156 + ((x_158 + 2) * 16))];
|
||
|
x_164 = (x_163 == 0);
|
||
|
x_165_phi = x_164;
|
||
|
}
|
||
|
let x_165 : bool = x_165_phi;
|
||
|
if (x_165) {
|
||
|
let x_168 : i32 = directions;
|
||
|
directions = (x_168 + 1);
|
||
|
}
|
||
|
var x_229 : bool;
|
||
|
var x_242 : bool;
|
||
|
var x_281 : bool;
|
||
|
var x_295 : bool;
|
||
|
var x_335 : bool;
|
||
|
var x_348 : bool;
|
||
|
var x_387 : bool;
|
||
|
var x_400 : bool;
|
||
|
var x_230_phi : bool;
|
||
|
var x_243_phi : bool;
|
||
|
var x_282_phi : bool;
|
||
|
var x_296_phi : bool;
|
||
|
var x_336_phi : bool;
|
||
|
var x_349_phi : bool;
|
||
|
var x_388_phi : bool;
|
||
|
var x_401_phi : bool;
|
||
|
let x_170 : i32 = directions;
|
||
|
if ((x_170 == 0)) {
|
||
|
canwalk = false;
|
||
|
i = 0;
|
||
|
loop {
|
||
|
let x_179 : i32 = i;
|
||
|
if ((x_179 < 8)) {
|
||
|
} else {
|
||
|
break;
|
||
|
}
|
||
|
j = 0;
|
||
|
loop {
|
||
|
let x_186 : i32 = j;
|
||
|
if ((x_186 < 8)) {
|
||
|
} else {
|
||
|
break;
|
||
|
}
|
||
|
let x_189 : i32 = j;
|
||
|
let x_191 : i32 = i;
|
||
|
let x_196 : i32 = map[((x_189 * 2) + ((x_191 * 2) * 16))];
|
||
|
if ((x_196 == 0)) {
|
||
|
let x_200 : i32 = j;
|
||
|
p.x = (x_200 * 2);
|
||
|
let x_203 : i32 = i;
|
||
|
p.y = (x_203 * 2);
|
||
|
canwalk = true;
|
||
|
}
|
||
|
|
||
|
continuing {
|
||
|
let x_206 : i32 = j;
|
||
|
j = (x_206 + 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
continuing {
|
||
|
let x_208 : i32 = i;
|
||
|
i = (x_208 + 1);
|
||
|
}
|
||
|
}
|
||
|
let x_211 : i32 = p.x;
|
||
|
let x_213 : i32 = p.y;
|
||
|
map[(x_211 + (x_213 * 16))] = 1;
|
||
|
} else {
|
||
|
let x_217 : i32 = v;
|
||
|
let x_218 : i32 = directions;
|
||
|
d = (x_217 % x_218);
|
||
|
let x_220 : i32 = directions;
|
||
|
let x_221 : i32 = v;
|
||
|
v = (x_221 + x_220);
|
||
|
let x_223 : i32 = d;
|
||
|
let x_224 : bool = (x_223 >= 0);
|
||
|
x_230_phi = x_224;
|
||
|
if (x_224) {
|
||
|
let x_228 : i32 = p.x;
|
||
|
x_229 = (x_228 > 0);
|
||
|
x_230_phi = x_229;
|
||
|
}
|
||
|
let x_230 : bool = x_230_phi;
|
||
|
x_243_phi = x_230;
|
||
|
if (x_230) {
|
||
|
let x_234 : i32 = p.x;
|
||
|
let x_237 : i32 = p.y;
|
||
|
let x_241 : i32 = map[((x_234 - 2) + (x_237 * 16))];
|
||
|
x_242 = (x_241 == 0);
|
||
|
x_243_phi = x_242;
|
||
|
}
|
||
|
let x_243 : bool = x_243_phi;
|
||
|
if (x_243) {
|
||
|
let x_246 : i32 = d;
|
||
|
d = (x_246 - 1);
|
||
|
let x_249 : i32 = p.x;
|
||
|
let x_251 : i32 = p.y;
|
||
|
map[(x_249 + (x_251 * 16))] = 1;
|
||
|
let x_256 : i32 = p.x;
|
||
|
let x_259 : i32 = p.y;
|
||
|
map[((x_256 - 1) + (x_259 * 16))] = 1;
|
||
|
let x_264 : i32 = p.x;
|
||
|
let x_267 : i32 = p.y;
|
||
|
map[((x_264 - 2) + (x_267 * 16))] = 1;
|
||
|
let x_272 : i32 = p.x;
|
||
|
p.x = (x_272 - 2);
|
||
|
}
|
||
|
let x_275 : i32 = d;
|
||
|
let x_276 : bool = (x_275 >= 0);
|
||
|
x_282_phi = x_276;
|
||
|
if (x_276) {
|
||
|
let x_280 : i32 = p.y;
|
||
|
x_281 = (x_280 > 0);
|
||
|
x_282_phi = x_281;
|
||
|
}
|
||
|
let x_282 : bool = x_282_phi;
|
||
|
x_296_phi = x_282;
|
||
|
if (x_282) {
|
||
|
let x_286 : i32 = p.x;
|
||
|
let x_288 : i32 = p.y;
|
||
|
let x_291 : array<i32, 256> = map;
|
||
|
map = array<i32, 256>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||
|
map = x_291;
|
||
|
let x_294 : i32 = map[(x_286 + ((x_288 - 2) * 16))];
|
||
|
x_295 = (x_294 == 0);
|
||
|
x_296_phi = x_295;
|
||
|
}
|
||
|
let x_296 : bool = x_296_phi;
|
||
|
if (x_296) {
|
||
|
let x_299 : i32 = d;
|
||
|
d = (x_299 - 1);
|
||
|
let x_302 : i32 = p.x;
|
||
|
let x_304 : i32 = p.y;
|
||
|
map[(x_302 + (x_304 * 16))] = 1;
|
||
|
let x_309 : i32 = p.x;
|
||
|
let x_311 : i32 = p.y;
|
||
|
map[(x_309 + ((x_311 - 1) * 16))] = 1;
|
||
|
let x_317 : i32 = p.x;
|
||
|
let x_319 : i32 = p.y;
|
||
|
let x_321 : array<i32, 256> = map;
|
||
|
map = array<i32, 256>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||
|
map = x_321;
|
||
|
map[(x_317 + ((x_319 - 2) * 16))] = 1;
|
||
|
let x_326 : i32 = p.y;
|
||
|
p.y = (x_326 - 2);
|
||
|
}
|
||
|
let x_329 : i32 = d;
|
||
|
let x_330 : bool = (x_329 >= 0);
|
||
|
x_336_phi = x_330;
|
||
|
if (x_330) {
|
||
|
let x_334 : i32 = p.x;
|
||
|
x_335 = (x_334 < 14);
|
||
|
x_336_phi = x_335;
|
||
|
}
|
||
|
let x_336 : bool = x_336_phi;
|
||
|
x_349_phi = x_336;
|
||
|
if (x_336) {
|
||
|
let x_340 : i32 = p.x;
|
||
|
let x_343 : i32 = p.y;
|
||
|
let x_347 : i32 = map[((x_340 + 2) + (x_343 * 16))];
|
||
|
x_348 = (x_347 == 0);
|
||
|
x_349_phi = x_348;
|
||
|
}
|
||
|
let x_349 : bool = x_349_phi;
|
||
|
if (x_349) {
|
||
|
let x_352 : i32 = d;
|
||
|
d = (x_352 - 1);
|
||
|
let x_355 : i32 = p.x;
|
||
|
let x_357 : i32 = p.y;
|
||
|
map[(x_355 + (x_357 * 16))] = 1;
|
||
|
let x_362 : i32 = p.x;
|
||
|
let x_365 : i32 = p.y;
|
||
|
map[((x_362 + 1) + (x_365 * 16))] = 1;
|
||
|
let x_370 : i32 = p.x;
|
||
|
let x_373 : i32 = p.y;
|
||
|
map[((x_370 + 2) + (x_373 * 16))] = 1;
|
||
|
let x_378 : i32 = p.x;
|
||
|
p.x = (x_378 + 2);
|
||
|
}
|
||
|
let x_381 : i32 = d;
|
||
|
let x_382 : bool = (x_381 >= 0);
|
||
|
x_388_phi = x_382;
|
||
|
if (x_382) {
|
||
|
let x_386 : i32 = p.y;
|
||
|
x_387 = (x_386 < 14);
|
||
|
x_388_phi = x_387;
|
||
|
}
|
||
|
let x_388 : bool = x_388_phi;
|
||
|
x_401_phi = x_388;
|
||
|
if (x_388) {
|
||
|
let x_392 : i32 = p.x;
|
||
|
let x_394 : i32 = p.y;
|
||
|
let x_399 : i32 = map[(x_392 + ((x_394 + 2) * 16))];
|
||
|
x_400 = (x_399 == 0);
|
||
|
x_401_phi = x_400;
|
||
|
}
|
||
|
let x_401 : bool = x_401_phi;
|
||
|
if (x_401) {
|
||
|
let x_404 : i32 = d;
|
||
|
d = (x_404 - 1);
|
||
|
let x_407 : i32 = p.x;
|
||
|
let x_409 : i32 = p.y;
|
||
|
map[(x_407 + (x_409 * 16))] = 1;
|
||
|
let x_414 : i32 = p.x;
|
||
|
let x_416 : i32 = p.y;
|
||
|
map[(x_414 + ((x_416 + 1) * 16))] = 1;
|
||
|
let x_422 : i32 = p.x;
|
||
|
let x_424 : i32 = p.y;
|
||
|
map[(x_422 + ((x_424 + 2) * 16))] = 1;
|
||
|
let x_430 : i32 = p.y;
|
||
|
p.y = (x_430 + 2);
|
||
|
}
|
||
|
}
|
||
|
let x_434 : i32 = ipos.y;
|
||
|
let x_437 : i32 = ipos.x;
|
||
|
let x_440 : i32 = map[((x_434 * 16) + x_437)];
|
||
|
if ((x_440 == 1)) {
|
||
|
x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.0);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
continuing {
|
||
|
let x_444 : bool = canwalk;
|
||
|
if (x_444) {
|
||
|
} else {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 1.0);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
struct main_out {
|
||
|
[[location(0)]]
|
||
|
x_GLF_color_1 : vec4<f32>;
|
||
|
};
|
||
|
|
||
|
[[stage(fragment)]]
|
||
|
fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
|
||
|
gl_FragCoord = gl_FragCoord_param;
|
||
|
main_1();
|
||
|
return main_out(x_GLF_color);
|
||
|
}
|