add ability to draw textured rectangles in UI, fix bugs

This commit is contained in:
Tuomas Katajisto 2026-01-25 23:05:35 +02:00
parent 58b548d250
commit 19ec772a02
10 changed files with 795 additions and 767 deletions

View File

@ -1 +1 @@
jai first.jai - wasm release && rm -rf dist/packs/ && cp -r packs/ dist/ && rm dist/main.o jai-linux first.jai - wasm release && rm -rf dist/packs/ && cp -r packs/ dist/ && rm dist/main.o

View File

@ -260,14 +260,14 @@ vs_plane_source_glsl430 := u8.[
_367.y = 1.0 - _367.y; _367.y = 1.0 - _367.y;
vec3 param_1 = normalize(pos.xyz); vec3 param_1 = normalize(pos.xyz);
vec3 param_2 = _146.sunPosition; vec3 param_2 = _146.sunPosition;
float _421 = smoothstep(750.0, 1000.0, length(pos.xz)); float _422 = smoothstep(750.0, 1000.0, length(pos.xz));
frag_color = vec4(mix((mix(((_146.waterColor * (dot(_274, _290) + ((9.9999999747524270787835121154785e-07 * float(_309.is_reflection)) * _278.shininess))) * _146.sunLightColor) * _146.sunIntensity, texture(reftex_refsmp, _367).xyz, vec3(min(1.0, _335 * 1.5))) + ((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), 32.0))) * 1.0, sky(param_1, param_2) * _146.skyIntensity, vec3(_421)), mix(mix(0.300000011920928955078125, 0.5, _335), 1.0, _421)); frag_color = vec4(mix((mix(((_146.waterColor * (dot(_274, _290) + ((9.9999999747524270787835121154785e-07 * float(_309.is_reflection)) * _278.shininess))) * _146.sunLightColor) * _146.sunIntensity, texture(reftex_refsmp, _367).xyz, vec3(min(1.0, _335 * 1.7999999523162841796875))) + ((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), 32.0))) * 1.0, sky(param_1, param_2) * _146.skyIntensity, vec3(_422)), mix(mix(0.300000011920928955078125, 0.5, _335), 1.0, _422));
} }
else else
{ {
vec2 param_3 = (pos.xz * 0.0500000007450580596923828125) + vec2(_146.time * 0.00999999977648258209228515625); vec2 param_3 = (pos.xz * 0.0500000007450580596923828125) + vec2(_146.time * 0.00999999977648258209228515625);
float _451 = fbm(param_3); float _452 = fbm(param_3);
frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _451), 1.0); frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _452), 1.0);
} }
} }
@ -469,7 +469,7 @@ fs_plane_source_glsl430 := u8.[
0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,
0x3d,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69, 0x3d,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,
0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
0x74,0x20,0x5f,0x34,0x32,0x31,0x20,0x3d,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73, 0x74,0x20,0x5f,0x34,0x32,0x32,0x20,0x3d,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,
0x74,0x65,0x70,0x28,0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31,0x30,0x30,0x30,0x2e, 0x74,0x65,0x70,0x28,0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31,0x30,0x30,0x30,0x2e,
0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a, 0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a,
0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,
@ -488,40 +488,42 @@ fs_plane_source_glsl430 := u8.[
0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x65,0x66,0x74,0x65,0x78, 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x65,0x66,0x74,0x65,0x78,
0x5f,0x72,0x65,0x66,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x33,0x36,0x37,0x29,0x2e,0x78, 0x5f,0x72,0x65,0x66,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x33,0x36,0x37,0x29,0x2e,0x78,
0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30, 0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,
0x2c,0x20,0x5f,0x33,0x33,0x35,0x20,0x2a,0x20,0x31,0x2e,0x35,0x29,0x29,0x29,0x20, 0x2c,0x20,0x5f,0x33,0x33,0x35,0x20,0x2a,0x20,0x31,0x2e,0x37,0x39,0x39,0x39,0x39,
0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68, 0x39,0x39,0x35,0x32,0x33,0x31,0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36,0x38,0x37,
0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75, 0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,
0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f, 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,
0x77,0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x6e, 0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,
0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,0x20, 0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,
0x5f,0x32,0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,0x33, 0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,
0x32,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x31,0x2e,0x30,0x2c,0x20,0x73,0x6b, 0x39,0x30,0x20,0x2b,0x20,0x5f,0x32,0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,
0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x29,0x29,0x2c,0x20,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x31,0x2e,
0x5f,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e, 0x30,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,
0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,
0x32,0x31,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e, 0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x76,0x65,
0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, 0x63,0x33,0x28,0x5f,0x34,0x32,0x32,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,
0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f, 0x69,0x78,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,
0x33,0x33,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x32,0x31,0x29, 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,
0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x2e,0x35,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,
0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x5f,0x34,0x32,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,
0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28, 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,
0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30, 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,
0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32, 0x33,0x20,0x3d,0x20,0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,
0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, 0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,
0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30, 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,
0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32, 0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,
0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,
0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x35,0x31, 0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,
0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, 0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,
0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x31,0x34,0x36,0x2e, 0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,
0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28, 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,
0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, 0x5f,0x31,0x34,0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,
0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30, 0x20,0x6d,0x69,0x78,0x28,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,
0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30, 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,
0x33,0x31,0x32,0x35,0x2c,0x20,0x5f,0x34,0x35,0x31,0x29,0x2c,0x20,0x31,0x2e,0x30, 0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,
0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, 0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,
0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,
0x0a,0x00,
]; ];
/* /*
#version 300 es #version 300 es
@ -685,14 +687,14 @@ vs_plane_source_glsl300es := u8.[
_367.y = 1.0 - _367.y; _367.y = 1.0 - _367.y;
highp vec3 param_1 = normalize(pos.xyz); highp vec3 param_1 = normalize(pos.xyz);
highp vec3 param_2 = _146.sunPosition; highp vec3 param_2 = _146.sunPosition;
highp float _421 = smoothstep(750.0, 1000.0, length(pos.xz)); highp float _422 = smoothstep(750.0, 1000.0, length(pos.xz));
frag_color = vec4(mix((mix(((_146.waterColor * (dot(_274, _290) + ((9.9999999747524270787835121154785e-07 * float(_309.is_reflection)) * _278.shininess))) * _146.sunLightColor) * _146.sunIntensity, texture(reftex_refsmp, _367).xyz, vec3(min(1.0, _335 * 1.5))) + ((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), 32.0))) * 1.0, sky(param_1, param_2) * _146.skyIntensity, vec3(_421)), mix(mix(0.300000011920928955078125, 0.5, _335), 1.0, _421)); frag_color = vec4(mix((mix(((_146.waterColor * (dot(_274, _290) + ((9.9999999747524270787835121154785e-07 * float(_309.is_reflection)) * _278.shininess))) * _146.sunLightColor) * _146.sunIntensity, texture(reftex_refsmp, _367).xyz, vec3(min(1.0, _335 * 1.7999999523162841796875))) + ((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), 32.0))) * 1.0, sky(param_1, param_2) * _146.skyIntensity, vec3(_422)), mix(mix(0.300000011920928955078125, 0.5, _335), 1.0, _422));
} }
else else
{ {
highp vec2 param_3 = (pos.xz * 0.0500000007450580596923828125) + vec2(_146.time * 0.00999999977648258209228515625); highp vec2 param_3 = (pos.xz * 0.0500000007450580596923828125) + vec2(_146.time * 0.00999999977648258209228515625);
highp float _451 = fbm(param_3); highp float _452 = fbm(param_3);
frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _451), 1.0); frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _452), 1.0);
} }
} }
@ -911,7 +913,7 @@ fs_plane_source_glsl300es := u8.[
0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e, 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,
0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,
0x32,0x31,0x20,0x3d,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28, 0x32,0x32,0x20,0x3d,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,
0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31,0x30,0x30,0x30,0x2e,0x30,0x2c,0x20,0x6c, 0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31,0x30,0x30,0x30,0x2e,0x30,0x2c,0x20,0x6c,
0x65,0x6e,0x67,0x74,0x68,0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x29,0x29,0x3b,0x0a, 0x65,0x6e,0x67,0x74,0x68,0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x29,0x29,0x3b,0x0a,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,
@ -930,41 +932,42 @@ fs_plane_source_glsl300es := u8.[
0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x65,0x66,0x74,0x65,0x78,0x5f,0x72,0x65,0x66, 0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x65,0x66,0x74,0x65,0x78,0x5f,0x72,0x65,0x66,
0x73,0x6d,0x70,0x2c,0x20,0x5f,0x33,0x36,0x37,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20, 0x73,0x6d,0x70,0x2c,0x20,0x5f,0x33,0x36,0x37,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,
0x76,0x65,0x63,0x33,0x28,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33, 0x76,0x65,0x63,0x33,0x28,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,
0x33,0x35,0x20,0x2a,0x20,0x31,0x2e,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, 0x33,0x35,0x20,0x2a,0x20,0x31,0x2e,0x37,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,
0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c, 0x33,0x31,0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x29,
0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74, 0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,
0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x6d,0x61, 0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,
0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61, 0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,
0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,0x20,0x5f,0x32,0x38,0x35, 0x6f,0x77,0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,
0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,0x33,0x32,0x2e,0x30,0x29, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,
0x29,0x29,0x20,0x2a,0x20,0x31,0x2e,0x30,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61, 0x20,0x5f,0x32,0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,
0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20, 0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x31,0x2e,0x30,0x2c,0x20,0x73,
0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73, 0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,
0x69,0x74,0x79,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34,0x32,0x31,0x29,0x29, 0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,
0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33,0x30,0x30,0x30, 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,
0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, 0x34,0x32,0x32,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,
0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29, 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,
0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x32,0x31,0x29,0x29,0x3b,0x0a,0x20, 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,
0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, 0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x32,0x32,
0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,
0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,
0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36, 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,
0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63, 0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,
0x32,0x28,0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e, 0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,
0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35, 0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,
0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a, 0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,
0x6f,0x61,0x74,0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70, 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,
0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,
0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, 0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,
0x63,0x34,0x28,0x5f,0x31,0x34,0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,
0x72,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30, 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x31,0x34,0x36,0x2e,0x64,0x65,0x65,
0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, 0x70,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x30,0x2e,0x38,
0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36, 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,
0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x5f,0x34, 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,
0x35,0x31,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,
0x0a,0x7d,0x0a,0x0a,0x00, 0x35,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,
0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
/* /*
#include <metal_stdlib> #include <metal_stdlib>
@ -1174,14 +1177,14 @@ vs_plane_source_metal_macos := u8.[
_367.y = 1.0 - _367.y; _367.y = 1.0 - _367.y;
float3 param_1 = fast::normalize(in.pos.xyz); float3 param_1 = fast::normalize(in.pos.xyz);
float3 param_2 = float3(_146.sunPosition); float3 param_2 = float3(_146.sunPosition);
float _421 = smoothstep(750.0, 1000.0, length(in.pos.xz)); float _422 = smoothstep(750.0, 1000.0, length(in.pos.xz));
out.frag_color = float4(mix((mix(((_146.waterColor * (dot(_274, _290) + ((9.9999999747524270787835121154785e-07 * float(_309.is_reflection)) * _278.shininess))) * _146.sunLightColor) * _146.sunIntensity, reftex.sample(refsmp, _367).xyz, float3(fast::min(1.0, _335 * 1.5))) + ((_146.sunLightColor * _146.sunIntensity) * powr(fast::max(0.0, dot(fast::normalize(_290 + _285), _274)), 32.0))) * 1.0, sky(param_1, param_2, _146) * _146.skyIntensity, float3(_421)), mix(mix(0.300000011920928955078125, 0.5, _335), 1.0, _421)); out.frag_color = float4(mix((mix(((_146.waterColor * (dot(_274, _290) + ((9.9999999747524270787835121154785e-07 * float(_309.is_reflection)) * _278.shininess))) * _146.sunLightColor) * _146.sunIntensity, reftex.sample(refsmp, _367).xyz, float3(fast::min(1.0, _335 * 1.7999999523162841796875))) + ((_146.sunLightColor * _146.sunIntensity) * powr(fast::max(0.0, dot(fast::normalize(_290 + _285), _274)), 32.0))) * 1.0, sky(param_1, param_2, _146) * _146.skyIntensity, float3(_422)), mix(mix(0.300000011920928955078125, 0.5, _335), 1.0, _422));
} }
else else
{ {
float2 param_3 = (in.pos.xz * 0.0500000007450580596923828125) + float2(_146.time * 0.00999999977648258209228515625); float2 param_3 = (in.pos.xz * 0.0500000007450580596923828125) + float2(_146.time * 0.00999999977648258209228515625);
float _451 = fbm(param_3); float _452 = fbm(param_3);
out.frag_color = float4(float3(_146.deepColor) * mix(0.800000011920928955078125, 1.2000000476837158203125, _451), 1.0); out.frag_color = float4(float3(_146.deepColor) * mix(0.800000011920928955078125, 1.2000000476837158203125, _452), 1.0);
} }
return out; return out;
} }
@ -1436,7 +1439,7 @@ fs_plane_source_metal_macos := u8.[
0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x66,0x6c, 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x66,0x6c,
0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73, 0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,
0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x31,0x20,0x3d,0x20,0x73,0x6d,0x6f, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x32,0x20,0x3d,0x20,0x73,0x6d,0x6f,
0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31, 0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31,
0x30,0x30,0x30,0x2e,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x69,0x6e, 0x30,0x30,0x30,0x2e,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x69,0x6e,
0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
@ -1456,44 +1459,46 @@ fs_plane_source_metal_macos := u8.[
0x65,0x66,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x65,0x66, 0x65,0x66,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x65,0x66,
0x73,0x6d,0x70,0x2c,0x20,0x5f,0x33,0x36,0x37,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20, 0x73,0x6d,0x70,0x2c,0x20,0x5f,0x33,0x36,0x37,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,
0x28,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x35,0x20,0x2a,0x20,0x31,0x2e,0x35, 0x28,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x35,0x20,0x2a,0x20,0x31,0x2e,0x37,
0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e, 0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33,0x31,0x36,0x32,0x38,0x34,0x31,0x37,
0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x34, 0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,
0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20, 0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,
0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78, 0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,
0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, 0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74,
0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b, 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x66,
0x20,0x5f,0x32,0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20, 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,
0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x31,0x2e,0x30,0x2c,0x20,0x73, 0x32,0x39,0x30,0x20,0x2b,0x20,0x5f,0x32,0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,
0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61, 0x34,0x29,0x29,0x2c,0x20,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x31,
0x6d,0x5f,0x32,0x2c,0x20,0x5f,0x31,0x34,0x36,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34, 0x2e,0x30,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,
0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x5f,0x31,0x34,0x36,0x29,0x20,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x34,0x32,0x31,0x29,0x29,0x2c,0x20,0x6d, 0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,
0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, 0x69,0x74,0x79,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x34,0x32,0x32,
0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, 0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33,0x30,
0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x31, 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,
0x2e,0x30,0x2c,0x20,0x5f,0x34,0x32,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33,0x33,
0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x32,0x32,0x29,0x29,0x3b,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,
0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x70,0x6f, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30, 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28,
0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38, 0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,
0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,
0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30, 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,
0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32, 0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,
0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,
0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x35,0x31, 0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,
0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61, 0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,
0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, 0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,
0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x36,0x2e,0x64,0x65,0x65, 0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,
0x70,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x30,0x2e, 0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,
0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, 0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x6d,
0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30, 0x69,0x78,0x28,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,
0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x31,
0x32,0x35,0x2c,0x20,0x5f,0x34,0x35,0x31,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,
0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x2c,0x20,
0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,
0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
plane_shader_desc :: (backend: sg_backend) -> sg_shader_desc { plane_shader_desc :: (backend: sg_backend) -> sg_shader_desc {
desc: sg_shader_desc; desc: sg_shader_desc;

View File

@ -202,12 +202,12 @@ vs_pp_source_glsl430 := u8.[
color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_272 * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, texture(lut_lut_linear, vec2((((min(_272 + 1.0, 15.0) * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, vec3(_269 - _272)); color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_272 * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, texture(lut_lut_linear, vec2((((min(_272 + 1.0, 15.0) * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, vec3(_269 - _272));
} }
} }
vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _75.gamma)) * (1.0 - (smoothstep(0.0, _75.vignette_radius, _67) * _75.vignette_intensity))) * (1.0 - (((sin((texcoord.y * float(textureSize(pptex_ppsmp, 0).y)) * _75.scanlines_density) * 0.5) + 0.5) * _75.scanlines_intensity)); vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _75.gamma)) * (1.0 - (smoothstep(0.0, _75.vignette_radius, _67) * _75.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _75.scanlines_density) * 0.5) + 0.5) * _75.scanlines_intensity));
vec2 param_1 = texcoord; vec2 param_1 = texcoord;
vec3 _394 = color_srgb; vec3 _387 = color_srgb;
vec3 _396 = _394 + vec3((rand(param_1) - 0.5) * _75.film_grain_intensity); vec3 _389 = _387 + vec3((rand(param_1) - 0.5) * _75.film_grain_intensity);
color_srgb = _396; color_srgb = _389;
frag_color = vec4(clamp(_396, vec3(0.0), vec3(1.0)), 1.0); frag_color = vec4(clamp(_389, vec3(0.0), vec3(1.0)), 1.0);
} }
*/ */
@ -434,29 +434,27 @@ fs_pp_source_glsl430 := u8.[
0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20,0x5f,0x36,0x37,0x29,0x20,0x2a, 0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20,0x5f,0x36,0x37,0x29,0x20,0x2a,
0x20,0x5f,0x37,0x35,0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,0x6e, 0x20,0x5f,0x37,0x35,0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,0x6e,
0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,
0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e,0x28,0x28,0x74,0x65,0x78,0x63, 0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e,0x28,0x67,0x6c,0x5f,0x46,0x72,
0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x74, 0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,
0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x70,0x70,0x74,0x65,0x78, 0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,
0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x2e,0x79,0x29,0x29,0x20,0x2a, 0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,
0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x64, 0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,
0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b, 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61,0x6e, 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,
0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29, 0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,
0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, 0x65,0x63,0x33,0x20,0x5f,0x33,0x38,0x37,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,
0x6d,0x5f,0x31,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a, 0x5f,0x73,0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,
0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x39,0x34,0x20,0x3d,0x20, 0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x33,0x38,0x37,0x20,0x2b,0x20,0x76,0x65,
0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x63,0x33,0x28,0x28,0x72,0x61,0x6e,0x64,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,
0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x39,0x36,0x20,0x3d,0x20,0x5f,0x33,0x39,0x34, 0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x66,
0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x72,0x61,0x6e,0x64,0x28,0x70,0x61, 0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,
0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20, 0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,
0x5f,0x37,0x35,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69, 0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,
0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63, 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,
0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x5f,0x33,0x39,0x36, 0x63,0x34,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x33,0x38,0x39,0x2c,0x20,0x76,
0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,
0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x33, 0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
0x39,0x36,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,
0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,
0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
/* /*
#version 300 es #version 300 es
@ -601,12 +599,12 @@ vs_pp_source_glsl300es := u8.[
color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_272 * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, texture(lut_lut_linear, vec2((((min(_272 + 1.0, 15.0) * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, vec3(_269 - _272)); color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_272 * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, texture(lut_lut_linear, vec2((((min(_272 + 1.0, 15.0) * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, vec3(_269 - _272));
} }
} }
highp vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _75.gamma)) * (1.0 - (smoothstep(0.0, _75.vignette_radius, _67) * _75.vignette_intensity))) * (1.0 - (((sin((texcoord.y * float(textureSize(pptex_ppsmp, 0).y)) * _75.scanlines_density) * 0.5) + 0.5) * _75.scanlines_intensity)); highp vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _75.gamma)) * (1.0 - (smoothstep(0.0, _75.vignette_radius, _67) * _75.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _75.scanlines_density) * 0.5) + 0.5) * _75.scanlines_intensity));
highp vec2 param_1 = texcoord; highp vec2 param_1 = texcoord;
highp vec3 _394 = color_srgb; highp vec3 _387 = color_srgb;
highp vec3 _396 = _394 + vec3((rand(param_1) - 0.5) * _75.film_grain_intensity); highp vec3 _389 = _387 + vec3((rand(param_1) - 0.5) * _75.film_grain_intensity);
color_srgb = _396; color_srgb = _389;
frag_color = vec4(clamp(_396, vec3(0.0), vec3(1.0)), 1.0); frag_color = vec4(clamp(_389, vec3(0.0), vec3(1.0)), 1.0);
} }
*/ */
@ -845,30 +843,28 @@ fs_pp_source_glsl300es := u8.[
0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20,0x5f,0x36,0x37,0x29,0x20, 0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20,0x5f,0x36,0x37,0x29,0x20,
0x2a,0x20,0x5f,0x37,0x35,0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69, 0x2a,0x20,0x5f,0x37,0x35,0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,
0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31, 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,
0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e,0x28,0x28,0x74,0x65,0x78, 0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e,0x28,0x67,0x6c,0x5f,0x46,
0x63,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, 0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x37,0x35,
0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x70,0x70,0x74,0x65, 0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x64,0x65,0x6e,0x73,0x69,
0x78,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x2e,0x79,0x29,0x29,0x20, 0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,
0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f, 0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,
0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20, 0x73,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,
0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,
0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,
0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,
0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x74,0x65,0x78, 0x20,0x5f,0x33,0x38,0x37,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,
0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,
0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x39,0x34,0x20,0x3d,0x20,0x63,0x6f,0x6c, 0x63,0x33,0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x33,0x38,0x37,0x20,0x2b,
0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x72,0x61,0x6e,0x64,0x28,0x70,0x61,0x72,0x61,
0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x39,0x36,0x20,0x3d,0x20,0x5f, 0x6d,0x5f,0x31,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x37,
0x33,0x39,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x72,0x61,0x6e,0x64, 0x35,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69,0x6e,0x74,
0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29, 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,
0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69, 0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,
0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,
0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x5f, 0x20,0x76,0x65,0x63,0x34,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x33,0x38,0x39,
0x33,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,
0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x63,0x6c,0x61,0x6d,0x70, 0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,
0x28,0x5f,0x33,0x39,0x36,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29, 0x0a,0x0a,0x00,
0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,
0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
/* /*
#include <metal_stdlib> #include <metal_stdlib>
@ -974,7 +970,7 @@ vs_pp_source_metal_macos := u8.[
return fract(sin(dot(co, float2(12.98980045318603515625, 78.233001708984375))) * 43758.546875); return fract(sin(dot(co, float2(12.98980045318603515625, 78.233001708984375))) * 43758.546875);
} }
fragment main0_out main0(main0_in in [[stage_in]], constant post_process_config& _75 [[buffer(0)]], texture2d<float> pptex [[texture(0)]], texture2d<float> lut [[texture(1)]], sampler ppsmp [[sampler(0)]], sampler lut_linear [[sampler(1)]]) fragment main0_out main0(main0_in in [[stage_in]], constant post_process_config& _75 [[buffer(0)]], texture2d<float> pptex [[texture(0)]], texture2d<float> lut [[texture(1)]], sampler ppsmp [[sampler(0)]], sampler lut_linear [[sampler(1)]], float4 gl_FragCoord [[position]])
{ {
main0_out out = {}; main0_out out = {};
float2 _66 = in.texcoord - float2(0.5); float2 _66 = in.texcoord - float2(0.5);
@ -1049,12 +1045,12 @@ vs_pp_source_metal_macos := u8.[
color_ldr_linear = mix(lut.sample(lut_linear, float2((((_272 * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, lut.sample(lut_linear, float2((((fast::min(_272 + 1.0, 15.0) * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, float3(_269 - _272)); color_ldr_linear = mix(lut.sample(lut_linear, float2((((_272 * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, lut.sample(lut_linear, float2((((fast::min(_272 + 1.0, 15.0) * 16.0) + _289) + 0.5) * 0.00390625, _283)).xyz, float3(_269 - _272));
} }
} }
float3 color_srgb = (powr(color_ldr_linear, float3(1.0 / _75.gamma)) * (1.0 - (smoothstep(0.0, _75.vignette_radius, _67) * _75.vignette_intensity))) * (1.0 - (((sin((in.texcoord.y * float(int2(pptex.get_width(), pptex.get_height()).y)) * _75.scanlines_density) * 0.5) + 0.5) * _75.scanlines_intensity)); float3 color_srgb = (powr(color_ldr_linear, float3(1.0 / _75.gamma)) * (1.0 - (smoothstep(0.0, _75.vignette_radius, _67) * _75.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _75.scanlines_density) * 0.5) + 0.5) * _75.scanlines_intensity));
float2 param_1 = in.texcoord; float2 param_1 = in.texcoord;
float3 _394 = color_srgb; float3 _387 = color_srgb;
float3 _396 = _394 + float3((rand(param_1) - 0.5) * _75.film_grain_intensity); float3 _389 = _387 + float3((rand(param_1) - 0.5) * _75.film_grain_intensity);
color_srgb = _396; color_srgb = _389;
out.frag_color = float4(fast::clamp(_396, float3(0.0), float3(1.0)), 1.0); out.frag_color = float4(fast::clamp(_389, float3(0.0), float3(1.0)), 1.0);
return out; return out;
} }
@ -1146,196 +1142,195 @@ fs_pp_source_metal_macos := u8.[
0x70,0x6c,0x65,0x72,0x20,0x70,0x70,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d, 0x70,0x6c,0x65,0x72,0x20,0x70,0x70,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,
0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c, 0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,
0x65,0x72,0x20,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x5b,0x5b, 0x65,0x72,0x20,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x5b,0x5b,
0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a, 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x66,0x6c,
0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75, 0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,
0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x64,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x29,0x0a,
0x74,0x32,0x20,0x5f,0x36,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x74,0x65,0x78,0x63, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,
0x6f,0x6f,0x72,0x64,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, 0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36, 0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x74,0x65,
0x37,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x36,0x36,0x29,0x3b, 0x78,0x63,0x6f,0x6f,0x72,0x64,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,
0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x38,0x36,0x20, 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,
0x3d,0x20,0x28,0x5f,0x36,0x36,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20, 0x5f,0x36,0x37,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x36,0x36,
0x28,0x5f,0x36,0x37,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x62,0x61,0x72,0x72,0x65, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x38,
0x6c,0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74, 0x36,0x20,0x3d,0x20,0x28,0x5f,0x36,0x36,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,
0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61, 0x2b,0x20,0x28,0x5f,0x36,0x37,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x62,0x61,0x72,
0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, 0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,
0x28,0x5f,0x37,0x35,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74, 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,
0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, 0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,
0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x66,0x20,0x28,0x5f,0x37,0x35,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,
0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x36,0x20, 0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,
0x3d,0x20,0x5f,0x38,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,
0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x37,0x20,0x3d,0x20,0x5f,0x39,0x36,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,
0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62, 0x36,0x20,0x3d,0x20,0x5f,0x38,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x37,0x20,0x3d,0x20,0x5f,0x39,
0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x39,0x37,0x29,0x0a,0x20,0x20,0x20,0x20, 0x36,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x39,0x36,0x20,0x3e,0x20,0x31, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x39,0x37,0x29,0x0a,0x20,0x20,
0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,
0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x5f,0x31,0x31,0x32,0x20,0x3d,0x20,0x5f,0x38,0x36,0x2e,0x79,0x20,
0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x30,0x34,0x3b, 0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x39,0x36,0x20,0x3e,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,
0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x39,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x32,0x29, 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x39,0x37,0x3b,0x0a,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x39,0x20,0x3d,0x20,0x5f,0x38, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x36,0x2e,0x79,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x30,0x34,0x29,0x0a,0x20,
0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x39,0x20,0x3d,0x20,0x5f, 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x32,0x20,0x3d,0x20,0x5f,0x38,0x36,0x2e,
0x31,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x31,0x39,0x29, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f, 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x30,
0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30, 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,
0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, 0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x39,0x3b,0x0a,
0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,
0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x39,0x20,0x3d,0x20,
0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x34,0x32,0x20,0x3d,0x20,0x66,0x6c, 0x5f,0x38,0x36,0x2e,0x79,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,
0x6f,0x61,0x74,0x32,0x28,0x5f,0x37,0x35,0x2e,0x63,0x68,0x72,0x6f,0x6d,0x61,0x74, 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,
0x69,0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,
0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x39,0x20,0x3d,
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x34,0x34,0x20,0x3d, 0x20,0x5f,0x31,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,
0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x70,0x70, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x31,
0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x38,0x36,0x20,0x2b,0x20,0x5f,0x31,0x34,0x32, 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,
0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,
0x31,0x35,0x31,0x20,0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70, 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x38,0x36,0x29,0x3b,0x0a, 0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,
0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x32,0x20, 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x70, 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,
0x70,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x38,0x36,0x20,0x2d,0x20,0x5f,0x31,0x34, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,
0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x34,0x32,0x20,0x3d,0x20,
0x5f,0x31,0x37,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x5f,0x31, 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x37,0x35,0x2e,0x63,0x68,0x72,0x6f,0x6d,
0x34,0x34,0x2e,0x78,0x2c,0x20,0x5f,0x31,0x35,0x31,0x2e,0x79,0x2c,0x20,0x5f,0x31, 0x61,0x74,0x69,0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,
0x36,0x32,0x2e,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a, 0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,
0x20,0x5f,0x37,0x35,0x2e,0x65,0x78,0x70,0x6f,0x73,0x75,0x72,0x65,0x3b,0x0a,0x20, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x34,0x34,
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, 0x20,0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,
0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x38,0x36,0x20,0x2b,0x20,0x5f,0x31,
0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x2e,0x74,0x6f,0x6e,0x65,0x6d,0x61,0x70,0x20, 0x34,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x5f,0x31,0x35,0x31,0x20,0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,
0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x70,0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x38,0x36,0x29,
0x6d,0x20,0x3d,0x20,0x5f,0x31,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,
0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65, 0x32,0x20,0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,
0x61,0x72,0x20,0x3d,0x20,0x61,0x63,0x65,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x29, 0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x38,0x36,0x20,0x2d,0x20,0x5f,
0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, 0x31,0x34,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63, 0x33,0x20,0x5f,0x31,0x37,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,
0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, 0x5f,0x31,0x34,0x34,0x2e,0x78,0x2c,0x20,0x5f,0x31,0x35,0x31,0x2e,0x79,0x2c,0x20,
0x3d,0x20,0x5f,0x31,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x5f,0x31,0x36,0x32,0x2e,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2e,0x78,0x79,0x7a,
0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x38,0x20,0x3d,0x20, 0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x65,0x78,0x70,0x6f,0x73,0x75,0x72,0x65,0x3b,
0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x6f,0x6c,0x6f,
0x61,0x72,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29, 0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a,0x20,0x20,
0x29,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x37, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x2e,0x74,0x6f,0x6e,0x65,0x6d,0x61,
0x35,0x2e,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x2c,0x20,0x30,0x2e,0x30,0x29, 0x70,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,
0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,
0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, 0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c, 0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,
0x61,0x6d,0x70,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x64, 0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x61,0x63,0x65,0x73,0x28,0x70,0x61,0x72,0x61,
0x6f,0x74,0x28,0x5f,0x31,0x39,0x38,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,
0x30,0x2e,0x32,0x31,0x32,0x35,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, 0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,
0x31,0x35,0x33,0x39,0x39,0x39,0x38,0x30,0x35,0x34,0x35,0x30,0x34,0x33,0x39,0x34, 0x72,0x20,0x3d,0x20,0x5f,0x31,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,
0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x30,0x39,0x39,0x39, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x38,0x20,
0x39,0x38,0x35,0x39,0x33,0x33,0x33,0x30,0x33,0x38,0x33,0x33,0x30,0x30,0x37,0x38, 0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,
0x31,0x32,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x39,0x38,0x2c,0x20,0x66,0x6c, 0x6e,0x65,0x61,0x72,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,
0x6f,0x61,0x74,0x33,0x28,0x5f,0x37,0x35,0x2e,0x73,0x61,0x74,0x75,0x72,0x61,0x74, 0x35,0x29,0x29,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,
0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, 0x5f,0x37,0x35,0x2e,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x2c,0x20,0x30,0x2e,
0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x29, 0x30,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,
0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x2e,0x6c,0x75, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,
0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20, 0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,
0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, 0x63,0x6c,0x61,0x6d,0x70,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,
0x37,0x35,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32, 0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x39,0x38,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,
0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,
0x2e,0x37,0x31,0x35,0x33,0x39,0x39,0x39,0x38,0x30,0x35,0x34,0x35,0x30,0x34,0x33,
0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x30,0x39,
0x39,0x39,0x39,0x38,0x35,0x39,0x33,0x33,0x33,0x30,0x33,0x38,0x33,0x33,0x30,0x30,
0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x39,0x38,0x2c,0x20,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x37,0x35,0x2e,0x73,0x61,0x74,0x75,0x72,
0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,
0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,
0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x2e,
0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,
0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,
0x28,0x5f,0x37,0x35,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,
0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,
0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6c,0x75,0x74,
0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x66,
0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,
0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,
0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,
0x29,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,
0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,
0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,
0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,
0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,
0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x29,
0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x39,0x20,0x3d,0x20,
0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,
0x2e,0x7a,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,
0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x32,0x36,0x39,0x29,0x3b,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
0x61,0x74,0x20,0x5f,0x32,0x38,0x33,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,
0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,
0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,
0x30,0x2e,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,
0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,
0x72,0x2e,0x78,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,
0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6c,0x75,0x74,0x2e,0x73, 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6c,
0x61,0x6d,0x70,0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f, 0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x69,
0x61,0x74,0x32,0x28,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72, 0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x28,0x28,
0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20, 0x5f,0x32,0x37,0x32,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,
0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x20, 0x32,0x38,0x39,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,
0x2b,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c, 0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x32,0x38,0x33,0x29,0x29,
0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,0x31,0x35, 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,
0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35, 0x28,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,
0x29,0x2c,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c, 0x61,0x74,0x32,0x28,0x28,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,
0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35, 0x28,0x5f,0x32,0x37,0x32,0x20,0x2b,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x2e,
0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x29,0x2e,0x78, 0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x32,0x38,
0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x39,0x20,0x3d,0x20,0x63,0x6f,
0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,
0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x32,0x20,
0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x32,0x36,0x39,0x29,0x3b,0x0a,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x20,0x5f,0x32,0x38,0x33,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,
0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,
0x35,0x2e,0x30,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,
0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x63,
0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,
0x78,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,
0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6c,0x75,0x74,
0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,
0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x28,0x28,0x5f,0x32,
0x37,0x32,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x32,0x38,
0x39,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30, 0x39,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,
0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x32,0x38,0x33,0x29,0x29,0x2e,0x78, 0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x32,0x38,0x33,0x29,0x29,0x2e,0x78,
0x79,0x7a,0x2c,0x20,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6c, 0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x36,0x39,0x20,
0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x2d,0x20,0x5f,0x32,0x37,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
0x32,0x28,0x28,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x5f, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
0x32,0x37,0x32,0x20,0x2b,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x2e,0x30,0x29, 0x6f,0x61,0x74,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,
0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x32,0x38,0x39,0x29, 0x3d,0x20,0x28,0x70,0x6f,0x77,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,
0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39, 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x32,0x38,0x33,0x29,0x29,0x2e,0x78,0x79,0x7a, 0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x37,0x35,0x2e,0x67,0x61,0x6d,0x6d,0x61,
0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x36,0x39,0x20,0x2d,0x20, 0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x73,0x6d,0x6f,
0x5f,0x32,0x37,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x37,0x35,
0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,
0x74,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20, 0x2c,0x20,0x5f,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x76,0x69,0x67,
0x28,0x70,0x6f,0x77,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f, 0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,
0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31, 0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,
0x2e,0x30,0x20,0x2f,0x20,0x5f,0x37,0x35,0x2e,0x67,0x61,0x6d,0x6d,0x61,0x29,0x29, 0x69,0x6e,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,
0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74, 0x79,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,
0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x37,0x35,0x2e,0x76, 0x73,0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,
0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20, 0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,
0x5f,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x76,0x69,0x67,0x6e,0x65, 0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,
0x74,0x74,0x65,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29, 0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,
0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x74,0x65,
0x28,0x28,0x69,0x6e,0x2e,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20, 0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x6e,0x74,0x32,0x28,0x70,0x70,0x74, 0x74,0x33,0x20,0x5f,0x33,0x38,0x37,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,
0x65,0x78,0x2e,0x67,0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20, 0x73,0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
0x70,0x70,0x74,0x65,0x78,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69,0x67,0x68,0x74, 0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x33,0x38,0x37,0x20,0x2b,0x20,0x66,
0x28,0x29,0x29,0x2e,0x79,0x29,0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x73,0x63, 0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x72,0x61,0x6e,0x64,0x28,0x70,0x61,0x72,0x61,
0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29, 0x6d,0x5f,0x31,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x37,
0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a, 0x35,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69,0x6e,0x74,
0x20,0x5f,0x37,0x35,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69, 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,
0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,
0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,
0x20,0x69,0x6e,0x2e,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20, 0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x61,0x73,0x74,
0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x39,0x34,0x20,0x3d,0x20, 0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x33,0x38,0x39,0x2c,0x20,0x66,0x6c,
0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x39,0x36,0x20,0x3d,0x20,0x5f,0x33, 0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,
0x39,0x34,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x72,0x61,0x6e, 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,
0x64,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35, 0x0a,0x0a,0x00,
0x29,0x20,0x2a,0x20,0x5f,0x37,0x35,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,
0x69,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,
0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,
0x5f,0x33,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,
0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x34,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x33,
0x39,0x36,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,
0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,
0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,
0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc { postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc {
desc: sg_shader_desc; desc: sg_shader_desc;

View File

@ -358,30 +358,30 @@ vs_trile_source_glsl430 := u8.[
int _525 = int(round(trixel_material.w * 255.0)); int _525 = int(round(trixel_material.w * 255.0));
float _543 = max(float((_525 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); float _543 = max(float((_525 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125);
float _549 = float((_525 >> 3) & 3) * 0.3333333432674407958984375; float _549 = float((_525 >> 3) & 3) * 0.3333333432674407958984375;
vec3 light = (trixel_material.xyz * 0.20000000298023223876953125) * texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_431.screen_w), gl_FragCoord.y / float(_431.screen_h)), 0.0).x; vec3 light = (trixel_material.xyz * 0.3499999940395355224609375) * texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_431.screen_w), gl_FragCoord.y / float(_431.screen_h)), 0.0).x;
vec3 _580 = normalize(fnormal.xyz); vec3 _581 = normalize(fnormal.xyz);
vec3 _586 = normalize(cam - vpos); vec3 _587 = normalize(cam - vpos);
vec3 _591 = normalize(_201.sunPosition); vec3 _592 = normalize(_201.sunPosition);
vec3 _596 = normalize(_586 + _591); vec3 _597 = normalize(_587 + _592);
float param = max(dot(_596, _586), 0.0); float param = max(dot(_597, _587), 0.0);
vec3 param_1 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(_549)); vec3 param_1 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(_549));
vec3 _613 = fresnelSchlick(param, param_1); vec3 _614 = fresnelSchlick(param, param_1);
vec3 param_2 = _580; vec3 param_2 = _581;
vec3 param_3 = _596; vec3 param_3 = _597;
float param_4 = _543; float param_4 = _543;
vec3 param_5 = _580; vec3 param_5 = _581;
vec3 param_6 = _586; vec3 param_6 = _587;
vec3 param_7 = _591; vec3 param_7 = _592;
float param_8 = _543; float param_8 = _543;
float _647 = max(dot(_580, _591), 0.0); float _648 = max(dot(_581, _592), 0.0);
vec3 _678 = ((light_proj_pos.xyz / vec3(light_proj_pos.w)) * 0.5) + vec3(0.5); vec3 _679 = ((light_proj_pos.xyz / vec3(light_proj_pos.w)) * 0.5) + vec3(0.5);
float _682 = _678.z - 0.000899999984540045261383056640625; float _683 = _679.z - 0.000899999984540045261383056640625;
vec3 _762 = _678; vec3 _763 = _679;
_762.z = _682; _763.z = _683;
light += (((((((((vec3(1.0) - _613) * (1.0 - _549)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_613 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_580, _586), 0.0)) * _647) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_762.xy, _682))) * _647) * _201.sunLightColor) * _201.sunIntensity); light += (((((((((vec3(1.0) - _614) * (1.0 - _549)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_614 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_581, _587), 0.0)) * _648) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_763.xy, _683))) * _648) * _201.sunLightColor) * _201.sunIntensity);
vec3 _718 = reflect(-_586, _580); vec3 _719 = reflect(-_587, _581);
vec3 R = _718; vec3 R = _719;
if (_718.y < 0.0) if (_719.y < 0.0)
{ {
R = reflect(R, vec3(0.0, 1.0, 0.0)); R = reflect(R, vec3(0.0, 1.0, 0.0));
} }
@ -791,109 +791,109 @@ fs_trile_source_glsl430 := u8.[
0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35, 0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,
0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,
0x20,0x3d,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, 0x20,0x3d,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,
0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30, 0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x34,0x39,0x39,
0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36, 0x39,0x39,0x39,0x39,0x34,0x30,0x33,0x39,0x35,0x33,0x35,0x35,0x32,0x32,0x34,0x36,
0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, 0x30,0x39,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,
0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, 0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,
0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67, 0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,
0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, 0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,
0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20, 0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,
0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f, 0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,
0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65, 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,
0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2e,0x78,0x3b,0x0a, 0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2e,0x78,0x3b,0x0a,0x20,
0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x38,0x30,0x20,0x3d,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x38,0x31,0x20,0x3d,0x20,0x6e,
0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,
0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, 0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,
0x20,0x5f,0x35,0x38,0x36,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, 0x5f,0x35,0x38,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,
0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20, 0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x31,0x20,0x3d,0x20,0x6e, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x32,0x20,0x3d,0x20,0x6e,0x6f,
0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75, 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,
0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,
0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x36,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, 0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,
0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x38,0x36,0x20,0x2b,0x20,0x5f,0x35,0x39, 0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x38,0x37,0x20,0x2b,0x20,0x5f,0x35,0x39,0x32,
0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,
0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35, 0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x39,
0x39,0x36,0x2c,0x20,0x5f,0x35,0x38,0x36,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, 0x37,0x2c,0x20,0x5f,0x35,0x38,0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,
0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,
0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33,
0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32, 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,
0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69, 0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,
0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,
0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x35,0x34,0x39,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x35,0x34,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x36,0x31,0x33,0x20,0x3d,0x20,0x66, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x36,0x31,0x34,0x20,0x3d,0x20,0x66,0x72,
0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61, 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,
0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20, 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,
0x3d,0x20,0x5f,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, 0x20,0x5f,0x35,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,
0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x35,0x39,0x36,0x3b, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x35,0x39,0x37,0x3b,0x0a,
0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,
0x5f,0x34,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, 0x34,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,
0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x35, 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x35,0x38,
0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,
0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20, 0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x35,0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,
0x5f,0x35,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x35,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,
0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a, 0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a,0x20,
0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x34,0x37,0x20,0x3d, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x34,0x38,0x20,0x3d,0x20,
0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x30,0x2c,0x20,0x5f, 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x31,0x2c,0x20,0x5f,0x35,
0x35,0x39,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x39,0x32,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,
0x76,0x65,0x63,0x33,0x20,0x5f,0x36,0x37,0x38,0x20,0x3d,0x20,0x28,0x28,0x6c,0x69, 0x65,0x63,0x33,0x20,0x5f,0x36,0x37,0x39,0x20,0x3d,0x20,0x28,0x28,0x6c,0x69,0x67,
0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a, 0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x20,
0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72, 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,
0x6f,0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35, 0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,
0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x38,0x32,0x20,0x3d,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x38,0x33,0x20,0x3d,0x20,0x5f,
0x5f,0x36,0x37,0x38,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x30,0x38,0x39, 0x36,0x37,0x39,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x30,0x38,0x39,0x39,
0x39,0x39,0x39,0x39,0x39,0x38,0x34,0x35,0x34,0x30,0x30,0x34,0x35,0x32,0x36,0x31, 0x39,0x39,0x39,0x39,0x38,0x34,0x35,0x34,0x30,0x30,0x34,0x35,0x32,0x36,0x31,0x33,
0x33,0x38,0x33,0x30,0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20, 0x38,0x33,0x30,0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,
0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x37,0x36,0x32,0x20,0x3d,0x20,0x5f,0x36, 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x37,0x36,0x33,0x20,0x3d,0x20,0x5f,0x36,0x37,
0x37,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x37,0x36,0x32,0x2e,0x7a,0x20,0x3d, 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x37,0x36,0x33,0x2e,0x7a,0x20,0x3d,0x20,
0x20,0x5f,0x36,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, 0x5f,0x36,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,
0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63, 0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,
0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x36,0x31,0x33,0x29,0x20,0x2a, 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x36,0x31,0x34,0x29,0x20,0x2a,0x20,
0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x35,0x34,0x39,0x29,0x29,0x20,0x2a, 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x35,0x34,0x39,0x29,0x29,0x20,0x2a,0x20,
0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,
0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33, 0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,
0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37, 0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,
0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36,0x31,0x33, 0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36,0x31,0x34,0x20,
0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e, 0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,
0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72, 0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,
0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a, 0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,
0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70, 0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,
0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c, 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,
0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,
0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e, 0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,
0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x30, 0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x31,0x2c,
0x2c,0x20,0x5f,0x35,0x38,0x36,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a, 0x20,0x5f,0x35,0x38,0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,
0x20,0x5f,0x36,0x34,0x37,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39, 0x5f,0x36,0x34,0x38,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,
0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31, 0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,
0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29, 0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,
0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64, 0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,
0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c, 0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,
0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x37,0x36,0x32,0x2e,0x78,0x79,0x2c,0x20,0x5f, 0x76,0x65,0x63,0x33,0x28,0x5f,0x37,0x36,0x33,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x36,
0x36,0x38,0x32,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x37,0x29,0x20,0x2a, 0x38,0x33,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x38,0x29,0x20,0x2a,0x20,
0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f, 0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,
0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x49, 0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,
0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,
0x65,0x63,0x33,0x20,0x5f,0x37,0x31,0x38,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65, 0x63,0x33,0x20,0x5f,0x37,0x31,0x39,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,
0x63,0x74,0x28,0x2d,0x5f,0x35,0x38,0x36,0x2c,0x20,0x5f,0x35,0x38,0x30,0x29,0x3b, 0x74,0x28,0x2d,0x5f,0x35,0x38,0x37,0x2c,0x20,0x5f,0x35,0x38,0x31,0x29,0x3b,0x0a,
0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x37, 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x37,0x31,
0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x38, 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x39,0x2e,
0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,
0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, 0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,
0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,
0x6d,0x5f,0x39,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, 0x5f,0x39,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,
0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x32,0x30, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x32,0x30,0x31,
0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,
0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30,0x31,0x2e,0x64,0x65, 0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30,0x31,0x2e,0x64,0x65,0x65,
0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x2c,0x20, 0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,
0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28, 0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,
0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x30,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48, 0x2e,0x30,0x2c,0x20,0x5f,0x32,0x30,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,
0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29, 0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,
0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
/* /*
#version 300 es #version 300 es
@ -1149,30 +1149,30 @@ vs_trile_source_glsl300es := u8.[
int _525 = int(round(trixel_material.w * 255.0)); int _525 = int(round(trixel_material.w * 255.0));
highp float _543 = max(float((_525 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); highp float _543 = max(float((_525 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125);
highp float _549 = float((_525 >> 3) & 3) * 0.3333333432674407958984375; highp float _549 = float((_525 >> 3) & 3) * 0.3333333432674407958984375;
highp vec3 light = (trixel_material.xyz * 0.20000000298023223876953125) * texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_431.screen_w), gl_FragCoord.y / float(_431.screen_h)), 0.0).x; highp vec3 light = (trixel_material.xyz * 0.3499999940395355224609375) * texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_431.screen_w), gl_FragCoord.y / float(_431.screen_h)), 0.0).x;
highp vec3 _580 = normalize(fnormal.xyz); highp vec3 _581 = normalize(fnormal.xyz);
highp vec3 _586 = normalize(cam - vpos); highp vec3 _587 = normalize(cam - vpos);
highp vec3 _591 = normalize(_201.sunPosition); highp vec3 _592 = normalize(_201.sunPosition);
highp vec3 _596 = normalize(_586 + _591); highp vec3 _597 = normalize(_587 + _592);
highp float param = max(dot(_596, _586), 0.0); highp float param = max(dot(_597, _587), 0.0);
highp vec3 param_1 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(_549)); highp vec3 param_1 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(_549));
highp vec3 _613 = fresnelSchlick(param, param_1); highp vec3 _614 = fresnelSchlick(param, param_1);
highp vec3 param_2 = _580; highp vec3 param_2 = _581;
highp vec3 param_3 = _596; highp vec3 param_3 = _597;
highp float param_4 = _543; highp float param_4 = _543;
highp vec3 param_5 = _580; highp vec3 param_5 = _581;
highp vec3 param_6 = _586; highp vec3 param_6 = _587;
highp vec3 param_7 = _591; highp vec3 param_7 = _592;
highp float param_8 = _543; highp float param_8 = _543;
highp float _647 = max(dot(_580, _591), 0.0); highp float _648 = max(dot(_581, _592), 0.0);
highp vec3 _678 = ((light_proj_pos.xyz / vec3(light_proj_pos.w)) * 0.5) + vec3(0.5); highp vec3 _679 = ((light_proj_pos.xyz / vec3(light_proj_pos.w)) * 0.5) + vec3(0.5);
highp float _682 = _678.z - 0.000899999984540045261383056640625; highp float _683 = _679.z - 0.000899999984540045261383056640625;
highp vec3 _762 = _678; highp vec3 _763 = _679;
_762.z = _682; _763.z = _683;
light += (((((((((vec3(1.0) - _613) * (1.0 - _549)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_613 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_580, _586), 0.0)) * _647) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_762.xy, _682))) * _647) * _201.sunLightColor) * _201.sunIntensity); light += (((((((((vec3(1.0) - _614) * (1.0 - _549)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_614 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_581, _587), 0.0)) * _648) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_763.xy, _683))) * _648) * _201.sunLightColor) * _201.sunIntensity);
highp vec3 _718 = reflect(-_586, _580); highp vec3 _719 = reflect(-_587, _581);
highp vec3 R = _718; highp vec3 R = _719;
if (_718.y < 0.0) if (_719.y < 0.0)
{ {
R = reflect(R, vec3(0.0, 1.0, 0.0)); R = reflect(R, vec3(0.0, 1.0, 0.0));
} }
@ -1607,118 +1607,117 @@ fs_trile_source_glsl300es := u8.[
0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,
0x20,0x3d,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, 0x20,0x3d,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,
0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30, 0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x34,0x39,0x39,
0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36, 0x39,0x39,0x39,0x39,0x34,0x30,0x33,0x39,0x35,0x33,0x35,0x35,0x32,0x32,0x34,0x36,
0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, 0x30,0x39,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,
0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, 0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,
0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67, 0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,
0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, 0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,
0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20, 0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,
0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f, 0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,
0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65, 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,
0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2e,0x78,0x3b,0x0a, 0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2e,0x78,0x3b,0x0a,0x20,
0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,
0x35,0x38,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, 0x38,0x31,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,
0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,
0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x38, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x38,0x37,
0x36,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61, 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,
0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, 0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,
0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x31,0x20,0x3d, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x32,0x20,0x3d,0x20,
0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30,0x31,0x2e, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30,0x31,0x2e,0x73,
0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,
0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x37,
0x36,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35, 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x38,
0x38,0x36,0x20,0x2b,0x20,0x5f,0x35,0x39,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x37,0x20,0x2b,0x20,0x5f,0x35,0x39,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,
0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,
0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x39,0x36, 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x39,0x37,0x2c,
0x2c,0x20,0x5f,0x35,0x38,0x36,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x5f,0x35,0x38,0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,
0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33, 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,
0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39, 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,
0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c, 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,
0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,
0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x35,0x34,0x39,0x29, 0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x35,0x34,0x39,0x29,0x29,
0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,
0x33,0x20,0x5f,0x36,0x31,0x33,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c, 0x20,0x5f,0x36,0x31,0x34,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,
0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, 0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,
0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,
0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,
0x3d,0x20,0x5f,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x20,0x5f,0x35,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,
0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,
0x20,0x5f,0x35,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x5f,0x35,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,
0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,
0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x5f,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,
0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,
0x5f,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x35,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,
0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x35,
0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,
0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x35, 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x35,0x39,
0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,
0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x35, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x35,0x34,
0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,
0x6f,0x61,0x74,0x20,0x5f,0x36,0x34,0x37,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64, 0x61,0x74,0x20,0x5f,0x36,0x34,0x38,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,
0x6f,0x74,0x28,0x5f,0x35,0x38,0x30,0x2c,0x20,0x5f,0x35,0x39,0x31,0x29,0x2c,0x20, 0x74,0x28,0x5f,0x35,0x38,0x31,0x2c,0x20,0x5f,0x35,0x39,0x32,0x29,0x2c,0x20,0x30,
0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,
0x76,0x65,0x63,0x33,0x20,0x5f,0x36,0x37,0x38,0x20,0x3d,0x20,0x28,0x28,0x6c,0x69, 0x65,0x63,0x33,0x20,0x5f,0x36,0x37,0x39,0x20,0x3d,0x20,0x28,0x28,0x6c,0x69,0x67,
0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a, 0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x20,
0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72, 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,
0x6f,0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35, 0x6a,0x5f,0x70,0x6f,0x73,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,
0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,
0x36,0x38,0x32,0x20,0x3d,0x20,0x5f,0x36,0x37,0x38,0x2e,0x7a,0x20,0x2d,0x20,0x30, 0x38,0x33,0x20,0x3d,0x20,0x5f,0x36,0x37,0x39,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,
0x2e,0x30,0x30,0x30,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x34,0x35,0x34,0x30, 0x30,0x30,0x30,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x34,0x35,0x34,0x30,0x30,
0x30,0x34,0x35,0x32,0x36,0x31,0x33,0x38,0x33,0x30,0x35,0x36,0x36,0x34,0x30,0x36, 0x34,0x35,0x32,0x36,0x31,0x33,0x38,0x33,0x30,0x35,0x36,0x36,0x34,0x30,0x36,0x32,
0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,
0x63,0x33,0x20,0x5f,0x37,0x36,0x32,0x20,0x3d,0x20,0x5f,0x36,0x37,0x38,0x3b,0x0a, 0x33,0x20,0x5f,0x37,0x36,0x33,0x20,0x3d,0x20,0x5f,0x36,0x37,0x39,0x3b,0x0a,0x20,
0x20,0x20,0x20,0x20,0x5f,0x37,0x36,0x32,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x36,0x38, 0x20,0x20,0x20,0x5f,0x37,0x36,0x33,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x36,0x38,0x33,
0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,
0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,
0x30,0x29,0x20,0x2d,0x20,0x5f,0x36,0x31,0x33,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, 0x29,0x20,0x2d,0x20,0x5f,0x36,0x31,0x34,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,
0x30,0x20,0x2d,0x20,0x5f,0x35,0x34,0x39,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69, 0x20,0x2d,0x20,0x5f,0x35,0x34,0x39,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,
0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,
0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34, 0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,
0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37, 0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,
0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36,0x31,0x33,0x20,0x2a,0x20,0x28, 0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36,0x31,0x34,0x20,0x2a,0x20,0x28,0x44,
0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28, 0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,
0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,
0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,
0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, 0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,
0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72, 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,
0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29, 0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,
0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20, 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,
0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x30,0x2c,0x20,0x5f,0x35, 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x31,0x2c,0x20,0x5f,0x35,0x38,
0x38,0x36,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34, 0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x38,
0x37,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37, 0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,
0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36, 0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,
0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20, 0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,
0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65, 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,
0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63, 0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,
0x33,0x28,0x5f,0x37,0x36,0x32,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x36,0x38,0x32,0x29, 0x28,0x5f,0x37,0x36,0x33,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x36,0x38,0x33,0x29,0x29,
0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x37,0x29,0x20,0x2a,0x20,0x5f,0x32,0x30, 0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x38,0x29,0x20,0x2a,0x20,0x5f,0x32,0x30,0x31,
0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29, 0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,
0x20,0x2a,0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e, 0x2a,0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,
0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,
0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x37,0x31,0x38,0x20,0x3d,0x20,0x72,0x65,0x66, 0x76,0x65,0x63,0x33,0x20,0x5f,0x37,0x31,0x39,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,
0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x35,0x38,0x36,0x2c,0x20,0x5f,0x35,0x38,0x30, 0x65,0x63,0x74,0x28,0x2d,0x5f,0x35,0x38,0x37,0x2c,0x20,0x5f,0x35,0x38,0x31,0x29,
0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,
0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x37,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x52,0x20,0x3d,0x20,0x5f,0x37,0x31,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,
0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30, 0x66,0x20,0x28,0x5f,0x37,0x31,0x39,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,
0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,
0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76, 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65,
0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e, 0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,
0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,
0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,
0x39,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,
0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d, 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,
0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, 0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,
0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,
0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30, 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30,0x31,
0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67, 0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,
0x68,0x74,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73, 0x74,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,
0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x30,0x31,0x2e,0x70,0x6c, 0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x30,0x31,0x2e,0x70,0x6c,0x61,
0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e, 0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,
0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
/* /*
#include <metal_stdlib> #include <metal_stdlib>
@ -2024,30 +2023,30 @@ vs_trile_source_metal_macos := u8.[
int _525 = int(round(trixel_material.w * 255.0)); int _525 = int(round(trixel_material.w * 255.0));
float _543 = fast::max(float((_525 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); float _543 = fast::max(float((_525 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125);
float _549 = float((_525 >> 3) & 3) * 0.3333333432674407958984375; float _549 = float((_525 >> 3) & 3) * 0.3333333432674407958984375;
float3 light = (trixel_material.xyz * 0.20000000298023223876953125) * ssaotex.sample(trilesmp, float2(gl_FragCoord.x / float(_431.screen_w), gl_FragCoord.y / float(_431.screen_h)), bias(0.0)).x; float3 light = (trixel_material.xyz * 0.3499999940395355224609375) * ssaotex.sample(trilesmp, float2(gl_FragCoord.x / float(_431.screen_w), gl_FragCoord.y / float(_431.screen_h)), bias(0.0)).x;
float3 _580 = fast::normalize(in.fnormal.xyz); float3 _581 = fast::normalize(in.fnormal.xyz);
float3 _586 = fast::normalize(in.cam - in.vpos); float3 _587 = fast::normalize(in.cam - in.vpos);
float3 _591 = fast::normalize(float3(_201.sunPosition)); float3 _592 = fast::normalize(float3(_201.sunPosition));
float3 _596 = fast::normalize(_586 + _591); float3 _597 = fast::normalize(_587 + _592);
float param = fast::max(dot(_596, _586), 0.0); float param = fast::max(dot(_597, _587), 0.0);
float3 param_1 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(_549)); float3 param_1 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(_549));
float3 _613 = fresnelSchlick(param, param_1); float3 _614 = fresnelSchlick(param, param_1);
float3 param_2 = _580; float3 param_2 = _581;
float3 param_3 = _596; float3 param_3 = _597;
float param_4 = _543; float param_4 = _543;
float3 param_5 = _580; float3 param_5 = _581;
float3 param_6 = _586; float3 param_6 = _587;
float3 param_7 = _591; float3 param_7 = _592;
float param_8 = _543; float param_8 = _543;
float _647 = fast::max(dot(_580, _591), 0.0); float _648 = fast::max(dot(_581, _592), 0.0);
float3 _678 = ((in.light_proj_pos.xyz / float3(in.light_proj_pos.w)) * 0.5) + float3(0.5); float3 _679 = ((in.light_proj_pos.xyz / float3(in.light_proj_pos.w)) * 0.5) + float3(0.5);
float _682 = _678.z - 0.000899999984540045261383056640625; float _683 = _679.z - 0.000899999984540045261383056640625;
float3 _762 = _678; float3 _763 = _679;
_762.z = _682; _763.z = _683;
light += (((((((((float3(1.0) - _613) * (1.0 - _549)) * trixel_material.xyz) * float3(0.3183410167694091796875)) + ((_613 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(_580, _586), 0.0)) * _647) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _762.xy, _682)) * _647) * _201.sunLightColor) * _201.sunIntensity); light += (((((((((float3(1.0) - _614) * (1.0 - _549)) * trixel_material.xyz) * float3(0.3183410167694091796875)) + ((_614 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(_581, _587), 0.0)) * _648) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _763.xy, _683)) * _648) * _201.sunLightColor) * _201.sunIntensity);
float3 _718 = reflect(-_586, _580); float3 _719 = reflect(-_587, _581);
float3 R = _718; float3 R = _719;
if (_718.y < 0.0) if (_719.y < 0.0)
{ {
R = reflect(R, float3(0.0, 1.0, 0.0)); R = reflect(R, float3(0.0, 1.0, 0.0));
} }
@ -2529,119 +2528,119 @@ fs_trile_source_metal_macos := u8.[
0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,
0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,
0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30, 0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x34,0x39,0x39,0x39,0x39,0x39,0x39,
0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31, 0x34,0x30,0x33,0x39,0x35,0x33,0x35,0x35,0x32,0x32,0x34,0x36,0x30,0x39,0x33,0x37,
0x32,0x35,0x29,0x20,0x2a,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x2e,0x73,0x61, 0x35,0x29,0x20,0x2a,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,
0x6d,0x70,0x6c,0x65,0x28,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x66, 0x70,0x6c,0x65,0x28,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,
0x6c,0x6f,0x61,0x74,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f, 0x6f,0x61,0x74,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,
0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x34,0x33, 0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x34,0x33,0x31,
0x31,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f, 0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,
0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c, 0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,
0x6f,0x61,0x74,0x28,0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f, 0x61,0x74,0x28,0x5f,0x34,0x33,0x31,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,
0x68,0x29,0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30,0x2e,0x30,0x29,0x29,0x2e, 0x29,0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30,0x2e,0x30,0x29,0x29,0x2e,0x78,
0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x38,
0x38,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61, 0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,
0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e, 0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,
0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,
0x20,0x5f,0x35,0x38,0x36,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f, 0x5f,0x35,0x38,0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,
0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61,0x6d,0x20,0x2d, 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20,
0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x39,0x31,0x20,0x3d,0x20,0x66,0x61,0x73, 0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x39,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,
0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f, 0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,
0x61,0x74,0x33,0x28,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69, 0x74,0x33,0x28,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,
0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x74,0x33,0x20,0x5f,0x35,0x39,0x36,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, 0x33,0x20,0x5f,0x35,0x39,0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,
0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x38,0x36,0x20,0x2b, 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x38,0x37,0x20,0x2b,0x20,
0x20,0x5f,0x35,0x39,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x5f,0x35,0x39,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,
0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x39,0x36,0x2c,0x20,0x5f,0x35, 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x39,0x37,0x2c,0x20,0x5f,0x35,0x38,
0x38,0x36,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,
0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x33,0x39, 0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,
0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33, 0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,
0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65, 0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,
0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20, 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x35,0x34,0x39,0x29,0x29,0x3b,0x0a,0x20, 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x35,0x34,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x36,0x31,0x33,0x20,0x3d, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x36,0x31,0x34,0x20,0x3d,0x20,
0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28, 0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,
0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b, 0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,
0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,
0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x5f,0x32,0x20,0x3d,0x20,0x5f,0x35,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,
0x20,0x5f,0x35,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x5f,0x35,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,
0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a,
0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,
0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x5f,0x35,0x20,0x3d,0x20,0x5f,0x35,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,
0x20,0x5f,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x5f,0x35,0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x35,0x39,0x31, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x35,0x39,0x32,0x3b,
0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,
0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x5f,0x38,0x20,0x3d,0x20,0x5f,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,
0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x34,0x37,0x20,0x3d,0x20,0x66,0x61,0x73, 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x34,0x38,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,
0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x30,0x2c, 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x31,0x2c,0x20,
0x20,0x5f,0x35,0x39,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, 0x5f,0x35,0x39,0x32,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,
0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x36,0x37,0x38,0x20,0x3d,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x36,0x37,0x39,0x20,0x3d,0x20,0x28,
0x28,0x28,0x69,0x6e,0x2e,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,
0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
0x28,0x69,0x6e,0x2e,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,0x70, 0x28,0x69,0x6e,0x2e,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,0x70,
0x6f,0x73,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20, 0x6f,0x73,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x69,0x6e,0x2e,0x6c,0x69,0x67,0x68,0x74,0x5f,0x70,0x72,0x6f,0x6a,0x5f,0x70,0x6f,
0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x38,0x32,0x20,0x3d,0x20,0x5f,0x36, 0x73,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,
0x37,0x38,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x30,0x38,0x39,0x39,0x39, 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
0x39,0x39,0x39,0x38,0x34,0x35,0x34,0x30,0x30,0x34,0x35,0x32,0x36,0x31,0x33,0x38, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x38,0x33,0x20,0x3d,0x20,0x5f,0x36,0x37,
0x33,0x30,0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x39,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x30,0x38,0x39,0x39,0x39,0x39,
0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x37,0x36,0x32,0x20,0x3d,0x20,0x5f,0x36, 0x39,0x39,0x38,0x34,0x35,0x34,0x30,0x30,0x34,0x35,0x32,0x36,0x31,0x33,0x38,0x33,
0x37,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x37,0x36,0x32,0x2e,0x7a,0x20,0x3d, 0x30,0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,
0x20,0x5f,0x36,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x37,0x36,0x33,0x20,0x3d,0x20,0x5f,0x36,0x37,
0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f, 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x37,0x36,0x33,0x2e,0x7a,0x20,0x3d,0x20,
0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x36,0x31,0x33,0x29, 0x5f,0x36,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,
0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x35,0x34,0x39,0x29,0x29, 0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,
0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, 0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x36,0x31,0x34,0x29,0x20,
0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x35,0x34,0x39,0x29,0x29,0x20,
0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34, 0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,
0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,
0x5f,0x36,0x31,0x33,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75, 0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,
0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c, 0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,
0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x36,0x31,0x34,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,
0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69, 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,
0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,
0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61, 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,
0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,
0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,
0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x30,0x2c,0x20,0x5f,0x35, 0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
0x38,0x36,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34, 0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,
0x37,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37, 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x38,0x31,0x2c,0x20,0x5f,0x35,0x38,
0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36, 0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x38,
0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20, 0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,
0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65, 0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,
0x5f,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x73, 0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x73,
0x6d,0x70,0x2c,0x20,0x5f,0x37,0x36,0x32,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x36,0x38, 0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,
0x32,0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x37,0x29,0x20,0x2a,0x20,0x5f,0x32, 0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,
0x30,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72, 0x70,0x2c,0x20,0x5f,0x37,0x36,0x33,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x36,0x38,0x33,
0x29,0x20,0x2a,0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65, 0x29,0x29,0x20,0x2a,0x20,0x5f,0x36,0x34,0x38,0x29,0x20,0x2a,0x20,0x5f,0x32,0x30,
0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,
0x74,0x33,0x20,0x5f,0x37,0x31,0x38,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63, 0x20,0x2a,0x20,0x5f,0x32,0x30,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,
0x74,0x28,0x2d,0x5f,0x35,0x38,0x36,0x2c,0x20,0x5f,0x35,0x38,0x30,0x29,0x3b,0x0a, 0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f, 0x33,0x20,0x5f,0x37,0x31,0x39,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,
0x37,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31, 0x28,0x2d,0x5f,0x35,0x38,0x37,0x2c,0x20,0x5f,0x35,0x38,0x31,0x29,0x3b,0x0a,0x20,
0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x37,
0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66, 0x31,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x39,
0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, 0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,
0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,
0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,
0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20, 0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,
0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,
0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x30,0x31,0x2e, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,
0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,
0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x30,0x31,0x2e,0x73,
0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c, 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,
0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x30,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f, 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,
0x6c,0x6f,0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x2c,0x20,0x66,0x6c,0x6f, 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,
0x61,0x74,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30, 0x61,0x74,0x33,0x28,0x5f,0x32,0x30,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,
0x2e,0x30,0x2c,0x20,0x5f,0x32,0x30,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65, 0x6f,0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x2c,0x20,0x66,0x6c,0x6f,0x61,
0x69,0x67,0x68,0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29, 0x74,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,
0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, 0x30,0x2c,0x20,0x5f,0x32,0x30,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,
0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 0x67,0x68,0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,
0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,
0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
]; ];
trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc {
desc: sg_shader_desc; desc: sg_shader_desc;

View File

@ -139,7 +139,7 @@ void main() {
screen_uv.y = 1.0 - screen_uv.y; screen_uv.y = 1.0 - screen_uv.y;
vec3 reflected_color = texture(sampler2D(reftex, refsmp), screen_uv).rgb; vec3 reflected_color = texture(sampler2D(reftex, refsmp), screen_uv).rgb;
vec3 surface_color = mix(refracted_color, reflected_color, min(1.0, fresnel * 1.5)); vec3 surface_color = mix(refracted_color, reflected_color, min(1.0, fresnel * 1.8));
vec3 final_color = (surface_color + specular_highlight) * shadow_factor; vec3 final_color = (surface_color + specular_highlight) * shadow_factor;
float refraction_alpha = 0.3; float refraction_alpha = 0.3;
float reflection_alpha = 0.5; float reflection_alpha = 0.5;

View File

@ -115,7 +115,8 @@ void main() {
float vignette = 1.0 - smoothstep(0.0, vignette_radius, length(texcoord - vec2(0.5))) * vignette_intensity; float vignette = 1.0 - smoothstep(0.0, vignette_radius, length(texcoord - vec2(0.5))) * vignette_intensity;
color_srgb *= vignette; color_srgb *= vignette;
float scanline = 1.0 - (sin(texcoord.y * textureSize(sampler2D(pptex, ppsmp), 0).y * scanlines_density) * 0.5 + 0.5) * scanlines_intensity; float scanline = 1.0 - (sin(gl_FragCoord.y * scanlines_density) * 0.5 + 0.5) * scanlines_intensity;
color_srgb *= scanline; color_srgb *= scanline;
float grain = (rand(texcoord) - 0.5) * film_grain_intensity; float grain = (rand(texcoord) - 0.5) * film_grain_intensity;

View File

@ -220,7 +220,7 @@ void main() {
// Ambient light. // Ambient light.
float ssao_sample = texture(sampler2D(ssaotex, trilesmp), vec2(gl_FragCoord.x/screen_w, gl_FragCoord.y/screen_h), 0).r; float ssao_sample = texture(sampler2D(ssaotex, trilesmp), vec2(gl_FragCoord.x/screen_w, gl_FragCoord.y/screen_h), 0).r;
vec3 light = 0.2 * albedo * ssao_sample; vec3 light = 0.35 * albedo * ssao_sample;
vec3 N = normalize(fnormal.xyz); vec3 N = normalize(fnormal.xyz);
vec3 V = normalize(cam - vpos.xyz); vec3 V = normalize(cam - vpos.xyz);

View File

@ -4,6 +4,12 @@ t_label_left :: (theme: *GR.Overall_Theme) -> GR.Label_Theme {
return t; return t;
} }
t_label_center :: (theme: *GR.Overall_Theme) -> GR.Label_Theme {
t := theme.label_theme;
t.alignment = GR.Text_Alignment.Center;
return t;
}
t_button_tab :: (theme: *GR.Overall_Theme, active: bool) -> GR.Button_Theme { t_button_tab :: (theme: *GR.Overall_Theme, active: bool) -> GR.Button_Theme {
t := theme.button_theme; t := theme.button_theme;

View File

@ -374,8 +374,6 @@ get_font_at_size :: (pixel_height: int) -> *Font {
return get_font_at_size(list, pixel_height); return get_font_at_size(list, pixel_height);
} }
idk : bool;
test_color : Vector3 = .{1.0, 0.0, 1.0}; test_color : Vector3 = .{1.0, 0.0, 1.0};
draw_bg_rectangle :: (r: GR.Rect, theme: GR.Overall_Theme) { draw_bg_rectangle :: (r: GR.Rect, theme: GR.Overall_Theme) {
@ -388,6 +386,24 @@ draw_rectangle :: (r: GR.Rect, color: Vector4) {
immediate_flush(); immediate_flush();
} }
draw_ui_rect_animation:: (r: GR.Rect, animationPlayer: *Animation_Player) {
tex := New(Ui_Texture ,,temp);
animation_player_tick(animationPlayer);
animation := animationPlayer.current_animation;
tex.tex = animation.sheet;
set_shader_for_images(tex);
frame := animation.frames[animationPlayer.current_frame];
uv := Vector4.{
cast(float) frame.x / cast(float)animation.sheet_w,
cast(float) frame.y / cast(float)animation.sheet_h,
cast(float) frame.w / cast(float)animation.sheet_w,
cast(float) frame.h / cast(float)animation.sheet_h,
};
immediate_quad(.{r.x, r.y}, .{r.x + r.w, r.y}, .{r.x + r.w, r.y + r.h}, .{r.x, r.y + r.h}, .{0.9,0.9,0.9,1}, .{uv.x, uv.y}, .{uv.x + uv.z, uv.y}, .{uv.x + uv.z, uv.y + uv.w}, .{uv.x, uv.y + uv.w});
immediate_flush();
set_shader_for_color();
}
font_boundary :: () { font_boundary :: () {
arb_tri_command_add(.{type = .FONT_BOUNDARY}); arb_tri_command_add(.{type = .FONT_BOUNDARY});
} }
@ -397,6 +413,7 @@ render_ui :: () {
my_theme := proc(); my_theme := proc();
GR.set_default_theme(my_theme); GR.set_default_theme(my_theme);
draw_editor_ui(*my_theme); draw_editor_ui(*my_theme);
game_ui(*my_theme);
} }
ui_pass :: () { ui_pass :: () {

View File

@ -2,3 +2,8 @@ sign :: (x: float) -> float {
if x < 0 then return -1; if x < 0 then return -1;
return 1; return 1;
} }
mix :: (a: float, b: float, mix: float) -> float {
mixFactor := max(0.0, min(mix, 1.0));
return a * (1.0 - mixFactor) + mixFactor * b;
}