From 78ee247bf5c5bde7010b2d984afb934c68b49e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sat, 5 Sep 2026 19:46:00 +0000 Subject: [PATCH] S2H cleanup. (#3964) --- examples/54-s2h/cs_s2h_scatter.sc | 4 +- examples/54-s2h/fs_s2h.sc | 5 +- examples/54-s2h/fs_s2h_2d.sc | 7 +- examples/54-s2h/fs_s2h_3d.sc | 10 +- examples/54-s2h/fs_s2h_arrow.sc | 5 +- examples/54-s2h/fs_s2h_clear.sc | 4 +- examples/54-s2h/fs_s2h_coordinate_system.sc | 5 +- examples/54-s2h/fs_s2h_debug_zoom.sc | 6 +- examples/54-s2h/fs_s2h_gather.sc | 16 ++-- examples/54-s2h/fs_s2h_generate_user_font.sc | 7 +- examples/54-s2h/fs_s2h_quadpost.sc | 4 +- examples/54-s2h/fs_s2h_quadpost_scene.sc | 8 +- examples/54-s2h/fs_s2h_quadvsps.sc | 7 +- examples/54-s2h/fs_s2h_screen.sc | 5 +- examples/54-s2h/fs_s2h_table.sc | 5 +- examples/54-s2h/fs_s2h_use_user_font.sc | 2 +- examples/54-s2h/fs_s2h_zoom2d.sc | 11 +-- examples/54-s2h/s2h.cpp | 86 +++++++++++------- examples/common/{ => s2h}/s2h.hlsl | 0 examples/common/s2h/s2h.sh | 6 ++ examples/common/{ => s2h}/s2h_3d.hlsl | 0 examples/common/s2h/s2h_3d.sh | 5 + examples/common/s2h/s2h_bgfx.sh | 31 +++++++ examples/common/{ => s2h}/s2h_glsl.hlsl | 46 +++++----- examples/common/{ => s2h}/s2h_scatter.hlsl | 0 examples/common/s2h/s2h_scatter.sh | 5 + examples/common/s2h_bgfx.sh | 43 --------- .../runtime/shaders/dxbc/cs_s2h_scatter.bin | Bin 69441 -> 69433 bytes .../shaders/dxbc/cs_s2h_scatter_clear.bin | Bin 349 -> 341 bytes examples/runtime/shaders/dxbc/fs_s2h.bin | Bin 8186 -> 8178 bytes examples/runtime/shaders/dxbc/fs_s2h_2d.bin | Bin 50387 -> 50379 bytes examples/runtime/shaders/dxbc/fs_s2h_3d.bin | Bin 34915 -> 34907 bytes .../runtime/shaders/dxbc/fs_s2h_arrow.bin | Bin 101812 -> 101804 bytes .../runtime/shaders/dxbc/fs_s2h_clear.bin | Bin 7267 -> 7259 bytes .../shaders/dxbc/fs_s2h_coordinate_system.bin | Bin 16122 -> 16114 bytes .../shaders/dxbc/fs_s2h_debug_zoom.bin | Bin 1402 -> 1394 bytes .../runtime/shaders/dxbc/fs_s2h_gather.bin | Bin 89775 -> 89767 bytes .../dxbc/fs_s2h_generate_user_font.bin | Bin 4646 -> 4638 bytes .../runtime/shaders/dxbc/fs_s2h_quadpost.bin | Bin 830 -> 822 bytes .../shaders/dxbc/fs_s2h_quadpost_scene.bin | Bin 798 -> 790 bytes .../runtime/shaders/dxbc/fs_s2h_quadvsps.bin | Bin 23440 -> 23432 bytes .../shaders/dxbc/fs_s2h_scatter_display.bin | Bin 387 -> 379 bytes .../runtime/shaders/dxbc/fs_s2h_screen.bin | Bin 12463 -> 12455 bytes .../runtime/shaders/dxbc/fs_s2h_table.bin | Bin 54918 -> 54910 bytes .../shaders/dxbc/fs_s2h_use_user_font.bin | Bin 1409 -> 1401 bytes .../runtime/shaders/dxbc/fs_s2h_zoom2d.bin | Bin 41190 -> 41182 bytes examples/runtime/shaders/dxbc/vs_s2h.bin | Bin 642 -> 634 bytes .../runtime/shaders/dxil/cs_s2h_scatter.bin | Bin 29249 -> 29713 bytes .../shaders/dxil/cs_s2h_scatter_clear.bin | Bin 1869 -> 1861 bytes examples/runtime/shaders/dxil/fs_s2h.bin | Bin 6818 -> 6810 bytes examples/runtime/shaders/dxil/fs_s2h_2d.bin | Bin 20983 -> 20111 bytes examples/runtime/shaders/dxil/fs_s2h_3d.bin | Bin 16571 -> 16563 bytes .../runtime/shaders/dxil/fs_s2h_arrow.bin | Bin 16888 -> 15072 bytes .../runtime/shaders/dxil/fs_s2h_clear.bin | Bin 4763 -> 4727 bytes .../shaders/dxil/fs_s2h_coordinate_system.bin | Bin 10570 -> 10166 bytes .../shaders/dxil/fs_s2h_debug_zoom.bin | Bin 3162 -> 3154 bytes .../runtime/shaders/dxil/fs_s2h_gather.bin | Bin 31159 -> 30671 bytes .../dxil/fs_s2h_generate_user_font.bin | Bin 3954 -> 3862 bytes .../runtime/shaders/dxil/fs_s2h_quadpost.bin | Bin 2814 -> 2806 bytes .../shaders/dxil/fs_s2h_quadpost_scene.bin | Bin 2446 -> 2438 bytes .../runtime/shaders/dxil/fs_s2h_quadvsps.bin | Bin 10004 -> 9996 bytes .../shaders/dxil/fs_s2h_scatter_display.bin | Bin 4023 -> 4015 bytes .../runtime/shaders/dxil/fs_s2h_screen.bin | Bin 6347 -> 6251 bytes .../runtime/shaders/dxil/fs_s2h_table.bin | Bin 19894 -> 19762 bytes .../shaders/dxil/fs_s2h_use_user_font.bin | Bin 3057 -> 3049 bytes .../runtime/shaders/dxil/fs_s2h_zoom2d.bin | Bin 17202 -> 16822 bytes examples/runtime/shaders/dxil/vs_s2h.bin | Bin 2826 -> 2818 bytes .../runtime/shaders/essl/cs_s2h_scatter.bin | Bin 0 -> 232413 bytes .../shaders/essl/cs_s2h_scatter_clear.bin | Bin 0 -> 636 bytes examples/runtime/shaders/essl/fs_s2h.bin | Bin 11016 -> 11008 bytes examples/runtime/shaders/essl/fs_s2h_2d.bin | Bin 87339 -> 87331 bytes examples/runtime/shaders/essl/fs_s2h_3d.bin | Bin 66141 -> 66133 bytes .../runtime/shaders/essl/fs_s2h_arrow.bin | Bin 48819 -> 48811 bytes .../runtime/shaders/essl/fs_s2h_clear.bin | Bin 6969 -> 6961 bytes .../shaders/essl/fs_s2h_coordinate_system.bin | Bin 29098 -> 29090 bytes .../shaders/essl/fs_s2h_debug_zoom.bin | Bin 1890 -> 1882 bytes .../runtime/shaders/essl/fs_s2h_gather.bin | Bin 169487 -> 169479 bytes .../essl/fs_s2h_generate_user_font.bin | Bin 3878 -> 3870 bytes .../runtime/shaders/essl/fs_s2h_quadpost.bin | Bin 588 -> 580 bytes .../shaders/essl/fs_s2h_quadpost_scene.bin | Bin 641 -> 633 bytes .../runtime/shaders/essl/fs_s2h_quadvsps.bin | Bin 37780 -> 37772 bytes .../shaders/essl/fs_s2h_scatter_display.bin | Bin 296 -> 288 bytes .../runtime/shaders/essl/fs_s2h_screen.bin | Bin 19531 -> 19523 bytes .../runtime/shaders/essl/fs_s2h_table.bin | Bin 113480 -> 113472 bytes .../shaders/essl/fs_s2h_use_user_font.bin | Bin 2172 -> 2164 bytes .../runtime/shaders/essl/fs_s2h_zoom2d.bin | Bin 84142 -> 84134 bytes examples/runtime/shaders/essl/vs_s2h.bin | Bin 381 -> 373 bytes .../runtime/shaders/glsl/cs_s2h_scatter.bin | Bin 232355 -> 232347 bytes .../shaders/glsl/cs_s2h_scatter_clear.bin | Bin 638 -> 630 bytes examples/runtime/shaders/glsl/fs_s2h.bin | Bin 10844 -> 10836 bytes examples/runtime/shaders/glsl/fs_s2h_2d.bin | Bin 85639 -> 85631 bytes examples/runtime/shaders/glsl/fs_s2h_3d.bin | Bin 63782 -> 63774 bytes .../runtime/shaders/glsl/fs_s2h_arrow.bin | Bin 46823 -> 46815 bytes .../runtime/shaders/glsl/fs_s2h_clear.bin | Bin 6755 -> 6747 bytes .../shaders/glsl/fs_s2h_coordinate_system.bin | Bin 28216 -> 28208 bytes .../shaders/glsl/fs_s2h_debug_zoom.bin | Bin 1754 -> 1746 bytes .../runtime/shaders/glsl/fs_s2h_gather.bin | Bin 167009 -> 167001 bytes .../glsl/fs_s2h_generate_user_font.bin | Bin 3778 -> 3770 bytes .../runtime/shaders/glsl/fs_s2h_quadpost.bin | Bin 512 -> 504 bytes .../shaders/glsl/fs_s2h_quadpost_scene.bin | Bin 577 -> 569 bytes .../runtime/shaders/glsl/fs_s2h_quadvsps.bin | Bin 37128 -> 37120 bytes .../shaders/glsl/fs_s2h_scatter_display.bin | Bin 232 -> 224 bytes .../runtime/shaders/glsl/fs_s2h_screen.bin | Bin 19221 -> 19213 bytes .../runtime/shaders/glsl/fs_s2h_table.bin | Bin 111700 -> 111692 bytes .../shaders/glsl/fs_s2h_use_user_font.bin | Bin 2078 -> 2070 bytes .../runtime/shaders/glsl/fs_s2h_zoom2d.bin | Bin 82600 -> 82592 bytes examples/runtime/shaders/glsl/vs_s2h.bin | Bin 381 -> 373 bytes .../runtime/shaders/metal/cs_s2h_scatter.bin | Bin 0 -> 156206 bytes .../shaders/metal/cs_s2h_scatter_clear.bin | Bin 0 -> 713 bytes examples/runtime/shaders/metal/fs_s2h.bin | Bin 0 -> 9005 bytes examples/runtime/shaders/metal/fs_s2h_2d.bin | Bin 0 -> 60676 bytes examples/runtime/shaders/metal/fs_s2h_3d.bin | Bin 0 -> 56129 bytes .../runtime/shaders/metal/fs_s2h_arrow.bin | Bin 0 -> 43661 bytes .../runtime/shaders/metal/fs_s2h_clear.bin | Bin 0 -> 7059 bytes .../metal/fs_s2h_coordinate_system.bin | Bin 0 -> 23089 bytes .../shaders/metal/fs_s2h_debug_zoom.bin | Bin 0 -> 1654 bytes .../runtime/shaders/metal/fs_s2h_gather.bin | Bin 0 -> 111288 bytes .../metal/fs_s2h_generate_user_font.bin | Bin 0 -> 4822 bytes .../runtime/shaders/metal/fs_s2h_quadpost.bin | Bin 0 -> 985 bytes .../shaders/metal/fs_s2h_quadpost_scene.bin | Bin 0 -> 908 bytes .../runtime/shaders/metal/fs_s2h_quadvsps.bin | Bin 0 -> 29656 bytes .../shaders/metal/fs_s2h_scatter_display.bin | Bin 0 -> 621 bytes .../runtime/shaders/metal/fs_s2h_screen.bin | Bin 0 -> 14476 bytes .../runtime/shaders/metal/fs_s2h_table.bin | Bin 0 -> 78113 bytes .../shaders/metal/fs_s2h_use_user_font.bin | Bin 0 -> 2165 bytes .../runtime/shaders/metal/fs_s2h_zoom2d.bin | Bin 0 -> 57589 bytes examples/runtime/shaders/metal/vs_s2h.bin | Bin 0 -> 842 bytes .../runtime/shaders/spirv/cs_s2h_scatter.bin | Bin 138290 -> 138282 bytes .../shaders/spirv/cs_s2h_scatter_clear.bin | Bin 1250 -> 1242 bytes examples/runtime/shaders/spirv/fs_s2h.bin | Bin 11994 -> 11986 bytes examples/runtime/shaders/spirv/fs_s2h_2d.bin | Bin 81063 -> 81055 bytes examples/runtime/shaders/spirv/fs_s2h_3d.bin | Bin 55959 -> 55951 bytes .../runtime/shaders/spirv/fs_s2h_arrow.bin | Bin 51940 -> 51932 bytes .../runtime/shaders/spirv/fs_s2h_clear.bin | Bin 9339 -> 9331 bytes .../spirv/fs_s2h_coordinate_system.bin | Bin 29798 -> 29790 bytes .../shaders/spirv/fs_s2h_debug_zoom.bin | Bin 2734 -> 2726 bytes .../runtime/shaders/spirv/fs_s2h_gather.bin | Bin 137091 -> 137083 bytes .../spirv/fs_s2h_generate_user_font.bin | Bin 6294 -> 6286 bytes .../runtime/shaders/spirv/fs_s2h_quadpost.bin | Bin 1622 -> 1614 bytes .../shaders/spirv/fs_s2h_quadpost_scene.bin | Bin 1534 -> 1526 bytes .../runtime/shaders/spirv/fs_s2h_quadvsps.bin | Bin 33232 -> 33224 bytes .../shaders/spirv/fs_s2h_scatter_display.bin | Bin 775 -> 767 bytes .../runtime/shaders/spirv/fs_s2h_screen.bin | Bin 19395 -> 19387 bytes .../runtime/shaders/spirv/fs_s2h_table.bin | Bin 82626 -> 82618 bytes .../shaders/spirv/fs_s2h_use_user_font.bin | Bin 3073 -> 3065 bytes .../runtime/shaders/spirv/fs_s2h_zoom2d.bin | Bin 66722 -> 66714 bytes examples/runtime/shaders/spirv/vs_s2h.bin | Bin 1278 -> 1270 bytes .../runtime/shaders/wgsl/cs_s2h_scatter.bin | Bin 373327 -> 373319 bytes .../shaders/wgsl/cs_s2h_scatter_clear.bin | Bin 745 -> 737 bytes examples/runtime/shaders/wgsl/fs_s2h.bin | Bin 28342 -> 28334 bytes examples/runtime/shaders/wgsl/fs_s2h_2d.bin | Bin 196907 -> 196899 bytes examples/runtime/shaders/wgsl/fs_s2h_3d.bin | Bin 104912 -> 104904 bytes .../runtime/shaders/wgsl/fs_s2h_arrow.bin | Bin 96885 -> 96877 bytes .../runtime/shaders/wgsl/fs_s2h_clear.bin | Bin 8627 -> 8619 bytes .../shaders/wgsl/fs_s2h_coordinate_system.bin | Bin 66677 -> 66669 bytes .../shaders/wgsl/fs_s2h_debug_zoom.bin | Bin 1806 -> 1798 bytes .../runtime/shaders/wgsl/fs_s2h_gather.bin | Bin 206198 -> 206190 bytes .../wgsl/fs_s2h_generate_user_font.bin | Bin 3980 -> 3972 bytes .../runtime/shaders/wgsl/fs_s2h_quadpost.bin | Bin 1043 -> 1035 bytes .../shaders/wgsl/fs_s2h_quadpost_scene.bin | Bin 1006 -> 998 bytes .../runtime/shaders/wgsl/fs_s2h_quadvsps.bin | Bin 104166 -> 104158 bytes .../shaders/wgsl/fs_s2h_scatter_display.bin | Bin 588 -> 580 bytes .../runtime/shaders/wgsl/fs_s2h_screen.bin | Bin 52365 -> 52357 bytes .../runtime/shaders/wgsl/fs_s2h_table.bin | Bin 281664 -> 281656 bytes .../shaders/wgsl/fs_s2h_use_user_font.bin | Bin 1956 -> 1948 bytes .../runtime/shaders/wgsl/fs_s2h_zoom2d.bin | Bin 209223 -> 209215 bytes examples/runtime/shaders/wgsl/vs_s2h.bin | Bin 953 -> 945 bytes 167 files changed, 168 insertions(+), 165 deletions(-) rename examples/common/{ => s2h}/s2h.hlsl (100%) create mode 100644 examples/common/s2h/s2h.sh rename examples/common/{ => s2h}/s2h_3d.hlsl (100%) create mode 100644 examples/common/s2h/s2h_3d.sh create mode 100644 examples/common/s2h/s2h_bgfx.sh rename examples/common/{ => s2h}/s2h_glsl.hlsl (85%) rename examples/common/{ => s2h}/s2h_scatter.hlsl (100%) create mode 100644 examples/common/s2h/s2h_scatter.sh delete mode 100644 examples/common/s2h_bgfx.sh create mode 100644 examples/runtime/shaders/essl/cs_s2h_scatter.bin create mode 100644 examples/runtime/shaders/essl/cs_s2h_scatter_clear.bin create mode 100644 examples/runtime/shaders/metal/cs_s2h_scatter.bin create mode 100644 examples/runtime/shaders/metal/cs_s2h_scatter_clear.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_2d.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_3d.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_arrow.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_clear.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_coordinate_system.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_debug_zoom.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_gather.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_generate_user_font.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_quadpost.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_quadpost_scene.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_quadvsps.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_scatter_display.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_screen.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_table.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_use_user_font.bin create mode 100644 examples/runtime/shaders/metal/fs_s2h_zoom2d.bin create mode 100644 examples/runtime/shaders/metal/vs_s2h.bin diff --git a/examples/54-s2h/cs_s2h_scatter.sc b/examples/54-s2h/cs_s2h_scatter.sc index 71b0b4505..b92099986 100644 --- a/examples/54-s2h/cs_s2h_scatter.sc +++ b/examples/54-s2h/cs_s2h_scatter.sc @@ -1,8 +1,6 @@ // Port of ShaderToHuman-bgfx/examples/Features/Scatter_example.hlsl. #include "bgfx_compute.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" -#include "s2h_scatter.hlsl" +#include "s2h/s2h_scatter.sh" IMAGE2D_WO(s_scatterColor, rgba8, 0); uniform vec4 u_s2hScatterSize; diff --git a/examples/54-s2h/fs_s2h.sc b/examples/54-s2h/fs_s2h.sc index 2c64e4c41..afa1d970b 100644 --- a/examples/54-s2h/fs_s2h.sc +++ b/examples/54-s2h/fs_s2h.sc @@ -1,10 +1,7 @@ $input v_color0, v_texcoord0 -// The S2H sources are shared with the HLSL integration; this adapter supplies -// shaderc-compatible definitions for the bgfx backends. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" void main() { diff --git a/examples/54-s2h/fs_s2h_2d.sc b/examples/54-s2h/fs_s2h_2d.sc index 8ea72832e..af0e61a62 100644 --- a/examples/54-s2h/fs_s2h_2d.sc +++ b/examples/54-s2h/fs_s2h_2d.sc @@ -2,8 +2,7 @@ $input v_color0, v_texcoord0 // Fragment-renderer port of ShaderToHuman-bgfx/examples/Features/2D_example.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" uniform vec4 u_s2hTime; uniform vec4 u_s2hMouse; @@ -36,7 +35,7 @@ void drawBlendingExample(inout ContextGather _ui) vec3 color = s2h_indexToColor(uint(peelId)); vec2 center = vec2(sin(angle), cos(angle)) * 60.0f + vec2(105.0f, 450.0f); float alpha = saturate(2.0f - length(_ui.pxPos - center) / 25.0f); - overColor = lerp(overColor, color, alpha); + overColor = mix(overColor, color, alpha); underAccumulator.rgb += color * alpha * (1.0f - underAccumulator.a); underAccumulator.a = 1.0f - (1.0f - alpha) * (1.0f - underAccumulator.a); } @@ -111,5 +110,5 @@ void main() drawBlendingExample(ui); vec4 background = vec4(0.7f, 0.4f, 0.4f, 1.0f); - gl_FragColor = lerp(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); + gl_FragColor = mix(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); } diff --git a/examples/54-s2h/fs_s2h_3d.sc b/examples/54-s2h/fs_s2h_3d.sc index 7bc0eb0de..bb7f08186 100644 --- a/examples/54-s2h/fs_s2h_3d.sc +++ b/examples/54-s2h/fs_s2h_3d.sc @@ -2,9 +2,7 @@ $input v_color0, v_texcoord0 // Self-contained fragment-renderer port of Features/3D_example.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" -#include "s2h_3d.hlsl" +#include "s2h/s2h_3d.sh" uniform vec4 u_s2hTime; @@ -28,9 +26,7 @@ mat4 lookAt(vec3 _eye, vec3 _target, vec3 _up) vec3 zaxis = safeNormalize(_target - _eye); vec3 xaxis = safeNormalize(cross(_up, zaxis)); vec3 yaxis = cross(zaxis, xaxis); - // HLSL mat4 constructors receive rows, while GLSL mat4 constructors - // receive columns. s2h_drawBasis expects world-space basis vectors in the - // matrix columns, so only the HLSL path needs the transpose. + // HLSL mat4 constructors receive rows, GLSL receives columns. #if BGFX_SHADER_LANGUAGE_GLSL return mat4(vec4(xaxis, 0.0f), vec4(yaxis, 0.0f), vec4(zaxis, 0.0f), vec4(_eye, 1.0f)); #else @@ -73,7 +69,7 @@ void main() s2h_printFloat(ui, cameraPosition.y); s2h_printTxt(ui, _COMMA); s2h_printFloat(ui, cameraPosition.z); - vec3 color = lerp(vec3(0.0f, 0.0f, 0.0f), context.dstColor.rgb, context.dstColor.a); + vec3 color = mix(vec3(0.0f, 0.0f, 0.0f), context.dstColor.rgb, context.dstColor.a); color = color * (1.0f - ui.dstColor.a) + ui.dstColor.rgb; gl_FragColor = vec4(s2h_accurateLinearToSRGB(color), 1.0f); } diff --git a/examples/54-s2h/fs_s2h_arrow.sc b/examples/54-s2h/fs_s2h_arrow.sc index 8817e68e5..e4573032b 100644 --- a/examples/54-s2h/fs_s2h_arrow.sc +++ b/examples/54-s2h/fs_s2h_arrow.sc @@ -2,8 +2,7 @@ $input v_color0, v_texcoord0 // Port of ShaderToHuman-bgfx/examples/Features/2D_Arrow.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" uniform vec4 u_s2hMouse; @@ -65,5 +64,5 @@ void main() s2h_drawArrow(ui, screenCenter, screenCenter + oppositeDirection * lineLength, vec4(1.0f, 0.0f, 0.0f, 1.0f), arrowHeadLength, arrowHeadWidth); vec4 background = vec4(0.5f, 0.5f, 0.5f, 1.0f); - gl_FragColor = lerp(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); + gl_FragColor = mix(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); } diff --git a/examples/54-s2h/fs_s2h_clear.sc b/examples/54-s2h/fs_s2h_clear.sc index 31755f920..9f6c4335e 100644 --- a/examples/54-s2h/fs_s2h_clear.sc +++ b/examples/54-s2h/fs_s2h_clear.sc @@ -2,9 +2,7 @@ $input v_color0, v_texcoord0 // Self-contained fragment-renderer port of Features/Clear_example.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" -#include "s2h_3d.hlsl" +#include "s2h/s2h_3d.sh" uniform vec4 u_s2hTime; diff --git a/examples/54-s2h/fs_s2h_coordinate_system.sc b/examples/54-s2h/fs_s2h_coordinate_system.sc index 1253943db..da2c25992 100644 --- a/examples/54-s2h/fs_s2h_coordinate_system.sc +++ b/examples/54-s2h/fs_s2h_coordinate_system.sc @@ -2,8 +2,7 @@ $input v_color0, v_texcoord0 // Port of ShaderToHuman-bgfx/examples/Features/2D_CoordinateSystem.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" void main() { @@ -24,5 +23,5 @@ void main() s2h_printTxt(ui, _n, _a, _t, _e, _S, _y); s2h_printTxt(ui, _s, _t, _e, _m); - gl_FragColor = lerp(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); + gl_FragColor = mix(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); } diff --git a/examples/54-s2h/fs_s2h_debug_zoom.sc b/examples/54-s2h/fs_s2h_debug_zoom.sc index b8fe49df7..a07593a24 100644 --- a/examples/54-s2h/fs_s2h_debug_zoom.sc +++ b/examples/54-s2h/fs_s2h_debug_zoom.sc @@ -1,7 +1,7 @@ $input v_color0, v_texcoord0 #include "../common/common.sh" -#include "s2h_bgfx.sh" +#include "s2h/s2h_bgfx.sh" SAMPLER2D(s_quadPostColor, 0); uniform vec4 u_s2hMouse; @@ -17,10 +17,10 @@ void main() { vec2 sourcePixel = floor(mouse - vec2(8.0f, 8.0f) + panelLocal / 10.0f); color = texture2D(s_quadPostColor, (sourcePixel + 0.5f) / resolution).rgb; - vec2 cell = frac(panelLocal / 10.0f); + vec2 cell = fract(panelLocal / 10.0f); if (cell.x < 0.08f || cell.y < 0.08f) color = vec3(0.0f, 0.0f, 0.0f); } float crosshair = 1.0f - smoothstep(0.0f, 1.0f, min(abs(pixel.x - mouse.x), abs(pixel.y - mouse.y))); - color = lerp(color, vec3(1.0f, 1.0f, 1.0f), crosshair); + color = mix(color, vec3(1.0f, 1.0f, 1.0f), crosshair); gl_FragColor = vec4(color, 1.0f); } diff --git a/examples/54-s2h/fs_s2h_gather.sc b/examples/54-s2h/fs_s2h_gather.sc index 28c5ed93d..db062b05f 100644 --- a/examples/54-s2h/fs_s2h_gather.sc +++ b/examples/54-s2h/fs_s2h_gather.sc @@ -1,11 +1,9 @@ $input v_color0, v_texcoord0 // Port of ShaderToHuman-bgfx/examples/Features/Gather_example.hlsl. -// The original compute example stores its widget state in a UAV. This -// fullscreen version receives the same state from the ImGui host controls. +// Widget state comes from the ImGui host controls, not a UAV as in the original. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" uniform vec4 u_s2hTime; uniform vec4 u_s2hUiState; @@ -76,9 +74,7 @@ void main() vec3 sliderColor = u_s2hColor.rgb; #if BGFX_SHADER_LANGUAGE_WGSL - // shaderc's WGSL backend overflows its compiler stack when all of the - // nested S2H widget calls below are emitted together. Keep a compact, - // functional presentation for WebGPU; DX11 and GLSL use the full port. + // shaderc's WGSL backend overflows its compiler stack on the full port. s2h_printLF(ui); s2h_printLF(ui); s2h_printTxt(ui, _U, _I, _SPACE, _S, _t, _a); @@ -97,7 +93,7 @@ void main() s2h_printTxt(ui, _SPACE, _c, _h, _e, _c, _k); s2h_printLF(ui); s2h_printTxt(ui, _SPACE, _SPACE); - s2h_progress(ui, 5u, frac(u_s2hTime.x)); + s2h_progress(ui, 5u, fract(u_s2hTime.x)); s2h_printLF(ui); s2h_printTxt(ui, _SPACE, _SPACE); s2h_sliderFloat(ui, 8u, sliderAlpha, 0.0f, 1.0f); @@ -147,7 +143,7 @@ void main() s2h_printLF(ui); s2h_printLF(ui); s2h_printTxt(ui, _SPACE, _SPACE); - s2h_progress(ui, 5u, frac(u_s2hTime.x)); + s2h_progress(ui, 5u, fract(u_s2hTime.x)); s2h_printTxt(ui, _SPACE, _s, _2, _h, _UNDERSCORE, _p); s2h_printTxt(ui, _r, _o, _g, _r, _e, _s); s2h_printTxt(ui, _s); @@ -168,5 +164,5 @@ void main() #endif vec4 background = vec4(0.4f, 0.7f, 0.4f, 1.0f); - gl_FragColor = lerp(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); + gl_FragColor = mix(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); } diff --git a/examples/54-s2h/fs_s2h_generate_user_font.sc b/examples/54-s2h/fs_s2h_generate_user_font.sc index 79af0fe22..677d240ad 100644 --- a/examples/54-s2h/fs_s2h_generate_user_font.sc +++ b/examples/54-s2h/fs_s2h_generate_user_font.sc @@ -2,21 +2,20 @@ $input v_color0, v_texcoord0 // Port of ShaderToHuman-bgfx/examples/Features/GenUserFont_example.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" uniform vec4 u_s2hTime; vec3 myMod(vec3 _x, vec3 _period) { - return frac(_x / _period) * _period; + return fract(_x / _period) * _period; } vec3 hsb2rgb(vec3 _color) { vec3 rgb = saturate(abs(myMod(_color.x * 6.0f + vec3(0.0f, 4.0f, 2.0f), vec3(6.0f, 6.0f, 6.0f)) - 3.0f) - 1.0f); rgb = rgb * rgb * (3.0f - 2.0f * rgb); - return _color.z * lerp(vec3(1.0f, 1.0f, 1.0f), rgb, _color.y); + return _color.z * mix(vec3(1.0f, 1.0f, 1.0f), rgb, _color.y); } void main() diff --git a/examples/54-s2h/fs_s2h_quadpost.sc b/examples/54-s2h/fs_s2h_quadpost.sc index 7092a7226..fabee7c9e 100644 --- a/examples/54-s2h/fs_s2h_quadpost.sc +++ b/examples/54-s2h/fs_s2h_quadpost.sc @@ -1,7 +1,7 @@ $input v_color0, v_texcoord0 #include "../common/common.sh" -#include "s2h_bgfx.sh" +#include "s2h/s2h_bgfx.sh" SAMPLER2D(s_quadPostColor, 0); uniform vec4 u_s2hMouse; @@ -13,6 +13,6 @@ void main() vec2 mouseUv = u_s2hMouse.xy / u_viewRect.zw; vec2 delta = uv - mouseUv; float highlight = 1.0f - smoothstep(0.02f, 0.025f, length(delta)); - color = lerp(color, vec3(1.0f, 1.0f, 0.0f), highlight); + color = mix(color, vec3(1.0f, 1.0f, 0.0f), highlight); gl_FragColor = vec4(color, 1.0f); } diff --git a/examples/54-s2h/fs_s2h_quadpost_scene.sc b/examples/54-s2h/fs_s2h_quadpost_scene.sc index ed64c33de..090c055ac 100644 --- a/examples/54-s2h/fs_s2h_quadpost_scene.sc +++ b/examples/54-s2h/fs_s2h_quadpost_scene.sc @@ -1,15 +1,15 @@ $input v_color0, v_texcoord0 #include "../common/common.sh" -#include "s2h_bgfx.sh" +#include "s2h/s2h_bgfx.sh" uniform vec4 u_s2hTime; void main() { vec2 uv = v_texcoord0; - float grid = step(0.96f, frac(uv.x * 10.0f)) + step(0.96f, frac(uv.y * 10.0f)); + float grid = step(0.96f, fract(uv.x * 10.0f)) + step(0.96f, fract(uv.y * 10.0f)); float wave = 0.5f + 0.5f * sin(u_s2hTime.x + uv.x * 8.0f + uv.y * 5.0f); - vec3 color = lerp(vec3(0.06f, 0.1f, 0.25f), vec3(0.9f, 0.25f, 0.1f), wave); - gl_FragColor = vec4(lerp(color, vec3(1.0f, 1.0f, 1.0f), grid), 1.0f); + vec3 color = mix(vec3(0.06f, 0.1f, 0.25f), vec3(0.9f, 0.25f, 0.1f), wave); + gl_FragColor = vec4(mix(color, vec3(1.0f, 1.0f, 1.0f), grid), 1.0f); } diff --git a/examples/54-s2h/fs_s2h_quadvsps.sc b/examples/54-s2h/fs_s2h_quadvsps.sc index 9b7b23f75..9404b67e4 100644 --- a/examples/54-s2h/fs_s2h_quadvsps.sc +++ b/examples/54-s2h/fs_s2h_quadvsps.sc @@ -1,8 +1,7 @@ $input v_color0, v_texcoord0 #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" uniform vec4 u_s2hTime; uniform vec4 u_s2hMouse; @@ -11,7 +10,7 @@ void main() { vec2 edge = min(v_texcoord0, 1.0f - v_texcoord0); float border = 1.0f - smoothstep(0.008f, 0.018f, min(edge.x, edge.y)); - vec3 color = lerp(vec3(0.03f, 0.04f, 0.08f), vec3(1.0f, 0.0f, 1.0f), border * 0.4f); + vec3 color = mix(vec3(0.03f, 0.04f, 0.08f), vec3(1.0f, 0.0f, 1.0f), border * 0.4f); ContextGather ui; s2h_init(ui, s2h_getPixelCoord(gl_FragCoord.xy)); @@ -27,6 +26,6 @@ void main() s2h_printLF(ui); s2h_printTxt(ui, _t, _i, _m, _e, _COLON, _SPACE); s2h_printFloat(ui, u_s2hTime.x); - color = lerp(color, ui.dstColor.rgb, ui.dstColor.a); + color = mix(color, ui.dstColor.rgb, ui.dstColor.a); gl_FragColor = vec4(color, 1.0f); } diff --git a/examples/54-s2h/fs_s2h_screen.sc b/examples/54-s2h/fs_s2h_screen.sc index d24726894..4051e9a2b 100644 --- a/examples/54-s2h/fs_s2h_screen.sc +++ b/examples/54-s2h/fs_s2h_screen.sc @@ -2,8 +2,7 @@ $input v_color0, v_texcoord0 // Port of ShaderToHuman-bgfx/examples/HelloScreenVSPS/HelloWorldPS.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" void main() { @@ -22,5 +21,5 @@ void main() s2h_drawSRGBRamp(ui, vec2(10.0f, 100.0f)); vec4 background = vec4(uv.x, uv.y, 0.0f, 1.0f); - gl_FragColor = lerp(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); + gl_FragColor = mix(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); } diff --git a/examples/54-s2h/fs_s2h_table.sc b/examples/54-s2h/fs_s2h_table.sc index 5a48f2f3c..d157fe872 100644 --- a/examples/54-s2h/fs_s2h_table.sc +++ b/examples/54-s2h/fs_s2h_table.sc @@ -2,8 +2,7 @@ $input v_color0, v_texcoord0 // Port of ShaderToHuman-bgfx/examples/Features/Table_example.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" uniform vec4 u_s2hTime; @@ -102,5 +101,5 @@ void main() s2h_printTxt(ui, _y, _COLON, _SPACE); s2h_printFloat(ui, rangeY.x); s2h_printTxt(ui, _SPACE, _PERIOD, _PERIOD, _SPACE); s2h_printFloat(ui, rangeY.y); vec4 background = vec4(0.4f, 0.7f, 0.4f, 1.0f); - gl_FragColor = lerp(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); + gl_FragColor = mix(background, vec4(ui.dstColor.rgb, 1.0f), ui.dstColor.a); } diff --git a/examples/54-s2h/fs_s2h_use_user_font.sc b/examples/54-s2h/fs_s2h_use_user_font.sc index 85d5924b4..be5f43278 100644 --- a/examples/54-s2h/fs_s2h_use_user_font.sc +++ b/examples/54-s2h/fs_s2h_use_user_font.sc @@ -1,7 +1,7 @@ $input v_color0, v_texcoord0 #include "../common/common.sh" -#include "s2h_bgfx.sh" +#include "s2h/s2h_bgfx.sh" SAMPLER2D(s_quadPostColor, 0); diff --git a/examples/54-s2h/fs_s2h_zoom2d.sc b/examples/54-s2h/fs_s2h_zoom2d.sc index 6059db77f..e80cf9c1f 100644 --- a/examples/54-s2h/fs_s2h_zoom2d.sc +++ b/examples/54-s2h/fs_s2h_zoom2d.sc @@ -2,14 +2,13 @@ $input v_color0, v_texcoord0 // Adapted from ShaderToHuman-bgfx/examples/Zoom2D/Render.hlsl. #include "../common/common.sh" -#include "s2h_bgfx.sh" -#include "s2h.hlsl" +#include "s2h/s2h.sh" uniform vec4 u_s2hZoom; float grid(vec2 _position, float _scale) { - vec2 local = abs(frac(_position / 20.0f) - 0.5f); + vec2 local = abs(fract(_position / 20.0f) - 0.5f); float gridLine = 1.0f - smoothstep(0.46f, 0.50f, max(local.x, local.y)); return gridLine * saturate((_scale - 2.0f) / 6.0f); } @@ -21,7 +20,7 @@ void main() vec2 zoomedPixel = (pixel + u_s2hZoom.xy) * zoomScale; vec2 snappedPixel = floor(zoomedPixel) + 0.5f; vec3 color = vec3(0.01f, 0.01f, 0.10f); - color = lerp(color, vec3(0.22f, 0.25f, 0.35f), grid(zoomedPixel, zoomScale)); + color = mix(color, vec3(0.22f, 0.25f, 0.35f), grid(zoomedPixel, zoomScale)); ContextGather ui; s2h_init(ui, snappedPixel); @@ -32,7 +31,7 @@ void main() s2h_printTxt(ui, _c, _o, _o, _r, _d, _i); s2h_printTxt(ui, _n, _a, _t, _e, _S, _y); s2h_printTxt(ui, _s, _t, _e, _m); - color = lerp(color, ui.dstColor.rgb, ui.dstColor.a); + color = mix(color, ui.dstColor.rgb, ui.dstColor.a); ContextGather overlay; s2h_init(overlay, pixel); @@ -50,7 +49,7 @@ void main() s2h_printTxt(overlay, _r, _i, _g, _h, _t, _SPACE); s2h_printTxt(overlay, _M, _o, _u, _s, _e, _COLON); s2h_printTxt(overlay, _SPACE, _S, _c, _a, _l, _e); - color = lerp(color, overlay.dstColor.rgb, overlay.dstColor.a); + color = mix(color, overlay.dstColor.rgb, overlay.dstColor.a); gl_FragColor = vec4(color, 1.0f); } diff --git a/examples/54-s2h/s2h.cpp b/examples/54-s2h/s2h.cpp index d9407bcba..465804f27 100644 --- a/examples/54-s2h/s2h.cpp +++ b/examples/54-s2h/s2h.cpp @@ -121,34 +121,36 @@ public: { program = BGFX_INVALID_HANDLE; } - m_timeUniform = bgfx::createUniform("u_s2hTime", bgfx::UniformFreq::View, bgfx::UniformType::Vec4); - m_uiStateUniform = bgfx::createUniform("u_s2hUiState", bgfx::UniformFreq::View, bgfx::UniformType::Vec4); - m_colorUniform = bgfx::createUniform("u_s2hColor", bgfx::UniformFreq::View, bgfx::UniformType::Vec4); - m_mouseUniform = bgfx::createUniform("u_s2hMouse", bgfx::UniformFreq::View, bgfx::UniformType::Vec4); - m_zoomUniform = bgfx::createUniform("u_s2hZoom", bgfx::UniformFreq::View, bgfx::UniformType::Vec4); - m_program[0] = loadProgram("vs_s2h", "fs_s2h_3d"); - m_program[1] = loadProgram("vs_s2h", "fs_s2h_2d"); - m_program[2] = loadProgram("vs_s2h", "fs_s2h_gather"); - m_program[5] = loadProgram("vs_s2h", "fs_s2h_quadvsps"); - m_program[6] = loadProgram("vs_s2h", "fs_s2h_table"); - m_program[7] = loadProgram("vs_s2h", "fs_s2h_quadpost_scene"); - m_program[8] = loadProgram("vs_s2h", "fs_s2h_arrow"); - m_program[9] = loadProgram("vs_s2h", "fs_s2h_generate_user_font"); + m_timeUniform = bgfx::createUniform("u_s2hTime", bgfx::UniformFreq::Frame, bgfx::UniformType::Vec4); + m_uiStateUniform = bgfx::createUniform("u_s2hUiState", bgfx::UniformFreq::Frame, bgfx::UniformType::Vec4); + m_colorUniform = bgfx::createUniform("u_s2hColor", bgfx::UniformFreq::Frame, bgfx::UniformType::Vec4); + m_mouseUniform = bgfx::createUniform("u_s2hMouse", bgfx::UniformFreq::Frame, bgfx::UniformType::Vec4); + m_zoomUniform = bgfx::createUniform("u_s2hZoom", bgfx::UniformFreq::Frame, bgfx::UniformType::Vec4); + m_scatterSizeUniform = bgfx::createUniform("u_s2hScatterSize", bgfx::UniformFreq::Frame, bgfx::UniformType::Vec4); + m_quadPostSampler = bgfx::createUniform("s_quadPostColor", bgfx::UniformType::Sampler); + m_scatterSampler = bgfx::createUniform("s_scatterColor", bgfx::UniformType::Sampler); + + m_program[ 0] = loadProgram("vs_s2h", "fs_s2h_3d"); + m_program[ 1] = loadProgram("vs_s2h", "fs_s2h_2d"); + m_program[ 2] = loadProgram("vs_s2h", "fs_s2h_gather"); + m_program[ 5] = loadProgram("vs_s2h", "fs_s2h_quadvsps"); + m_program[ 6] = loadProgram("vs_s2h", "fs_s2h_table"); + m_program[ 7] = loadProgram("vs_s2h", "fs_s2h_quadpost_scene"); + m_program[ 8] = loadProgram("vs_s2h", "fs_s2h_arrow"); + m_program[ 9] = loadProgram("vs_s2h", "fs_s2h_generate_user_font"); m_program[11] = loadProgram("vs_s2h", "fs_s2h_coordinate_system"); m_program[12] = loadProgram("vs_s2h", "fs_s2h"); m_program[13] = loadProgram("vs_s2h", "fs_s2h_screen"); m_program[14] = loadProgram("vs_s2h", "fs_s2h_clear"); m_program[15] = loadProgram("vs_s2h", "fs_s2h_zoom2d"); - m_quadPostProgram = loadProgram("vs_s2h", "fs_s2h_quadpost"); - m_userFontProgram = loadProgram("vs_s2h", "fs_s2h_use_user_font"); - m_debugZoomProgram = loadProgram("vs_s2h", "fs_s2h_debug_zoom"); - m_scatterClearProgram = loadProgram("cs_s2h_scatter_clear", NULL); - m_scatterProgram = loadProgram("cs_s2h_scatter", NULL); + m_quadPostProgram = loadProgram("vs_s2h", "fs_s2h_quadpost"); + m_userFontProgram = loadProgram("vs_s2h", "fs_s2h_use_user_font"); + m_debugZoomProgram = loadProgram("vs_s2h", "fs_s2h_debug_zoom"); + m_scatterClearProgram = loadProgram("cs_s2h_scatter_clear", NULL); + m_scatterProgram = loadProgram("cs_s2h_scatter", NULL); m_scatterDisplayProgram = loadProgram("vs_s2h", "fs_s2h_scatter_display"); - m_quadPostSampler = bgfx::createUniform("s_quadPostColor", bgfx::UniformType::Sampler); - m_scatterSampler = bgfx::createUniform("s_scatterColor", bgfx::UniformType::Sampler); - m_scatterSizeUniform = bgfx::createUniform("u_s2hScatterSize", bgfx::UniformFreq::View, bgfx::UniformType::Vec4); + createQuadPostTarget(); createScatterTarget(); @@ -159,6 +161,7 @@ public: int shutdown() override { imguiDestroy(); + for (bgfx::ProgramHandle& program : m_program) { if (bgfx::isValid(program) ) @@ -166,6 +169,7 @@ public: bgfx::destroy(program); } } + bgfx::destroy(m_quadPostProgram); bgfx::destroy(m_userFontProgram); bgfx::destroy(m_debugZoomProgram); @@ -183,7 +187,9 @@ public: bgfx::destroy(m_colorUniform); bgfx::destroy(m_mouseUniform); bgfx::destroy(m_zoomUniform); + bgfx::shutdown(); + return 0; } @@ -201,6 +207,7 @@ public: showExampleDialog(this); drawSettings(); + if (2 == m_example) { updateGatherControls(); @@ -219,6 +226,7 @@ public: 0.0f, 0.0f, }; + const float uiState[] = { float(m_gatherRadio), @@ -226,6 +234,7 @@ public: m_gatherColor[3], 0.0f, }; + const float mouse[] = { float(m_mouseState.m_mx), @@ -233,6 +242,7 @@ public: m_gatherMouseDown ? 1.0f : 0.0f, 0.0f, }; + const float zoom[] = { m_zoomPan[0], @@ -240,18 +250,26 @@ public: m_zoomScale, 0.0f, }; + const bool originBottomLeft = bgfx::getCaps()->originBottomLeft; + + const float scatterSize[] = { float(m_width), float(m_height), originBottomLeft ? 1.0f : 0.0f, 0.0f }; + + bgfx::setFrameUniform(m_timeUniform, time); + bgfx::setFrameUniform(m_uiStateUniform, uiState); + bgfx::setFrameUniform(m_colorUniform, m_gatherColor); + bgfx::setFrameUniform(m_mouseUniform, mouse); + bgfx::setFrameUniform(m_zoomUniform, zoom); + bgfx::setFrameUniform(m_scatterSizeUniform, scatterSize); + if (4 == m_example) { - const float scatterSize[] = { float(m_width), float(m_height), originBottomLeft ? 1.0f : 0.0f, 0.0f }; const uint32_t dispatchWidth = (m_width + 7) / 8; const uint32_t dispatchHeight = (m_height + 7) / 8; - bgfx::setViewUniform(2, m_scatterSizeUniform, scatterSize); bgfx::setImage(0, m_scatterTexture, 0, bgfx::Access::Write, bgfx::TextureFormat::RGBA8); bgfx::dispatch(2, m_scatterClearProgram, uint16_t(dispatchWidth), uint16_t(dispatchHeight) ); - bgfx::setViewUniform(3, m_scatterSizeUniform, scatterSize); bgfx::setImage(0, m_scatterTexture, 0, bgfx::Access::Write, bgfx::TextureFormat::RGBA8); bgfx::dispatch(3, m_scatterProgram, 1, 1); @@ -265,12 +283,10 @@ public: bgfx::setViewFrameBuffer(0, m_quadPostFrameBuffer); bgfx::setViewRect(0, 0, 0, uint16_t(m_width), uint16_t(m_height) ); bgfx::setViewClear(0, BGFX_CLEAR_COLOR, 0x101018ff); - bgfx::setViewUniform(0, m_timeUniform, time); renderScreenSpaceQuad(0, 10 == m_example ? m_program[9] : m_program[7]); bgfx::setViewFrameBuffer(1, BGFX_INVALID_HANDLE); bgfx::setViewRect(1, 0, 0, uint16_t(m_width), uint16_t(m_height) ); - bgfx::setViewUniform(1, m_mouseUniform, mouse); bgfx::setTexture(0, m_quadPostSampler, m_quadPostTexture); renderScreenSpaceQuad(1, 7 == m_example ? m_quadPostProgram : (10 == m_example ? m_userFontProgram : m_debugZoomProgram), originBottomLeft); } @@ -278,11 +294,7 @@ public: { bgfx::setViewFrameBuffer(0, BGFX_INVALID_HANDLE); bgfx::setViewRect(0, 0, 0, uint16_t(m_width), uint16_t(m_height) ); - bgfx::setViewUniform(0, m_timeUniform, time); - bgfx::setViewUniform(0, m_uiStateUniform, uiState); - bgfx::setViewUniform(0, m_colorUniform, m_gatherColor); - bgfx::setViewUniform(0, m_mouseUniform, mouse); - bgfx::setViewUniform(0, m_zoomUniform, zoom); + bgfx::touch(0); renderScreenSpaceQuad(0, m_program[m_example]); } @@ -417,8 +429,9 @@ public: { const int32_t mouseX = m_mouseState.m_mx; const int32_t mouseY = m_mouseState.m_my; - const bool leftDown = m_mouseState.m_buttons[entry::MouseButton::Left]; + const bool leftDown = m_mouseState.m_buttons[entry::MouseButton::Left]; const bool rightDown = m_mouseState.m_buttons[entry::MouseButton::Right]; + if (ImGui::GetIO().WantCaptureMouse) { m_zoomLastMouseX = mouseX; @@ -450,6 +463,7 @@ public: uint32_t m_debug; uint32_t m_reset; int m_example = 0; + bgfx::ProgramHandle m_program[BX_COUNTOF(s_exampleNames)]; bgfx::ProgramHandle m_quadPostProgram; bgfx::ProgramHandle m_userFontProgram; @@ -458,17 +472,21 @@ public: bgfx::ProgramHandle m_scatterProgram; bgfx::ProgramHandle m_scatterDisplayProgram; bgfx::TextureHandle m_quadPostTexture; + bgfx::FrameBufferHandle m_quadPostFrameBuffer; - bgfx::UniformHandle m_quadPostSampler; bgfx::TextureHandle m_scatterTexture; + + bgfx::UniformHandle m_quadPostSampler; bgfx::UniformHandle m_scatterSampler; bgfx::UniformHandle m_scatterSizeUniform; - FrameTime m_frameTime; bgfx::UniformHandle m_timeUniform; bgfx::UniformHandle m_uiStateUniform; bgfx::UniformHandle m_colorUniform; bgfx::UniformHandle m_mouseUniform; bgfx::UniformHandle m_zoomUniform; + + FrameTime m_frameTime; + int m_gatherRadio = 0; bool m_gatherCheckbox = false; bool m_gatherMouseDown = false; diff --git a/examples/common/s2h.hlsl b/examples/common/s2h/s2h.hlsl similarity index 100% rename from examples/common/s2h.hlsl rename to examples/common/s2h/s2h.hlsl diff --git a/examples/common/s2h/s2h.sh b/examples/common/s2h/s2h.sh new file mode 100644 index 000000000..007389d41 --- /dev/null +++ b/examples/common/s2h/s2h.sh @@ -0,0 +1,6 @@ +// S2H core library. The .hlsl sources are shared unchanged with HLSL +// integrations, so this is the entry point a bgfx shader includes. + +#include "s2h/s2h_bgfx.sh" +#include "s2h/s2h.hlsl" + diff --git a/examples/common/s2h_3d.hlsl b/examples/common/s2h/s2h_3d.hlsl similarity index 100% rename from examples/common/s2h_3d.hlsl rename to examples/common/s2h/s2h_3d.hlsl diff --git a/examples/common/s2h/s2h_3d.sh b/examples/common/s2h/s2h_3d.sh new file mode 100644 index 000000000..cefef9e4c --- /dev/null +++ b/examples/common/s2h/s2h_3d.sh @@ -0,0 +1,5 @@ +// S2H 3D module. + +#include "s2h/s2h.sh" +#include "s2h/s2h_3d.hlsl" + diff --git a/examples/common/s2h/s2h_bgfx.sh b/examples/common/s2h/s2h_bgfx.sh new file mode 100644 index 000000000..ab4558890 --- /dev/null +++ b/examples/common/s2h/s2h_bgfx.sh @@ -0,0 +1,31 @@ +// S2H bgfx shaderc compatibility adapter. For the S2H library itself include +// s2h/s2h.sh, s2h/s2h_3d.sh or s2h/s2h_scatter.sh. + +#ifndef S2H_BGFX_INCLUDE +#define S2H_BGFX_INCLUDE + +#include + +#define S2H_BGFX 1 +#define S2H_LOOP LOOP + +// shaderc's generated HLSL does not permit asfloat() in a global const +// initializer. +#define S2H_FLT_MAX 1.0e30f + +#include "s2h/s2h_glsl.hlsl" + +// S2H uses a top-left pixel origin; bgfx_ndc.z is the OpenGL origin sign. +float2 s2h_getPixelCoord(float2 _fragmentCoord) +{ +#if BGFX_SHADER_LANGUAGE_GLSL + return float2( + _fragmentCoord.x + , mix(_fragmentCoord.y, u_viewRect.w - _fragmentCoord.y, 0.5f * (bgfx_ndc.z + 1.0f)) + ); +#else + return _fragmentCoord; +#endif // BGFX_SHADER_LANGUAGE_GLSL +} + +#endif // S2H_BGFX_INCLUDE diff --git a/examples/common/s2h_glsl.hlsl b/examples/common/s2h/s2h_glsl.hlsl similarity index 85% rename from examples/common/s2h_glsl.hlsl rename to examples/common/s2h/s2h_glsl.hlsl index 806149f45..6ff804ee2 100644 --- a/examples/common/s2h_glsl.hlsl +++ b/examples/common/s2h/s2h_glsl.hlsl @@ -14,32 +14,36 @@ #define float3x3 mat3 #define float4x4 mat4 #define lerp mix - // GLSL does not support static globals, while shaderc's non-GLSL targets - // need static const declarations for expressions such as _a = _A + 32u. - #if !defined(S2H_BGFX) || BGFX_SHADER_LANGUAGE_GLSL - #define static - #endif - #define rsqrt(_x) (1.0f / sqrt(_x)) - // bgfx provides its own mul macro. It must remain in control so matrix - // multiplication is translated correctly for every bgfx renderer. - #ifndef S2H_BGFX - #define mul(a,b) (a) * (b) - #endif - #if !defined(S2H_BGFX) || BGFX_SHADER_LANGUAGE_GLSL - #define atan2 atan - #endif + // GLSL does not support static globals, while shaderc's non-GLSL targets + // need static const declarations for expressions such as _a = _A + 32u. + #if !defined(S2H_BGFX) || BGFX_SHADER_LANGUAGE_GLSL + #define static + #endif + #define rsqrt(_x) (1.0f / sqrt(_x)) + // bgfx provides its own mul macro. It must remain in control so matrix + // multiplication is translated correctly for every bgfx renderer. + #ifndef S2H_BGFX + #define mul(a,b) (a) * (b) + #endif + // bgfx supplies atan2 on GLSL, and it is native everywhere else. + #ifndef S2H_BGFX + #define atan2 atan + #endif #define asuint floatBitsToUint #define asfloat uintBitsToFloat #endif #define sincos(x,s,c) {s=sin(x);c=cos(x);} -#define saturate(x) clamp(x,0.0f,1.0f) -// bgfx maps GLSL's fract() to HLSL's frac() for non-GLSL targets. Defining -// the inverse here on those targets creates a macro cycle that leaves fract() -// in generated DX11 HLSL. The alias is only needed when compiling GLSL. -#if !defined(S2H_BGFX) || BGFX_SHADER_LANGUAGE_GLSL - #define frac(x) fract(x) -#endif +// bgfx supplies saturate on GLSL, and it is native everywhere else. +#ifndef S2H_BGFX + #define saturate(x) clamp(x,0.0f,1.0f) +#endif +// bgfx maps GLSL's fract() to HLSL's frac() for non-GLSL targets. Defining +// the inverse here on those targets creates a macro cycle that leaves fract() +// in generated DX11 HLSL. The alias is only needed when compiling GLSL. +#if !defined(S2H_BGFX) || BGFX_SHADER_LANGUAGE_GLSL + #define frac(x) fract(x) +#endif #define groupshared shared #define WaveActiveSum subgroupAdd #define WaveGetLaneCount() gl_SubgroupSize diff --git a/examples/common/s2h_scatter.hlsl b/examples/common/s2h/s2h_scatter.hlsl similarity index 100% rename from examples/common/s2h_scatter.hlsl rename to examples/common/s2h/s2h_scatter.hlsl diff --git a/examples/common/s2h/s2h_scatter.sh b/examples/common/s2h/s2h_scatter.sh new file mode 100644 index 000000000..1b6a4da26 --- /dev/null +++ b/examples/common/s2h/s2h_scatter.sh @@ -0,0 +1,5 @@ +// S2H scatter module. + +#include "s2h/s2h.sh" +#include "s2h/s2h_scatter.hlsl" + diff --git a/examples/common/s2h_bgfx.sh b/examples/common/s2h_bgfx.sh deleted file mode 100644 index a5c5342f5..000000000 --- a/examples/common/s2h_bgfx.sh +++ /dev/null @@ -1,43 +0,0 @@ -////////////////////////////////////////////////////////////////////////// -// Shader To Human (S2H) - bgfx shaderc compatibility adapter // -////////////////////////////////////////////////////////////////////////// -// -// Include bgfx's common shader header before this adapter. It provides -// shaderc's portable mul() and LOOP macros used by S2H. -// -// #include "common.sh" -// #include "s2h_bgfx.sh" -// #include "s2h.hlsl" -// -// The S2H source files retain their HLSL extension so they can be shared -// unchanged with existing HLSL integrations. - -#ifndef S2H_BGFX_INCLUDE -#define S2H_BGFX_INCLUDE - -#define S2H_BGFX 1 -#define S2H_LOOP LOOP - -// shaderc's generated HLSL does not permit asfloat() in a global const -// initializer. This finite value is far beyond any practical scene depth and -// remains a literal expression on every shaderc backend. -#define S2H_FLT_MAX 1.0e30f - -#include "s2h_glsl.hlsl" - -// S2H examples use a top-left pixel origin to match their source tools and -// host mouse coordinates. u_viewRect is supplied by bgfx for every view; -// bgfx_ndc.z is the OpenGL origin sign (and is substituted by the GL renderer). -float2 s2h_getPixelCoord(float2 _fragmentCoord) -{ - #if BGFX_SHADER_LANGUAGE_GLSL - return float2( - _fragmentCoord.x - , mix(_fragmentCoord.y, u_viewRect.w - _fragmentCoord.y, 0.5f * (bgfx_ndc.z + 1.0f)) - ); - #else - return _fragmentCoord; - #endif // BGFX_SHADER_LANGUAGE_GLSL -} - -#endif // S2H_BGFX_INCLUDE diff --git a/examples/runtime/shaders/dxbc/cs_s2h_scatter.bin b/examples/runtime/shaders/dxbc/cs_s2h_scatter.bin index 0b200e6ff7f0d447f71b99eec9428314eeecba5c..8422f4305e8a842faedc0adc0d9aeb1217ad9be6 100644 GIT binary patch delta 18 ZcmX>&k7egP78d7V5AH^utvrmT`~W>f1wQ}) delta 26 ccmdlvkLBPz79Qtd4;}_6Xk^*S!f47509xz?H~;_u diff --git a/examples/runtime/shaders/dxbc/cs_s2h_scatter_clear.bin b/examples/runtime/shaders/dxbc/cs_s2h_scatter_clear.bin index dc9ec6ddc7d383575e621ba012bdf88e67527114..f89b4022bff94f6e22bf5c61bf215b59a88aea50 100644 GIT binary patch delta 13 Ucmcc1bd`z4IoN}HBTpbB03M73vj6}9 delta 21 Xcmcc0beD<8IoN}T0SY#<1Tq2uG#LZ5 diff --git a/examples/runtime/shaders/dxbc/fs_s2h.bin b/examples/runtime/shaders/dxbc/fs_s2h.bin index 9a72243b5cc10be2da693b63f0ea0c71c4110c81..0527b06e625cc67c525146f81cc7ccf0b386bbe3 100644 GIT binary patch delta 17 Ycmexm|H+=iE!cybvH8=(jRLRa0YgLwfB*mh delta 25 bcmexl|I1#$E!cyHvH8sWgNL#C(?bR**vN7C2mpL*2ulC} diff --git a/examples/runtime/shaders/dxbc/fs_s2h_3d.bin b/examples/runtime/shaders/dxbc/fs_s2h_3d.bin index 037724274156004426eb2220be26af0466a13e13..834144e71f49be875c8001ec8992ef3dbb1a59a3 100644 GIT binary patch delta 19 bcmaDnf$8=HCJwh?4{pZhPY*W=1a|-cO|A#Z delta 27 dcmcaTf$8xCCIPo#4<5$mPY)TOU?WFx2LOMk2g?8e diff --git a/examples/runtime/shaders/dxbc/fs_s2h_arrow.bin b/examples/runtime/shaders/dxbc/fs_s2h_arrow.bin index f01039cb5fd5d0dc732d5800fd65b068257f32de..7907e97ab4dd7f94c31b25405834f178bebdc7ed 100644 GIT binary patch delta 22 ecmdlon{CZ(HV(I74{pZhPY)XfwhAyV=>-5_SO|6i delta 30 gcmZ28n{CT%HUYO_4<5$mPY)TOppj!M2jh}n0FX2YZvX%Q diff --git a/examples/runtime/shaders/dxbc/fs_s2h_clear.bin b/examples/runtime/shaders/dxbc/fs_s2h_clear.bin index bd6abf8e157b32d8d6aebe78fd51a587bf95ed03..94ce94e3f1570970014147cbf50289ca614ef23a 100644 GIT binary patch delta 17 YcmaECaod8!E!cybvH8=(jRL_k06t*`ssI20 delta 25 bcmca@@z_GZE!cyHvH8B@0E!cybvH8=(jRLRi07|C_8vpR&KE!cyHvH8nK diff --git a/examples/runtime/shaders/dxbc/fs_s2h_debug_zoom.bin b/examples/runtime/shaders/dxbc/fs_s2h_debug_zoom.bin index 7bf58b48c157880711b322decf0d04a7c53efc43..d3720977fb7d00a6c0b7edeeb6c4794d98835662 100644 GIT binary patch delta 22 dcmeyx^@)qaE!cybvH8=(i30A73>zbqSOH#02W0>N delta 30 gcmeyw^@~fuE!cyHvH8TQ&v4 diff --git a/examples/runtime/shaders/dxbc/fs_s2h_quadpost.bin b/examples/runtime/shaders/dxbc/fs_s2h_quadpost.bin index ed3287cee000f895e060177148d2e1642fa147ac..b3a9fc6e0501f0393e9e2e6613788f0713c10da8 100644 GIT binary patch delta 22 ecmdnTwvCO$E!cybvH8=(i30A73>zb!F#!NoRR^X3 delta 30 gcmdnSwvSD~E!cyHvH8{>{YU7VN>z*!=0?L;)E_hK;&mi~v$i2EqUU delta 30 gcmey()XXg47VN>p*!<}s0~Ac;kYQxns2auy0D4OXy#N3J diff --git a/examples/runtime/shaders/dxbc/fs_s2h_screen.bin b/examples/runtime/shaders/dxbc/fs_s2h_screen.bin index 06fa220684f2a274ff3d4c67bb0d6b80d2abe408..dabd9a2fd00b738114dfafded76f88651e6b9852 100644 GIT binary patch delta 17 YcmZ3VxIB@=E!cybvH8=(jRNxx06kj<^Z)<= delta 25 bcmZ3UxIR(9E!cyHvH8jDR7VN>z*!=0?L;)j4hKH#2Ic?& delta 30 gcmey#)yOU27VN>p*!<}s0~Ac;Fk)odXl=&|0DMOV;Q#;t diff --git a/examples/runtime/shaders/dxbc/fs_s2h_zoom2d.bin b/examples/runtime/shaders/dxbc/fs_s2h_zoom2d.bin index bda98f3f85ad1f67f7d0c9c473117559bf923c63..5cb190147e05809776df740473f585ddd7da47a4 100644 GIT binary patch delta 19 bcmaEMkm=q*CJwh?4{pZhPY*W=Tw4GDRfY)7 delta 27 dcmcb2km=b$CIPo#4<5$mPY)TOU?a!11ptb_2+jZi diff --git a/examples/runtime/shaders/dxbc/vs_s2h.bin b/examples/runtime/shaders/dxbc/vs_s2h.bin index b86bcea16d42960b427c23df03470176ae8bc43e..b1d55423e87a9c7cf0d27c940f58b7d5fb66d083 100644 GIT binary patch delta 21 bcmZo-{l&r)7VN>z00fN9pB`=$$zuWlKMe*N delta 29 ecmeyx(!?qf7VN>p00fN9pB{o}5ZK6*#{>Xp=mr}A diff --git a/examples/runtime/shaders/dxil/cs_s2h_scatter.bin b/examples/runtime/shaders/dxil/cs_s2h_scatter.bin index f2ea80520a6bfc23bc6a1838fc827ee2ec53fa3b..be5354cd5c0c4185ee9cc7dcd285dfe5f9937695 100644 GIT binary patch literal 29713 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 literal 29249 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 GZ2k*c$SNxU diff --git a/examples/runtime/shaders/dxil/cs_s2h_scatter_clear.bin b/examples/runtime/shaders/dxil/cs_s2h_scatter_clear.bin index 6d7f9a4bac14db2dc990fb15b63d6b6b4e9e8563..c4d04310ed5c351c90a9f803520ec525dd6c9f01 100644 GIT binary patch delta 13 UcmX@hca)FCIoN}HBab6H03G@Rp#T5? delta 21 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 DTjzSz delta 16309 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 diff --git a/examples/runtime/shaders/dxil/fs_s2h_3d.bin b/examples/runtime/shaders/dxil/fs_s2h_3d.bin index 8b5ac394e948e9418869127c27a45d70938a397b..f105f4d838fc49aeab544402659310ff0f6c2cce 100644 GIT binary patch delta 19 acmdnp$hf(Yk;5(6gPXDW)5DDds~rGFkOyi2 delta 27 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

4n!kGO6VblixR0IBq@JX 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 literal 16888 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 Pi2D#ChrmQ^A0G5yA*`CQ diff --git a/examples/runtime/shaders/dxil/fs_s2h_clear.bin b/examples/runtime/shaders/dxil/fs_s2h_clear.bin index a327b14badc3471a62fa836eab18139b8ce96370..a3441a97fe64d9133750e40a12d10f5c274df1ff 100644 GIT binary patch delta 843 zcmbQO`dx*?E!cybvH8=(i30kv7D5aRE)h=7wmHECF@LTl{o3AkQY0d&l97Rd!D3?! zGgG~VrLn0+N}`cPnvqGGWolxwMQXBXvO#KUl9`dQnPG}vK}r%(F@uL=u!jhU0R)|< zy^H!)e!e>KCWh~Il9{Yags0C1eg=jFpxhT`kd2-`3_vRcfczamaVO^k_Y`>;7+wSA zxSJFhn1JHKK+N8#y!jqeA(yfzP_ZzJrw&Mi6%eybak8A^e{f3RMv9{DNcxcn3=RT3GTS;hog@q`K$@28rZfq-@$fOQ z96V6iJyU>*`;MdCG(N`~Hy$3KSi{8bxg0sN(|$w<@PFEvFrlB74<@sddq+mIAT!9N z^$8!8^ll_rIB~S(?{buTrZ^*SL3^cu&tdi-5fTrWVLCo`Zva{aHufj?Mgc#D7c320 z0%bcC6Sxg$qzW`8>~iG)kRaK|@yGGUGU>WQ>P=jHD;)GTOxV9eh)E+!uY{dBXHJ^~ zqe0dN?sZo=*0njbOEX>LXpU53N?fo=h$)OQO_EJ%!9^dkpAVIXmzqxS(*gVqnA^#Qy<>kYaRb}8zAP~z?4Sip4sfKv0_ z9bDg-v?LaA-MApj^VU(0iS@vWM6(?ily^um$>wofQsznH>}l-s((q}Uk!msFz?%bI z{Wl#&<%K<*?bN2U)%aX^kbEot#BnxWyUi>o99k1)CaVdF#cz^-5-9(5q1<6eV$k^Q zDEBo`eyw7UgbFY*G(w~&%0bf#RQipgxP$;RD=>*gcTM7W#=zLB+ZxGI+%N@{B$0pu F0{~@j5Fh{m delta 892 zcmeyaGFw%^E!cyHvH8TM2z;1gZ(y z7{bg{pKM~5oMe=mXqsqhYGiC_o|s~kYG7($X>4j}Zff~PveDCr0ceE)kbeaz?&N&no+1we!zZ8| zcas7G6Hr_jh}j#JH(z5aze5yQWoD7l*7!)|z{H*Ux*5yy(JtPZL5#S^@c^?0YdJ6^t7Ut(V zNlF~;P`wwF)S3z;3=KdMZn|+yk`QK^Zo(tOB7sNAPZf@&A9=vwAiy(c+XhZ22}7_E z$940X1l)M|7+4M-sN|j_z{Gve(QX-^V+~YnBKJIw8;MYTJ0Em5$gYu{@gt(%fdA9R zgbDqu{6K{~K+O#&xp!7H3o?Vek??(ubIInz;B@ zH0W)ZaAAiKQ@uu$UI}}1&XP6?$)O;9QRlKitm`R@ni4ntCn#@|G_?}hT~6?-I9fT^YtBE3-#ny8@C j?;OP?1ejTYX)(HMGRHFp##UX{D3;=eDWJ5A1QZwmY?>Y~ diff --git a/examples/runtime/shaders/dxil/fs_s2h_coordinate_system.bin b/examples/runtime/shaders/dxil/fs_s2h_coordinate_system.bin index 16f02bddf8f0c3e8decebcf0b8772370e7a56164..b2cd5dabee8966bce2451809b313a3f34b1b2064 100644 GIT binary patch delta 5243 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 delta 5700 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 delta 30 gcmca4aZ5tLE!cyHvH8%9DztJgiDYJxkiWgrC{K`b{+`9ySXKsb@onNx?cYbie#nvpq zjBnkXV3cco`pyZSrb*A0;G6d{E+*ue-eQz@$SBX%xXlr+#%+e;4=pwuAMP@W8)01R z<_hD(rv`kjDEuL&;#+|dE3fT(j~3JXVU)*r#5LQLZhVW%C@;_`FWDJiOuY_&So#uw zs5ytfvxe`EKdjBbA6k8ahr(y&fxR_GoBRwWj;t|>gLhy6%Rb}g_a+$^D@?%mXJJ&^ z%ea_o7!SAcukcpQv8TH?Alu$dGw$FqE>CmFwD%s|@OM@j#T_z=Yd7wlZ?uJKx$)s; z41X&>!1Pv=8BK4!Z+w_;dT4Zo8k0?)8XxX9KGc{Vt~D)cd{}Q>)Zm0$^QG~frAFw4 zrRbgDe{vrF^w1i3tHx`S>L28)8fW~)oAYparLS>$n#;z;f{ZpklmZVcpYDGD4{qCT z+_ro1zmzo?|FYBM+nu9Hg#I*3f=VXaGA^t+Q<{4rIFC1gU@=%l+-v_`XrHL;*CU); zK;T=@>Sy+lXB1FFKGf#wi3&b1D#_nAqVRxA{{{UW0zLA0Jc5OaINTw~V>hAEk`Tl1 zkVg>g=L)azDPkKTk()`KPIQRX$BC%q=;ijO)Z!8E!Zifm$Wm(T97=42rq)_HCsXgE z6iTL85`Q7wIZMv)5m|Pd^BHm6-4A#qC(PLf$gM~5f)jh&*OIi!h_;iF)hxANYt$|jB=p=M}n zt@TTD^*-bkl#%81Xq~fEqjifVE<+kRc(|QX7msO=Kq_vfJ8UqjC@yqya|>Ut6wgO_y> ztRdHPacc!G_lNH=L2Gac$=>8&WHm>_&xqgz_HG=qF ztfCDb4heNSf{0_q!-f>f`E~=O4nE;?u2EJh#Z;1=?a)(d<^1vEks6K6yMG(iAQqPL z-GcKP+9sjhO2F`4o5Aq1SPA)zh}x^lI@u7@ITYD(Yu;-a;kVy#J9^a~A8xdxu8`>A z5wh^fFa%ry4c_072k%dsA*pQ^QAen6(-K#5>#We`gZ_lgXD`7we_gKs(Y*P150}sd z%jyPI6Euu3vK(jCF&p&^+EQk6r(-E$i8j1-X$7fL$)J_iEJ>wDyioiiA_|jpo&9cF zR%DCd&uelOE3)2N7tc&;sa zL-6tb5<;F+RF3y*RhdU)YqqGcpQlIY<(yS2CgG65C9T>c*VVshK0!USRG+FL-P6y^ z={(7pOBe7ojE6T|t=|6`MxyFU6ING099->0a$RciPvLS;S5h0hu)xz{pt4)`E#g}o zwUrDIQ@;Yj{oc7Fgge9HJnfAB-oLQH)03RXyj}R#({8YU!tG$&|5(}>qaA}xomuc& zW+-;FMJ_v_ZdHWQ)QUo%{{2aLTMDQ2cNj>tN+`L&o=x?oAW~UBXJrS3_s88RA}+i3fTkT4gG!YiAu`&`N(oz{af^!Nk;}C%Z=Sww%uqsUE#z514uQNh4KLo z19jW9*Z$m5L5fuYR;ul(^xEK^g$S$afqttPMyys9mJb-n`qVV3)XbC6?!rd{9Q*&9 z8Pj+xhAtLCv9OYC`^4rsmlxd#MYp`wBi^dIXA|9fpN@BDz zmb03*^KF8Su_r3M*q$*Pq`v^^;>94H?Di0($BU^IS^u)muHw4xvq$19LHs{g&LHu% zOO_vuHHt4UBn}=B_ViqaH!`$nE>P^PEif{)Uag@us~Gjn%>$mk6!3=Pjx-4ziHG5i z^yx9_h}n@62QOGizIgGUgB6BEJ;z-=_>Ss&t`a3!VUYdY8q<%#gXY#)5`KrRqMYG1 z2*Tug9bGIAnr?4swiXCADsF91YKK7LkJg$SwOXjXSA^E0IXwwFW)SeeX+?!XuQ8;K z^1|g_JP+RR^6+aFB;qE~@D{x=dF>#C-<`ZG*Nw(ETrWK2ZXcN(tKTh#uwT3o!u}oUk0@S#aC9iA#_A!Piwns^29nnPTqqdgnb;mv zJBKF7lM1uujO>}OsmY~IvxqgnwA}nsV~cLi<@V!cgzJ@^K03yRAHkq2`m3L3kGXYB zry|l8%#6%vsJv(u)}Ka$l0~O`@Rz0O$2#Z2!$Su8XQl^>sVDbyy=0WLEgBUyIbgJp z{-26W!e!a$7QKAMcU;YXexB53R8v++6%3y?{Tg^?WUC!1;_wu8KK0eWJvL-AK`fLl znEVJuI$btIx~|a>=_0Ao7L1&BYXKp!{PDlYd|rVqdP3Uh!N`1)UlulDg*SEZX_9U=*KZ zX>n^Dj6ra%1ML{)FH{+o6P_qf=ZT6EdwY8&)XmSOC-s*|?uBNL*>@rhr58RO(u?kQ zNH1qp-jtE0uF;&;(lo-_SmHymH8FbmYAC-xP5lW0*6tenl1??&Uxn+vhlo4=Xs1Hq zBo?5;X)P2^qM`3?^F+A`up&VLMaqkW<2A2lTN3SVtUaYBe%pYH(Yf92GD;y9KJ(@e zoVHGSO0*%C_zF45%Z@)@%e3b|^+RF$+$An%j#EB9gRtjg-Z3E^sa8Qc;(vp5RBWH* zQA+%*A$_b}o6~dJmgM#LTPj`6pn32tkVAJr5$O5GY!W53P|r}!^Cv0 zNO2v#z3x>M<2Rb|n+5*uPScXthD7D*zZaU4zmwIcp@lbm`uT}_H7bskHi|@3mk}uB zQV)e-var$BYA&x$#z)9T3k@&Ki)Iws`VJw_s1+54`MP1P<;*pXrNY!OT~?)E8@RUY zGr{4`se&C!2KhTVF6m`>d{lWS+w8K9360re;aoYYd|0luKprLOUT^Q1qVLqVj{ZUd zheCeJA`7ilt+}G7naj3|9nw6C1~z9Y8MVFS*_sszni|o2kwa-5uTu)Y0z2|3w3hA}tfh2V z3v0EbwXT!nb!o7cPONm$&W5$dh8n0TXel?lbm9Z*x*-nuQtpWusmoNM*KSfe)07uv zoI104W365bEwcNoD*K(AL7UT+CEIR5B1YL|=wF~!tf_OfYtbqnbq?k6uu7YxlUn95 z-ik$_=w-iN&{(Uh)E8tUJP3Y-1tStH(Ep1$rpGlGWGwYbHHJSQ-!D@(B7sx>I$o&A zr>-4r=C95_-~u1T=8KDSoJrHIz`HzLbRMPeoGuUqNf!uZh6{!$(FFnxsCU7Kc1o>x zRj;tZlZY=Z?m5rYmjuzEA>gpc+-(F_r&mw7_}p=*g8gVf4ot{;%&|*9K9|7loU0i3 zSE77Sbs|B{pp=HYkX!VP`NU8fDuIe!$bK1Cro`s178VWUhhJ=J1j z753dEP9HAAONn02`nIg3OanA$O) z4@vNifhFEzKa(aQ&cSHX587S&o!T8lD*;EtxM2mA_cB_gBMMd7H?6AW!!3*j-9xJy zAb=}PAke$U#U$mZRK5j~Wl$GQAI?$F$WB+}XzpwpK`vE{B>Vi@eAN&oy^8x~RtorK zaVYs6?w1iuXmRb1rp9V5Edc|^WFyC9zZRT{5bN!u3T{KLKJ5rCT5U*ugk%BrH)6Ez zH=_NIUyiy< z;O6G$FDj4L<%s%pWgMiN#y!Xh9;!nrBik1exLpes^BsJh;;7x=5aej_Uhw{|8@lnh z_sjPZcl<)rV|d4|{S$frL*)I<>JG+7Nwl^qUq6G^dBosOHuvq*_7gYLPb*2(3ea7B;L$J%%#!Lo$I|ovfJe zc^2TR0DA&lWdK+DU0s|Jt}^0|Q>Iv@tw3n?Ahf#FA>#e*oant zKr3@GLd%0_E4Hoz>5rXc&m+&!Vu@!l94^gbfNT7y#=AIN<%@Oy9yY<%vlzkU;SX@} zi*MD80kpm?DA)^V@virwwJ(JLe-CJt{tak-#LV~@qXxG~_UI2$ZdreFEZ-z-k;5-mx2)To z${GF-3j{&V8fZ9v*gaPE*|94bQ0*FSLX{_+>%0%d0;oMFU@&$Cfhw~dXtTBV=M)0> zOo}3=D+RHcf?WkfTbGcJ84V55>D5?bDHg70d7%TV6`@|}EwTBu!;Fd*C63Oi%1gQPl8 z;#o9MW_j#}C^!FJQsZG_MpW|+QP`l)Bq&FWwe;B0kq<;XV~w*Qm3-VfvmYUds9|J6 z2sDgBA#j^yqsF4zTAO>``da1*Ym`c|nwJ2wb4QC>aAez-=q{WxAzQf=Av?z#K`Tgj z7CsS_TBM`ivIYj#q>^{j9)hmNh!c1_juA5!Sk9ZPAq7ZPc9OZ88lF_emei2`ur^Fn zzoHF)C^9TT?&WjC7UqwWtfC3lQPtt_omWgKl#CvLNhWP=J*}7Sp)GI*K6r#ZJs`eE z>-0~ECU+N!4kT@+>H znPmiS$1=soQaQvL_}NM_&Vmk!CP(eaLYaYVNsk-tV)RTRiw>SC>Ia@F>{mXtzAiQ5 z9Bl^Za#%blYIMiq0_*ILO9*>fv+s1b60Gv(VCtjRcyIjjt}cb#Rm4B4%!uOM1NYJ{ zBe?gwKU$G*smh4rv?YcU%-;4eK+(z9Sx`gE zGRcpfe^I24;+$hpeqSnTm078tXWOwZii(y>;Fs(m^4tT?(tvigEMPC=fv9VNV{*+P z)eO>aQ2D0IOD(ejB&%r-$*N)ihkQG0mn;c#62|;qD zwN=6?@e*>Pc3NaBA*|NAM}3*dYjy^}3`@w}QbjEUIg7SLy_3#dkjJq;1Xx(*sQG4% z+gAuLi)CY6tjrBT_73$_7U@{4CfD3io^#oat>ExlXp=L1njeV5>0_wK~Sb+MTK`luArKG{2{%%lT z7GG_75vjk*WvS{2^3A7NzsXWSefg!yeCr|!Ue}HS{ zN{mzV8mVvb2-GiKVN}17VOD>92{{d^Z`g*b-(XT-^Dk0AIS{Eo%cQ5mJ9e zI8y(2g#Mg*OWI&i|B=HAl^&r#G-tO=4(c~v@fd7}?FRMRjOzcmf$YM9E-$L?lIp8< zUm5iieSj;Tm?r}*3vMD>cGgX%jLb_Va7$Aa|Mm-XjiU~BMR}Qc3-Yq`rKlXw%feg4 z9W&_09zuQx<>k&g$jcp>Ygs{4Vzg;BL}xnIc|_;)IFZPtzccy#_zLxI7Cr;^h1k~l z9L2Vby@ORwDM1Rxh9KQ8<_T5>X%7nx_q<+0gP};1-^CjY(M!eR!=?tq@RAP=M#fxd zFxINZ)Bh+HNT0M4wvxM~T8Fns_<81_gArHWSI(lN(oKX)w}w?HTFc({6I=fYDy6#0 ziZ3S7V~MlrsB~*z1sNkbSoR9f7#~*Ys1HmTqb?0)3>iuoV_FZWe~RXoUsx`>0)C?S zxl1a$)ECHGU&$)f2AEsc{|w1Vf(4^Mdcx2v+>A!vTN8M@#>=EjZ z>Pryn&$^=Hl^J>CBoRyK66G>FCVh9~AAOAW0iGn#iw05SAxHO=pSaUSlO3~qe7BkkI)v6p9gJmHw&Es_+0iZ)t>>4 z&XLRe*}OFfirx@ljK8Uem5R~HKhwS4@ZrmMR&{)cv7;gJ*wE4Fe4wK#_UTIFZ$6|N zna+|0K?gq6)}8qxu&NR2S*&2P`4`CTxpRke@hUwza@B2ZVstttPN4X0DNu(bm@j?;@|10 zOV>A$D?-@DE?smTb?K7L%1zkBNG8v%aql77j|a$S5c~cB_U&QyvF{)~#SLd)DX@?8 z46#ppVJ2nd?llB%{Tju5L9tsLb%h&ZpYj>7ujr%bHqJinGvbai6Z<+}Aogi50Q<_b z+}O#$zE5|Ei|L(5FkK9=Z}xxeyQ`M4arR9I_6a{C_C4I|t8(fAl_rPk?sI3cD^zi8 z#J;4Dz&_2o&X+j*6dx6fADY<5|BTr85V7yRYB#+K*w_CR;S8`(=m+dOZe}0xJ@#7p z7tTJNA8LWuBKFDO+Ka7^f=XxHWcn+o=&|AooPD|LfPG&=HJ@?zZC$6!dShZ=+d9NP zIbz?k)|={Cz`lReM2~=dx*c6o!-GEdd34KKaQ0d3M5SRU2Ltw<%-yWXP6L(F+1iP; zHg%b<1!v#uP+;FM_k9^S`#yvklDkdpiwi^SJBip=t$RuI1NJ=(7QF@bRYpOt_NI@0 zZ5f1jIQyC#fPDkq5&LF0jFYJAfqj3|r9s%V_t31p!`bKK4(vO|&IrTVH`HCealMIs ziSCGfvl08^azFDOfPMYlI@5uDb%Vm}HR*lqdl*&NtO%ZBqA>=AvXJI=nN?CRHHCib1d+2@DY=O@k3AojVi4I#k3)&1O= zYeV|j_osU)>=9ZC%`sr#1Dt&ht8JPL?}^cb&qVv@J?rIM-FlpTEr@-e$W2D}{X>r{ zcc;W+=x|>A5@(+SVxL1=STnG1^5`>bI08M?+Vo=2sL^%sOKqz9I=wi&VOSe=PWu-9 z8qs^exAc9VtvfdGzu>lRS`H^J`sZjfT8FhZO|J9|cM-MJUB*4(9tUTzH@*N*M7@U3 zz!OZ?MEFX)+hrn(=sO}x2O>&4^(1?Ze~aXWk{dO;Xsyihmh}NQX>BUGg>Ikl!o4ld zVu58B6#kq~s%zvkkZFs~>i*a7(d(O;(e9mdtM$3P1fW&V-l3`)n5t15%g*d-E(08N zmnbvYP-*_vN5=)dX;0JAB;OLysHiWsGx5O9sR_f)iM}(;;b0*M&)`wI}IuP~N{L4vreVZ=DW0 zw<>pe=JKQNx`o>fBWMCe{}GYJL*anMV?>u`s88uPLfFVN8ey&V*dAnIj?-S72HU)g zB5Gsd&9MWpZ13EQqAVLm3320i$I)JS_ttfO1)O+~6F<9kY=DxwE3_cr@|&AEpceVt zMN44tig!645eZakD@8FGj*t^zX34WdGs_W?{k;}hWgX>PWjRO7;5^$)=9=ggM;-2k zqF%9D^;%XMp|qx=!6nwHCONn;fKzbUf|C;tXl}g-XclDmvj6mN;lC&Hpk*HJu22eF zz=3$sGJAL_hzT-TFEJzAxq(2Zf>C+aw*cMAi5e2YvQa_41?bijN4WeS-!t?he6V~~ zmz40SFW~r(E4I!;>0Sciv>-wZxKAaIR5@LfC>T#Ax)o!mR5RM(XE-ipQ(N?+%{2lB z$`(pCwIbHem@NqQS&%Ive}k)qjPgq+>r$6u;?HZ@~cSDqKB- z9T+iv0y1KJEf}!@G%`%l&CJ5=DoE*eC?{ds3F6hlx_ydYRcPj1KS8;9V3u*_ob-bS zB&GO7NJ??FejD#VQd-cW~a3{(;7n2?hS_Mx0~gy<}`?gEVl z4v{IzKQdy)KQQo9@_mq#8m6}YAV%Zp>V24wyFJ`EkIpSYN$ChmN?PI{b&DY>=^F#V zlKt$=mb9A17(N79k{AM(R1_jhHe{zzM(XwvxNZ9sVhl#Yyd*b$-K)-EZJ@yx5QH@a&#d77EwYknk-r0O$M?F_?B z2URJIRYS^)IVMs4epAh6q4c4n(Gvip;E+2vkOo+^E8zO}G~ zp&3HCSQy^V+?lVKhH-xM;QhjDmvGJvBmKUVGfB_Nk_D)$Bg9?%o!?0~D%;%OmkK9| z*;%@4Qwi#>B2N9KO~Z2Y9p`i0gD>;L##_BRGPfY#QJv8tYD=WROvYlABHt#3;NHKP z5Vn8(VjFj6^pw8**E!_jemwuB!hDptj4>AzUXeIg+BC_2BSkmMRF*hHR2Df4CpBajZCUo-QaQJv6wm0J zK%wF&sv8%tr#Ca=WCC+NU4%3$KpH8W&rNzbeu{pV<4)*IynYay2L$B@`G1C^&g2a0 zOhyaP9D8Z|cuB-&hJ^SFL;8OC{+bxHEX=XP1W+12t6}~AA=LR>7Xv_kcrRx4k13DMSMQfda-UPjC;3i*$g;U{fARI##k#rgx3Fz zfI5JH>d9V48QFZ0z*QVl9PfWv0N2i7S-|NK;A9a?j5XqPh~#kCj8hrHsR!ZImF?T_ zEZ{V1{9NdJ!l(6l-ZMeL}w^;5hZ53HCD_r}W$j67osF z=@diy=ZeEMF_H=#r`H$)YAaVX9S7>IK)$8i1k^xp1XMZ#D!pi=jT_*UuulLuh5m=r zQPo)^PTr^)C_^~?D|QoGzXgN!2xKjnF9S~Jah!6?0jIUoH8XIWwwCL%jv<^dxTM)u zj)3|X0oB%ezb+ksQf@g6Kz;uYsAh)18^`G+!s#f&X?M;V%E+!VAXK^HxZfD>II7Sa z$LSd2(=6f=BTmOi4iC&YRUw>qUjm$pa@P0z7jVLESq~MIj~BKO{;Wxc!0Rt4zbI@m z9Ii>`)LOSXHU6alo!XDMDKC`D50f%{v{U-*-1(QV3b%8!2I^PheFUk-?YWH|ixCPN zS>!F_ro*O4cCA&gp~%_9RD4666C{V{rVU9>VQ5FCXh-{UcJ^!cZ;|byKN$YE@AiY6A}(xv&s!>-7fXPd z`X^bwY&#*$YBJR$jCMeEm4T+1ld0WBvI8pf+`4skLMqifxBiD48T&ux){@yMlmAm2 zs`8AE)p@Rn4d^#D79B?0kxqk#(mCP`Ttne$(vEJEhVpYr!81s~>YP*kUir5ufH+XO z9@2q=hXf(=+SJ+>hD*Z3hm6jh1GV`|hC#ueDueHd3U-)`&Fq-2_{qA{yFpI&IE`S} zO~{}eqrCH%5JwcA|7if$%6RK9NysFv7rmWA`_4!_Ay8C6qm|vot6*&K)?Lbs=e8xP z4l~U2s_e|Hk6d$!K2a*0BmS>M7i~bLm?pp5Vxnh4u@5JqmB!^s#NQZFx+OD~_zm~u zj>F)|Dbl0_+>^1c!#ZwlxSVSRo?Nd*p8NrM@_XW!%#5hf4P^uxbVX+wGJe$PCin%q zqArF^#N$1zfU!1hc>Nq?)V4pvVE*?N&=oxnHE6;B-4*HV1OLbOIi>7dn4X`TPxbKb ztIvnq$4Sw^gESusaz}e8$cbZK_b(-8QA-usRG)=;S!J?pDwuk14hF3|xx$1~$_3OE?UgiYm(}QkWpeCNI8Vx= zg=ds6pdRNM5>?k2@B9-Mf>()ZNEuOH2}E=L$UCaL1O*9x(bsASbG?tbXec;Za50=O zwPcFTUKlu^_)C^fD&?6=hbRGag%4#^O}LG@beKLvljxzbx9 zzzubCx41JlSWS?v2g$`^&GfKh4y1wD|I&a@^-(+x96~*>4-;aB&i$)RQ{!dG0#``e zz4MMi7C4G$0Y4^Wfj_8e_ISD;%8cvuF=c@eCS(B}Y+;)gbN?=FpD;!5)ZG*gX<&9= zchIi2lm=#M78%n(r7r81DP6Z!BJS{q0e5;^cR`E5E&qGY7?cIL=JLBi z$`ttGjm!@y3*1EE0LzWcrHtHK32C5GQDQsBH;#&yg>-!jrGdr7zl>?%7Rg~2)7Z!~ z-a#=bw;p0rX6|}>{?ur#J?0N()m&*GPOE*pzyvTT2|{I+6yYTD>~GuDcnfg4L)!jR z!*M99juW^T%qeFgpem{7j6ls|#%X*_KqVodM4kYY&@*giZY1E;vuzxdRf&B#l~?ia z;y6{KOYf_F5l$PoMoMZI0Z#Eu>5Ap|Yho04ahx{z0!|O@WwUUcihbobsxT8!$8n%G zBA_-FC5t@)s5d*%=sf?wbp1fJ$cPh~oWr_+lh+DQvGrasSh=rk=f$Of(_$Q_`YOQb z{w)47V_8+D%lgM$R-HgNc_EwzKd#8aHUdy5=PU-GrrY-cmBBn^1ZoKa>Hz|(G;$MV zWLp)KRVNfB&TjxGgAu2H04Iy(#Pdd+{vkPFW}F@&oJtW+`*N?^djU>&HnajxH8c8f z8jSf>pTL27fq=@u3FYZ++a!4aKs_RDUzb-c=Qf_e3AF*?bdhTBfD;O1#tHpQIOXAl zLO5wXH_R$UIDNehDc{H^>?8p7B~G)_NT`##tY>CIokTzh5l}-P*JN!5oDR;(2b})+ z52sRQvL8;Uod~C=2&ekUJj%$Plfb8wijqN?UmSG_EDL;khWNCKc-x56Gm=9Y!U==9 zP2&p$R6PQ!F4xsT2tdKnyKnOZD68(O)lvPhu>p8|wQP^^d|4bFftn|wp zMA4ZpHlOw@I0=m<{^6n8m*EGQ%G<{k_emM$71SnsXh4mh5jo7P_Omcu^;Mk43SO#Y z;rYx?e{lm94tVhfxBu&!gUt25@K<@;K@) zsR!+?e}vWJ#5%saH?6zKzy1VKw`l+|1Zx->AQ^E%(x z>?FJ=;aBB;bAYRI51C0r@vCyX9jcq-O;_cr9N=JyFabu}t>ZgRYq!8vxqu>kqkGUs z#n^-u14?Idlj9W(9qd$n!r@xx?+*CY!=kf5jqo|TbvQNloz-3VY@)`8vxpi&h#G-& zpHP3Xvn#)GjPSIt3ie-L{0g4}^3aDB+TzifpWD4H8rn$*ZIs7{tTMwZR6zxG#y4WF zR>y{xp2MyCDc-PRy~(=qbC7l2kab;eybqr+kx@0TxDtJQB76=K=l*<)W^!=-I--EH zo_NK6?i{diJZ@p-7qBo76Mx1nto=gT@y2A}&acS8UC6*6aw{A{z`z4BRY#4Q|EGobW5YwjEcqi&AwXik^IHOgC~fi>qf!5DA6yb;4KTz+2nZ?DP1 zJ?D{y=OPOy?0ruyg3Fy7$Ht?p=ym5&JexOckoeWAg72hgelKbJ519t}pfl(3yRxKS z7`o+1?b@Kp&VEMSw?Klf^tAHXrXOWrwRr*GBtVo%&o0*Zi4}(87i9v z*RWW0xZ;97BEn|Htq3rt8NCY&$^pe7NHg+5o=HVNOwn(jy)_LgL9rtesTs7$wrLT4 zOn`{GAVBtfoGWW#4UdJ>xLFP~J`m8=iaXjra)a#!qoZLK^nzIE zL7_tdttLY~j_zOUiZ6Jub51yzLY_PsF2@jGLz`$Ih%k+ny4G(HOCK=b z4DA~w&URU_+&oIWcR^`S*HgGIhQx3-%N$$}IMAoKbjF*5>)Q(nb~$JIR@$(fe*wi- z)mev4%L4Ykrk-=yeV8O(=y)gdN79vb%3dngCDncTkGPjwxjBZectSgTC2d#y2#wU7 z5qIj^m|!1a!AP5kaCnI@??>q^NuiQKn9=X-zu$_So=6WgfGJvQ7q^Imb6;p=tSQKUTQVg-BZ( zU^j=l1Nw|s;a7OUpH?~4?oq1x6*F8yfw zmABz!4j)8^i|^aXGjK8&52E{3n#j!eMPybWGNnRg>H@2)N-4yICP z$+hqGP_Qiygo2Iyd&3WsQ1{G#VWa=T-S>5YyDb+6;&7Ht&M4PIv(y;SoIO!^ECK)!-WJ4`0Mj!fDv z+G{lFbtQA0*`zm+NxP6qKh-U<4n-#2_&aXW>u4O(v+pO>i*8XESab~C=U3^C)+obu zqeXL(MJLdmT=5!yBMXZQ2r?D%zu+ERj6=1f}*XaF&L{y(3 z*^RniSPR29nM|4rCS4L#@EkX3a;hQxmf51I$f6Qt(J{;C)c(X^+?l#Uc$Ek@2iovc zd<=ay>}hJ_4G(mTUynZb=kAIMlj!h)rQ&h)QbH8nr!xIktDxW(5q%bRxGR)8rL6QI zywn-tTHTduO2lEVQ0j=HArX5-r!*6`?NuHB!{z1*IK@v0>>KY)bA6bKk9W=>s!XP1 zz!m7pJEu$$ONXjUP`3)u`WDpq5}}1TU0!9Vxod*! z-6{lEG=gi|@xIR3^;X-JQPm{pk16u8gfYxdpt(d6;OO>+$t$4am zPuJa6LDF3ut#t^k29{Saj#h?iwKUCy)^;4N7!1J`({Wz}aQ(hC{d&SU)pJ^x%k;5D zOLO6u?B}#OuG2HMT`uvf6!{mPHSR}A6+b+`cTc&1ZW^`n{%}oB<3!cpCWZ~_dO_G@ z>@DOOX}o(LW8jY<(Q>SI?{SSxYrGDJet26#Ps#b!H51cxv`q$hI`0v!{C=`J9payI zDgoY7w6yuUm><=NBz8UriN>4PO=-Lb=2OE3OXx>kDg7E@W0tRiAZHs_sdAl{Cc0r> z<8;BWW9pkF@EbXSJ1?ed7y6Nqz}+*GyJzbE{Ly@qBF*bT zf>skx?=Je8H6{pdd3l(pikRYc!HEc&@^4nB|L}l&M0g$V`Ep;&t0MAQ=AQ4*V9hJT zpK5cWe$HAHYyopX#}6+h8C+>li{Yrch^3cPobsN-3s%7`oMRC?Suhj)ja4UfQSN@O z$$+d3lX^G2 z;!S}u`(8MdA3H>M=|!sIF4`gfiPfIhiqjD?Vsl?9M9;{%>G~;(eOuj|0@4ywWdWJWA-tZF4yGM9Oz#aF*%RRiY!yN!>1hvYNK6i z(oh@)OF9=D9e1Jp=jrfUL993~>-t9c zkx&q8V;O7n|Nm&*^?r>0-j&AeNGr(C3g?)8Rg_-;$V013rFS*+cE9c;#n|+KN5!$` z4P(1)+!|MR-ZuMdPG-&r*GxDtcx-iXmDjoFv=y$I8VX!L zp0`?f7aUo1ZIuLG-OJeTOq*1+l%KMi*O5jK%0+#8c|G*$TL9hufbRd_rz=Pqc?3Y0 zhylDLfcIn2nOA)*+mNnn_0SSB=;nb0`C^16`)d%ztlvT7OGzDg}W%6WM z^Fd|8E$f~j3%Ig$o<&Nic>^AuundX72O`HVk{#LRkASCyY<3ah#ZKlEpGW4r{Y!z04R^WPoetMWI# z?mQ1oLO_eyY?R9PqAL;T*u2t!8a+QY6ip)UW4299*0B%~^;C$A`#fZ~<%tly3?)2+ zG}`f=e;rSwyl2WQf0)u}^)r-4lTaF6Fm51w#*p?32>T-J8A{73CDT=xz2$BiRjQlT zE5q#?CDjd|ft+~{Gmz-D7SHhxz5cx}=4OQPx=Yaq)S*|Q4*j@lJN+-{(3Nmj3mv-Q zJ?hY_S9puN%M>@s(FNDZ_Kunl@XR7FkaB9p#E7R@M$ zRs9<4QBE)A|3&wise9QP75UQGBh6yNZN1|;jc%v}#nf@^xROv)leCD9nj~*jf_f*d z?VJcDXn?j1a3{ti+zEc?ZMU9gB!`NqYeHpP$jR)5;qh#|!T-J%ikefQb)WDObnH6A zp;xAwCS@I}Y2>J;nIpbk8w*9fL5XAk3O0&4)(wnP9WA>FCT#+f5>Mm|_c(4e>0xBj zk8U;VaFZSdlYTat^eJxAYGl%C4P1x?lk%0gNvlIqpL8;BlH`lv%qOtuC&f71cChG4 zlSN-4i+<)jGFtQvrYt*WHt8E=(t2dli`4n-<;bL#YjKmlK_+b|fsMuz&wxqK(tUR6 z-n2#u-xy804w>{q4#yptRGq<&8yIG?=tg8wnIGzt{F2rcOahBa+phukUHC>%VY??u z&X6C0mp&rf&(L(q2Q_{+dg*!OrB5RAke8N<>*y6u?j|R_h@4ck1DrI#p((ThIjLXD zLb!ly=Z-4(**6DzJ=DJ;3L@VUH~Yym0{W$8;7!uo$Iv86-g`9QO%neJId&)8^zRqQ zo}w-=8Y+P%_sfjzqv3o4s4x;#VqzcH$x(E znQq}JWmS$r`>7E+t1V|6!At-n+x4ja|}iQw*hbDbjJ`b;Pke0(C5m0M%o zJ2E0adfcXuanH6aW2IQ`fh@_u%a_4Y5AvS65K%3i2pqFG7urVM;mQ_7a;53;4@Lz}~J; z-kUtS`ir(VTxJL@?}l;X<#h%5`cA@2az<3{$G$4DvPbqV!gOk$cZEH8jQP~Ox<~jX zg3rVLV)tdKjoso$Q0aKe-iYBdMRE@Z)v0yFN6p{dM! z@>QG~#cg!I-6m@ApCM{!5H*S%?uNw|t8P0~Wx`iBeC6JDxYM;x2Ya(ubn#798YXMl zkkpO0Q%Q1&^P;CH&TDt9wM;JPCcdQQXx%GRMedqx!V6tDxO&4k%_rQ|o4b`)UYT4y z{VQ_y4&>@D#+_%cJ*c~HTmF~+zGwMJNB8FSP#ID^xnJCXcfcdjKRShpzM|MN zmuRoDy;R%*vE>!Le49%rDBHLJHNlTxp*Zj*qTLt=UehaXg0eFB7p!z2@MMLQt#%kO zW_+<~txHuVd}YH|?pl{SH#3?)_W@D=z2GzMAs^bnLzIt@hiHa&W429-&*bRN&*bS+ zR>hb&>V`4sv~0>3a1%mr>nGez6ko`9U$c#uoONIEc?$B9Hs)XMUEn1HrL)w>$4M7s zVcMR)8nO{f|Aw3O=?XBb;uA8fVaIxC^uG}WrQe7z{pj!9D@fRVchr72e*@b#_cngV zZQJ=x>HR&&fd5NB1-;0&UC6edsBP@^|JnBVO!u`L`f8rahLk&v@0*+`1>y{V-sAm!Kovo=**gOqfTat>`JKV`_o z0FdHQ=u7>H4pJ5!Eh&15w(?_@-62;Ha^~;to@bDdzt`d&)q{&0(`P?c#!zqy>|XRDqECt0_amV?oG`oxT@dAt9m1N|NS)5K2mwotF;? z$-BD!@y|%eF%WVTg#0>c7RK0O4^kd3n3QlINqLwuBz+c0Ir5utRt6KKtT|R9T8_4| ztjaFT52W;5-LATZq}&34P9Z5lvlwy*5F%YTDd7zg@-k(JG#-R(`Q10G83{RltVFjC zgp6HXW%qR`5^`<3ikbsLu(x0q14x+~Hj5G90#X_mP7-g504ZNmhNLV#gIFNt z0UNaa;>Ag3#@m~;P8$OG13kiuznq;#d34u%4ZK)t+d9g3` zAQIwVS)#p-^vSNWYY(De;J1z2!{;C=?)Rr^JCKy|vlx3^K}vnnB;pAq#c|1yv8zGK zls|o`uaT4`l_l~=NXjo&b^}6SD-UmM56?kDLhn!2y#*mRC(L3Da|a<~7fqV-41`1u zSu$kudJrNm@f}ye1|emYB~t7&NU7UaW%n%%q%_^!{`g-cCGP&z%x@s&=%iVjP9iB8 zAms~^60l^*QVgVc9Pl0Y1xa~XS<>8#g#2D*HzpE~kU***CIq%=_BU;XX- HPek~C8|o8pMJPqavcBCxvDO2MeP(1}h3; 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 diff --git a/examples/runtime/shaders/dxil/fs_s2h_generate_user_font.bin b/examples/runtime/shaders/dxil/fs_s2h_generate_user_font.bin index f7261b587e818c27b5d21132e2c956826adee014..08c4bcc05b8c29398f3d93a3c0f3dd3cee37c56b 100644 GIT binary patch delta 2212 zcmY*Z4^R{775_H7*#rn-W4IV(Nj4xoPCZKyFewnS1R=ITxYKc zylnn}oXttR^f;zXdpL48-gVl+v)cA_ZgvS6WdtJFh=1B6BS^gp0&*Rg=CEJXc6x8- z+wZ;Kd*Azg``(*xNzttkR_rz=A?~H<31Wldff#`D+A@Rjm|>oq7@sZr^z+5ULG3FD z0N{c6jFHE46gD+%(-stJw&&+J<*D-v8a0I$%Qm&TP;J@X^y;hXtyW6|j0Q$}w=p%Y zKsk8!{nrldQti0hG9jtI@o=%ccBjcB0>BJ?Dl|^H(*z&~0qp}2FEg-zSHWEleMv3~ z@E|UQOW@4%U*XBrsXKUO?5qYT^q5KDlc`tVweW{e8qVpq=mRB}y6#GtO4%W~w zIlWQ$%rWc*KY^AxvSEh2Ok)CNX~+DTeIEF^>pAI5U1vJxP4e`ah{JZw>|+sTK&Vf^ zPoyzgUY{HXR&cUG1Xy+7u$fV{Ubn7F|3$nv*0Sf!I{*GVg_&M;$7o4#rh3v~d|Q|w zEbEa*bT6ILOtSNMtcy8 z|6Q!akx2m@UNSE7r5ZheC3qq}J`em2YI%yD)HI37=S}!doU4_Xz>O@6S`HPv=NqCyLilIt|BcZ z8jCGL*82IhmtScu7C2;{yEnvBzM(q1nU*@DAZ4GmO+YT&!=#=Vtk$ud1mm21oAr)B z6RmqnRo=j>S99+i(~ss8G}-%)L1xw$`m1>alj%|!BX-Y zrt9(AjNp+jIzcXI4%W5h&XT$i=Lp!w|A^X2?ix9%eYj5p=E&wRk^G-c2GG_xXu9xl zzXpsbc$TF|y;Zzc6UPqozyZ!pV3@UML9@i-WU-2o4ufkUkA zYF!cFGQ{e`Fovy>9fCJ6wxf>&b{X0%Bek#>VVF%9WlN3(hFGnj zvIsUvENB~jL?})Eq5V2`)={bpAsD>^$8IHs7&H(ly&lV0AUTNw_LVLMG>NH+J9HRS z##@Wg#NdMDX!Rw9Z6*Jz4XZ9gy2eU!$F#axL^<0%gMw0h7zL1sbP#PDwY7?4 z@xqAf0yAq;tg?e|i!Gy%mu-99L9%piDt>UmKSpcJ8!Ed?(iAbfm4tEoaE#Us3gBO^ ztfm0}>%syD)93M%+|92~ZnwDkIHc(CXC^$4y#$HQGBM(-0GlQy)&4Wcpk%4teS+06v7f6fo;a=m}BJ_kf$_RqFO)i)m^N93uBW#OFQY3Mr2j zV>+2}>5Pi$;ya{mrk<&74Q2puc2(KK)5RqKmF;fZn#_9Tav*de zcauJ`;?D{Yb8YJ95|~|JkF!6RjBM_tGd>2vWakT=G(R|+C!}kJH=AFavOd@6>R!i4 z?pocBAM#E|W&NHv{+x*AoRS?ndQx$V?gicrR_A7g>vyVfv_r2LFn8%$@!>avR!a}3%%HgPDUbWuyEq6rqEjO3(V+3u0 WvjhMN*DHxH3-5twT>U>Gz<&T%!XxYe delta 2275 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 S>qJ!Wt^(T*yzEDa#s33~Dje4U diff --git a/examples/runtime/shaders/dxil/fs_s2h_quadpost.bin b/examples/runtime/shaders/dxil/fs_s2h_quadpost.bin index 1bfd8e2c7b005b638965786f8d5760b1b6d5235a..ee7afa088ac088c3918dd4f05962848a79b63614 100644 GIT binary patch delta 22 ecmew-`c0I>E!cybvH8=(i30A73>zbsaRC5fwFnFV delta 30 gcmew+`cG8AE!cyHvH8z*!=0?MgbOe05*aJ^Z)<= delta 25 bcmeD2o8l+n7VN>p*!<}s0~BoJU{MDEUsDD3 diff --git a/examples/runtime/shaders/dxil/fs_s2h_scatter_display.bin b/examples/runtime/shaders/dxil/fs_s2h_scatter_display.bin index 58f94ed4d2a99454d6067c22ad1e690b8561dd00..275987a1d4e2ee8e3d0984af2378e58b2774280a 100644 GIT binary patch delta 22 dcmdlkzh0ihE!cybvH8=(i2^c=3>$U3_yJYE2PFUi delta 30 gcmZ24zg=FyE!cyHvH8AOHXW diff --git a/examples/runtime/shaders/dxil/fs_s2h_screen.bin b/examples/runtime/shaders/dxil/fs_s2h_screen.bin index 1d84489f10388b72dd8948e504ec4bd2ece98ac3..29724e60b1409257123891c37616b52becb9b202 100644 GIT binary patch delta 4063 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

-~IP-mh~y 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 diff --git a/examples/runtime/shaders/dxil/fs_s2h_use_user_font.bin b/examples/runtime/shaders/dxil/fs_s2h_use_user_font.bin index 16ee815dbeb253c790780bed2997b5eacba6b974..8b36a72b9a2441783186a7deb13e74823d021218 100644 GIT binary patch delta 22 ecmew;{!*O7E!cybvH8=(i2_E93>%%-aRUHfA_vs~ delta 30 gcmaDU{!v`OE!cyHvH80E$Wn&;S4c diff --git a/examples/runtime/shaders/dxil/fs_s2h_zoom2d.bin b/examples/runtime/shaders/dxil/fs_s2h_zoom2d.bin index 40d7ea39007162f1c9d4d4a2b3e1f0e4bc9e4c58..0dbc3bbe6c0b3d7a8d93b4baff87f3360dcbdd24 100644 GIT binary patch delta 11628 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

a~DXO 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 delta 12015 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 Ge)ta{iP5+K literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/cs_s2h_scatter_clear.bin b/examples/runtime/shaders/essl/cs_s2h_scatter_clear.bin new file mode 100644 index 0000000000000000000000000000000000000000..90f2beb372cb9393b674b825835e6a782a29613e GIT binary patch literal 636 zcmaJ;%Wi`(5Oi{MFa3l)f`pJE4iBY0B~qJ9FMNOn#37a(y8@Czs{DH$lSp~A9dR)0 zotd5WJbQmaXN=JEjy2&XEAzJHbtVpcJVMBP1|MUDWZvst>quSZk~QXi;lzy+aZ81Ix=>v{`&UQ)O>o8c>iR%m62#DhYpl~C32Q&&ZvxNy<=szuASl09rh zwfO|G%_|-*pkd7rVy>mGjqzTK6>M{%92b9MFc4;j5Lgf!VS9Ee$=;+ca=BD{6Y(^` za^ZKqJF|pBYYA);n0~|ZJ9sgfTIW86-`(`nU|@?iIEL(6sbPZC6pUW<`oHup{zpsY zvf;mLOwLY2pY@{;es)1wt84Du?#MfZ^6bMn#HVDyG>r(2D2?OkBqdQe^?>+MYLO%) aPDvaPO4Be%Vte-wG4P3dUd<67F-AYTQ>)Ja literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_s2h.bin b/examples/runtime/shaders/essl/fs_s2h.bin index b3326c551c558a69becdfe8b38213b108c5c5bdd..591cfb5f438fc01ea625df476a958bc57ee35e85 100644 GIT binary patch delta 17 YcmeAOYY5|T3-;h05{zR;{X5v delta 25 bcmZn&>j)EY3-;h)Z2t6+0SY#9{LlgbU~UHF diff --git a/examples/runtime/shaders/essl/fs_s2h_2d.bin b/examples/runtime/shaders/essl/fs_s2h_2d.bin index 5b34a187f9426422f0a27015137bc219dcd3ade4..8be50b50f0bfa721bf56af4d750368f919243528 100644 GIT binary patch delta 22 ecmZ3zigocSRt~pd4{pZhPY)XfwhAyxhXMd!!3Vzp delta 30 gcmZ3yigooWRspwQ4<5$mPY)TOppj!M2cvW-0FUhlxBvhE diff --git a/examples/runtime/shaders/essl/fs_s2h_3d.bin b/examples/runtime/shaders/essl/fs_s2h_3d.bin index 9357cc373710a46d816e69183e749ce00d12b3d8..2c14f7e32e511444cea9b013cdcfc40f5c805a6a 100644 GIT binary patch delta 22 dcmccH!g95Rg~Kh_gPXDW)5AuAtpbd`OaNi!2ebeH delta 30 gcmccG!g9BTMZhiCgNL#C(?bR*Xyn++!RX5b0FuE6tpET3 diff --git a/examples/runtime/shaders/essl/fs_s2h_arrow.bin b/examples/runtime/shaders/essl/fs_s2h_arrow.bin index 3f78ecc92c9b3f8086c649ed6e5f8b5769e3eef5..6b9575dca27c1d79ec159219350e9876f5bd028c 100644 GIT binary patch delta 19 bcmdn|mudB1CJwh?4{pZhPY*W=EZzqIRsjgg delta 27 dcmZ4emud4~CIPo#4<5$mPY)TOU?a!keE^Hf2+IHf diff --git a/examples/runtime/shaders/essl/fs_s2h_clear.bin b/examples/runtime/shaders/essl/fs_s2h_clear.bin index 53135309adbcb439e85f863929e11700d93f2a90..79c8c5bd9a609878c692c1f628b5ce8ac98ec3fd 100644 GIT binary patch delta 17 YcmdmKw$Y5kE!cybvH8=(jRKm|0635aCjbBd delta 25 bcmdmJw$n_&E!cyHvH8@N4{pZhPY*W=%qj!`Q0@pU delta 27 dcmZ4Vm~qu(Mgg~A4<5$mPY)TOU?az@LI8w!2rU2r diff --git a/examples/runtime/shaders/essl/fs_s2h_debug_zoom.bin b/examples/runtime/shaders/essl/fs_s2h_debug_zoom.bin index cabbcc8f510cc39d0502abbaa4d559737d442dcc..2d84c86c185d291bab986b39864a1862ab8cf9ce 100644 GIT binary patch delta 22 dcmaFFcZ-k1E!cybvH8=(i30A73>zc3*a2F~2PXgk delta 30 gcmcb`_lQrxE!cyHvH80swXr2~Yq4 delta 33 jcmZo)!_~irOTaDIgNL#C(?bR*Xyj<+VBE^V^nWSzc9FaiKqYzNB# delta 30 gcmX@Ya)w2~E!cyHvH8z*!=0?Mu9>m05iJ=0{{R3 delta 25 bcmey#(#R^{7VN>p*!<}s0~BoJC}aWvTfzne diff --git a/examples/runtime/shaders/essl/fs_s2h_quadvsps.bin b/examples/runtime/shaders/essl/fs_s2h_quadvsps.bin index 904f642a3a3047aecc18e9e365d8f7dc965794c0..f61b2cc6079ae54bff371cfa202e5ff720d245e5 100644 GIT binary patch delta 19 bcmbQToT+Cy6Ng){2RCE$r-vH_S|$SkMnwmf delta 27 dcmeBK&NO8?lYm>W2M=TOr-uwsu#ux>G5~bG2bTZ< diff --git a/examples/runtime/shaders/essl/fs_s2h_scatter_display.bin b/examples/runtime/shaders/essl/fs_s2h_scatter_display.bin index 520fd48a55b5c327d76dcee9ebbe330598e359a7..0dcc1c05c36f111b46e1a4bbdece2230ef714dfd 100644 GIT binary patch delta 21 dcmZ3%w1A1jE!cybvH8=(i2^c=3=?&K0{}<_2M+)M delta 29 fcmZ3$w1P>%E!cyHvH8-gYobTMh>@N4{pZhPY*W=So;6~O5+Dq delta 27 dcmX>+gYonXMgg~A4<5$mPY)TOU?YdM4*+}22UP$7 diff --git a/examples/runtime/shaders/essl/fs_s2h_table.bin b/examples/runtime/shaders/essl/fs_s2h_table.bin index 402121c7f65bebc014799d4f107f51fe48a8413f..ab86165510933ba3f71bea6bbf7f3f17e4e8b307 100644 GIT binary patch delta 22 ecmX@{jqSiUHV(I74{pZhPY)XfwhAy>>;?dEzX=uq delta 30 gcmX@`jqSuYHUYO_4<5$mPY)TOppj!M2cyMq0H=!y4*&oF diff --git a/examples/runtime/shaders/essl/fs_s2h_use_user_font.bin b/examples/runtime/shaders/essl/fs_s2h_use_user_font.bin index d1998ca2152c90cebb4e15aebc695c0034c61960..eb00d64dacff5a22542eee962fa7bdf38f1b330e 100644 GIT binary patch delta 22 dcmew(@I`>bE!cybvH8=(i2_E93>%#-IRIYk2W0>N delta 30 gcmew&@JB$vE!cyHvH8_4;}_6Xk=++VQgh#+RDN_y&C{|JqGsx diff --git a/examples/runtime/shaders/glsl/cs_s2h_scatter_clear.bin b/examples/runtime/shaders/glsl/cs_s2h_scatter_clear.bin index a3f35e1a88569edf1b803247edbf0bf6d3cea816..e8fdbcd4052fac526fe59002e8879824f9038f7c 100644 GIT binary patch delta 13 Ucmeyz@{NVXIoN}HBTo?%03s6v8vp delta 25 bcmca@^4LVcE!cyHvH8@N4{pZhPY*W=XygF^Q3?me delta 27 dcmdmRhjGUpMgg~A4<5$mPY)TOU?Yb{9sq>{2gU#Z diff --git a/examples/runtime/shaders/glsl/fs_s2h_debug_zoom.bin b/examples/runtime/shaders/glsl/fs_s2h_debug_zoom.bin index f8b13a7135e1942d3ad044071b5ca6528db31b61..eba055120a4a765e2f7a0a4d8a62c8ed2932420f 100644 GIT binary patch delta 22 dcmcb`dx@9BE!cybvH8=(i30A73>zbw*Z^8V2aEs! delta 30 gcmcb_dy7}VE!cyHvH8kyGxeCE!cybvH8=(jRKqa05``5g8%>k delta 25 bcmdlbdq`HmE!cyHvH8z*!=0?L;-h3hK&&`7y(pC2W9{O delta 30 gcmeyt+`uB>7VN>p*!<}s0~Ac;aA#!N7_fp70DLD0VE_OC diff --git a/examples/runtime/shaders/glsl/fs_s2h_quadpost_scene.bin b/examples/runtime/shaders/glsl/fs_s2h_quadpost_scene.bin index 0fe484cc5e4b4fae29519e33499ff86a16c9fbec..169050004e3d5607b3c2dfdbd46a0a314605c0eb 100644 GIT binary patch delta 17 YcmX@evXh0wE!cybvH8=(jRJ;D05huv!T%$qvjYH7!UswK delta 30 gcmbOxFi$|hE!cyHvH8{{rxZgmrqY0 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%0Dj8Ra;7A=Bu#Vle{PJA4+zqZ$}P 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/cs_s2h_scatter_clear.bin b/examples/runtime/shaders/metal/cs_s2h_scatter_clear.bin new file mode 100644 index 0000000000000000000000000000000000000000..4be51c06b99e54190ad968384a83b5595ec0a11d GIT binary patch literal 713 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 XS9kX}Z+7VWmrwrk^}Mb*tL@~ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_arrow.bin b/examples/runtime/shaders/metal/fs_s2h_arrow.bin new file mode 100644 index 0000000000000000000000000000000000000000..7df11dbc8b0acfc7acfd99ec1c9c5fad6d2f1b23 GIT binary patch literal 43661 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_clear.bin b/examples/runtime/shaders/metal/fs_s2h_clear.bin new file mode 100644 index 0000000000000000000000000000000000000000..36b4c04732b3c1df26781aee468d71d3bf6dfc3b GIT binary patch literal 7059 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_coordinate_system.bin b/examples/runtime/shaders/metal/fs_s2h_coordinate_system.bin new file mode 100644 index 0000000000000000000000000000000000000000..0f2df64ed15b3ee56d66848faccb9f2502243af9 GIT binary patch literal 23089 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_debug_zoom.bin b/examples/runtime/shaders/metal/fs_s2h_debug_zoom.bin new file mode 100644 index 0000000000000000000000000000000000000000..250f21b61555a0615e29a8a5863b3ebefb054509 GIT binary patch literal 1654 zcmah}%Wm5+5VQ}usE4*W^h}^YKsBzShwUgYqd`eyKfBmx)tk<4xk>tw>q8o zNfxtWM$vIfC1H_}GnPz8R*j1!o$aZIb2+lCLL}J&WhA9yNn(ohsUyo0GB09@qA!e3 z3A1i31Z&PXk$qIBdb9~YCVOPv*AgWo@?5fWl4KDtN-*Iy<$q@X;VX!*}z$Hk;sHYrnWJsSr6Eb)c*wCLSq`8jDleZXe&jhiilgV$*2e3I1SJ3 zhN6!mKMX(-H}iAK75ZrGa_W%=*aln|!GnQBhHYlnT*b|h&jnMAIOAW#pOoh(~S0lRV zd2M;9E8f+$*l4$|VgN?$)eU>Rn4Fty+lH>)^eSqAm1jLP<(vf&Ebv071mghRKhP`m zJue)(Q2%}q`k@Cdpu0P0gQBipqT0rfdu={tg0^~LOj1*<(yCftv0>bu*5v|D>-!6* zNr~0bbs3&6L+=I{Uce%eaxO20q)Sy~4*?2vBIMy=nq-(vMQg;LpKx&J3HAApVP&hO W1DUdO3KvPHK3up8EvwV{)cFTylIxTJ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_gather.bin b/examples/runtime/shaders/metal/fs_s2h_gather.bin new file mode 100644 index 0000000000000000000000000000000000000000..8ceb5eee05db033773a04e2cbe9885c62726424c GIT binary patch literal 111288 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_generate_user_font.bin b/examples/runtime/shaders/metal/fs_s2h_generate_user_font.bin new file mode 100644 index 0000000000000000000000000000000000000000..55450d142eef546498cfbd9c3d055b6a2e80acdc GIT binary patch literal 4822 zcmb_g%Wfmr5!EcsYyyA5wT%qOd2sIgF%KC*0w)`1lQFUo1fnIjG=xbu!ETNkAss%2#^;~`V{BNs8+b-7E&o|qqYq}4c zy8UwW5WS0SbxAs-uNLdeg#mb12-FBcc5gZu4bHGe^0(|4z%(T?1zb+xM7 z4NNH3dNmq#^=h-My81N*L)+@@Gu1ABtY@A2%Wic#YP;?3vQzEm{deoOx~hM_-Buq) zwFH(LC6kCNN3^ZOBf z)VIm(Ps`?_TK4^MwQQ=+tHZo_H6qbHfJZ&`dbe12&y*?lRLxv4>dh|;jBk}Q$@%Pe z&s5gIS)H}Uwb!|LA3a@1{H0v1PIP5;aW3T;XpwdHDOG=a@?&Efx&MI9UV}jHMVzykxp*wGTE+WcSP#GG^F=H!;B`;>WFF zjFh6u*;5#I5oD8{u}PEkFmaJi3=Rdc|ASkNgi;@Vb|DxSC^$H^#Ux2nTjZfFW9YSw zDdo($I9qH6AQXksD3sTc)tz^N&}Gc}SR<<-dmDmd!zSBoz3~FfP{l->jB|zacFCrs zQ8fz8d6WZ-Lu9U4$B8*>DU=W?8jpZo3_zF`Hd>1c@D3Sp&=8av08oN)%+ZvP`eGUn z*Sc3PN7AQ7w5+@cBMoN!1ddS$+9(ndo3wUrL2hfisO-kTe z;$2{6mR4U!8P?gP!|zW=DnY&53vPpxNA%d zD80|JLmg&~c4R>EiNSFMln-=_ShIk{7H(1?9Aha`EXFM)YeWaQ`Q+Gux8R^F!tg!# z`(I>%awnk=pf)yx#N-ML!3c3O4}eEO|7R|yN!G_?04s@U2%^%0J?ZG2_r$WMl)|0W z>qzlXE|AA?bYKYbM8(M`uqZl8XVGj*34?+X>NNs|U65GuGP6ABk)ouA8U&3w#HH#L ziYVBaZQ>RKW|&T1h8*Y_5I$F(6m*P<6o5aN+}GJ?Yh5(lx}b4JIb`O*Q~{qbGoeC! zgbCpZ`We=^@Af#;FPa|TGzy{pLIh1%uhCE*2fhBtu?kbHbafB1BhEI=OZ{&Ioh_n4}Rfq;u35K_o)< zd|}6c2dHz}AeJuZ3U0P!JVGm+_)wn4Scv`b!&5Aj$d4cN23YD5A;$pME^yG8t_3u} zU2qWqVeU|vE=N=-0wgSm{TK|GeOPd&@+82Fq}BcprN>m2f^$QnQ5b*I3sF4|z>!N2 z5{2M%!nKR=4>Wk@Fe6J0%tC1oJP61=R8j#5q#{fQgp8Unoi&8%36C(6LaH{pgFN^} zx9`z5pyzr!LkAd_Ie>)RSGYtqBqTV%+ykVP`%nYVI71!AtjBC}C8M$s0&6kr3Q9m4 z00#Z5DJUj7*nNPKnv0%v*drRNkCVIe%?;iazU`LZR*Utl*>(5NITzPgH?wc>676Q!rdhWp#r?)5$lHk_K_NI|ZvwtM*!?~bd@xVmV^V}Nzp;fKzU zZafwcriZiS^hP~ZxJ~gqMLgC{*ssiJ&H-Cr6k`)au{eBCW*rw5nLzDUAT z5$GCuC3m!!89#_T#UXVk7(x`q%aQcxn&3hOIRPu+JXhm9)shvq*f3&X#P;qlnr5kH z#uP1P=grY;hs1~ZcZd%@r#F3sM2}v=5D6p$lGu}nBoUW{zq=)G#{-56Z z+#OYjD2W>V4zC38`h*h&KauubocoL*i$}y6K!EBCiIYg(+jwzo!#J|&caw80)=6E!46|pJ^(GSu zFH;7WIn$KKN~b(q&&eULvOGOAgSVR#QmRaBLC~D3Jxv(YyQYLFU6hH2_!F0F%EpbDpEIGMC#5^LyK9*M{FY0l>6XQrSgl-0q`)bX zw3fVuIM+Nb5wyMS6uXT$Wec54p3b|Jonv>Q}&SNgd23K8m>^!UNo+PiS&`-AtT=c^0c^cIf(!O literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_quadpost_scene.bin b/examples/runtime/shaders/metal/fs_s2h_quadpost_scene.bin new file mode 100644 index 0000000000000000000000000000000000000000..d6bb7290d62cd6bddf7cb04a5b709015d689ae00 GIT binary patch literal 908 zcmbV~!ET%|5QbUxRQFQ#2`p8rAYD-#Fc_uDsY-jvslBaM$gpN($(RUCMHThbC+#cb z2{MKip;6jHM;K{5<8Q|Q`0DGISDRn=zdf*x_i`xu=;oVhrtG~lV zV|6h=S~=7;6m?Apr`FaqxHNX_0^flwPA~AnCpW)1iRd?KoYtgi?30kNd@`Og&U2RJ z5o2*iNgiixi%CeyY&6LUr75L(%#$o-X*7i+7Hns>gYlV_rIc}+M1~l3Kh&UDfKZI*-M!42oPxBNzX@}0ZVZu{I$n#!%4_6om@c;k- literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_quadvsps.bin b/examples/runtime/shaders/metal/fs_s2h_quadvsps.bin new file mode 100644 index 0000000000000000000000000000000000000000..096fdf189751e23e893ecec6986a2d1fde535b3b GIT binary patch literal 29656 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_scatter_display.bin b/examples/runtime/shaders/metal/fs_s2h_scatter_display.bin new file mode 100644 index 0000000000000000000000000000000000000000..b148018415f9c92c6b11db33924b0550eb732e18 GIT binary patch literal 621 zcmZvZPfNov7{)uiMG!rBf5A%!qnpFq{#=ydWv6*7rDSPV18Fjnw^A6M{G@&bKY%l7 zi|eYP4Ycp`{_?y}R-5O`!N=EU;MPTOYg5Z8A~%m(YO|rmUUG9YI35RH(67Jn3QNOJ z^{ey#>$=Hr->&~oC??B{!@S@~Woj{#V!I@#|5g;)*l*G6l9190m4l)Mw|mMs)Lk<| zESi!bRFdKv<(dkW>JrI;fLlAMDL%k9-&N_#(EN!aoj@EjKTkLrCdrJv{|^zW%b3Dj zio9Z4o6G}B%S|XXQ}@4&o#Pi={jt)u7Itk41@4Jsi!|q{P)RZZcZSb!n$2tLOE{0v zsar*Degw9;lb)=-DbH@|wR+eN)b-$^0{<@H;BxShxv!{~*P@4y8ftj%tvz()hKf32 S4I8ZCZZ75NE^$JF0D>QnG||-n literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_screen.bin b/examples/runtime/shaders/metal/fs_s2h_screen.bin new file mode 100644 index 0000000000000000000000000000000000000000..cb92d44e416af25c75a4ef106041fb8a3293e3b2 GIT binary patch literal 14476 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 NpFKEu@#42H{tp~GV2l6& literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_table.bin b/examples/runtime/shaders/metal/fs_s2h_table.bin new file mode 100644 index 0000000000000000000000000000000000000000..bd794168d5dee87bc43dca7a76d706a59a0a084c GIT binary patch literal 78113 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 RfAQ=u&z^nq$-n#L{{eR;S%Uxo literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_use_user_font.bin b/examples/runtime/shaders/metal/fs_s2h_use_user_font.bin new file mode 100644 index 0000000000000000000000000000000000000000..12539386fcc81bf84990f85b3d6b650f385c090f GIT binary patch literal 2165 zcmbVOO;6iE5DikLO75W_hn`2OgzOTG*WPs!0l84oUXZHN8;UF^aloo$Q+r(kh*N)Q z|3DA@19WD069@NDC3|ql?3?#yp0l%@o_~6=^YhQI4z6dNw^j7Lj;EiCN}d#1QJ%;1 z>ntf>?>s*45aJ)e*JL5kzQGio^|D3#N^#NS_w!EYU7Am_dYZt| zJdtr0RdSl8bK^H3hZrV8W z$`Eb<25yYF%v4J!MNv)>b6r%aOpAOpa!m8>UeFdehI=$^Wv35O;4_ROCmOO&=`L;^ z*w?Q6cHp~S7kJrY7L9xo-QGP_r%Ub=nE}Ps5+%r8E|T!{zhHC>~6(E z1_`3k1}W=(Q!|k=Uyw^S8iOJlqj(S*H&v~kf4zF4=VbBGJ&Fk{Z1ph-+`#Qv@gg literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_s2h_zoom2d.bin b/examples/runtime/shaders/metal/fs_s2h_zoom2d.bin new file mode 100644 index 0000000000000000000000000000000000000000..465f9e80f12915ea9dddcaf223cc4c9f5e575f4e GIT binary patch literal 57589 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 a&)duUhuilD!20#GU!Ohu?6d#$+5ZJ>B1vxm literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_s2h.bin b/examples/runtime/shaders/metal/vs_s2h.bin new file mode 100644 index 0000000000000000000000000000000000000000..60037f46832429bd4e96e943c4b899feb31c6efe GIT binary patch literal 842 zcmaKqQA@)x5XUo|FY!Si`~U}nbTaCkdz%yA^kp~@_A*9D+iXVCWTY3Jh);e}zk;8@ zRO`|eHMFId-2d*EyPMwK>=D0OZy)b1vhP@KGNGnYJWZ^5XtxMym&fFAhma$wQ{^%N z7r8*LSb>?6$t4Z@h0L?l@)O@*QtAq+m!NqriWN@pLZcO+M9aQy<=cGD(1Xf z;uZ^EHo-I j#4Eq2;eSP_VI|sZeCw=0XLZT$+e|6h*(EJNazRz delta 27 dcmeC*$~=85vw&N$2M=TOr-uwsu#uzv765pG2n7HD diff --git a/examples/runtime/shaders/spirv/fs_s2h_arrow.bin b/examples/runtime/shaders/spirv/fs_s2h_arrow.bin index ae5282164e57d7033f412533f9e3ebad98094266..f45206039d5061fd132822d5dce62333c6ccb43d 100644 GIT binary patch delta 19 bcmaDdmHEz8W)8Pt4{pZhPY*W=TsZ{*PuU2Y delta 27 dcmcaJmHEk3W&yWg4<5$mPY)TOU?azsQviZO2%G=_ diff --git a/examples/runtime/shaders/spirv/fs_s2h_clear.bin b/examples/runtime/shaders/spirv/fs_s2h_clear.bin index 6074ae06545a0925544c9b1a699169c0e06bf1b6..f12767b3dacddf9df6cf8a5da33899907d182347 100644 GIT binary patch delta 17 YcmezE@!5mJE!cybvH8=(jRM&!07H2P8UO$Q delta 25 bcmezD@!LbdE!cyHvH8@N4{pZhPY*W=gp~jQSwaYH delta 27 dcmccjg7Mi4Mgg~A4<5$mPY)TOU?WFZ2>_7W2yOrX diff --git a/examples/runtime/shaders/spirv/fs_s2h_debug_zoom.bin b/examples/runtime/shaders/spirv/fs_s2h_debug_zoom.bin index 4ae19494db82bf16e3c3965e208a5ed9b32efc03..c188aa5f762412f905e4303c30847a441e98d2a7 100644 GIT binary patch delta 17 YcmZ1{x=fVAE!cybvH8=(jRNzy05mHGGXMYp delta 25 bcmZ1`x=vKUE!cyHvH8xXTMPy? diff --git a/examples/runtime/shaders/spirv/fs_s2h_gather.bin b/examples/runtime/shaders/spirv/fs_s2h_gather.bin index 1e2791899f67b253c4559caf6b41e422cc395baa..0a727663fbab161c5fffe742ac94c654cffec05d 100644 GIT binary patch delta 25 gcmZo(&+&U52Zvj*2RCE$r-zLKtpbc&1(=G(0exf$uK)l5 delta 33 jcmeypj-z=!hk#qK2M=TOr-uws(8$rs!MK%!saPBUu+Rvg diff --git a/examples/runtime/shaders/spirv/fs_s2h_generate_user_font.bin b/examples/runtime/shaders/spirv/fs_s2h_generate_user_font.bin index c4f0ad27b5a191c217bb8ae8e0f54cebb7df55aa..d32e907ce5fcfee3071909676cdac72585b5fa7d 100644 GIT binary patch delta 2193 zcmYk6ZD^KN7{|}!+*~QXfGK^6rjRrjYt)BgHrN#Pn+tJYWg3o1H<}?q%3Z!RdmBC3 zi*JOwSfM7A1PYO;l^;}uj0O=(MD(FPNz+mUf4}=VS3PH(o$LDl|JQY$bFTY5A9jp( zG%sJha(ZRQjbE#?TPvScJ6AOJOi8J)I@12&T#Pk?&ukX#ER`(Zt`}>XrG$ zJV-|)fDr>5*DfFKA6PmxH2hrPec|lXsUexz@RdYsI~LX!_^HX< zE%+5?_zUWI>dj2k0cK@E-^tCDRkMm41njPx59M0Q9wzSth(RVnEEx?4gd2+33zD1#RyFF@l^h$)D`|A{L7avb%uW!|Jc#it~S)u5FWu7 ziy8PB*flE04Ez)DG4QbpRmb+6pR=eK!7|k|Y{9cH&HG*j+Jb)(U(D$sI?bTG++{HR zW~RDl%MPb>1zXOsD`Sn+5%-A3d)%gmRQ#7fL5QbeZ>|Z_j+~%5CyL;endlBIlG#=IsOiU?i;{mqt6q^<4?dD~f96BG3|#JKNN-5(BlzNWKjIhR z8xK_Sp?wrwu6zeG=%5MOvUoAJ0zVhuNfd1dQ{x=XMLV*8wr(R&fVl~|h1onHzJV{`GWQ-+k;(V>Ff8zKZy~^hF|H2pBjU6BDI(YN=(O$Lx zg9JZ@vmQe77EkhfR>vJ|KbSZ1|KaVsx`8&Zx3P_JY|R^Z2VeXIns)F}Y_V6cBko;% z90yeF zsiTKS@x{Hy(0z_=f_mK-_~PDL6!{9I;^$H4q}zQY&y z1FXMVdpeo!D>dUhvt97^+toH0=k?pNEvyb(rgi{d%$8{vy}W#X_Xlx&dOkIumQT{6 zA$Fb2+D}Pz0^W@nXQFtPe-kV32y8NAe({0btYJ@6!k^39CT`)FzyJkq!mIDYmb=TN Kd8&Lkv(r89wgSZf delta 2201 zcmYk6ZD^KN7{|}!Uep?BSo$rTq1Bw}@=GGFrs4eNBKLVMtQBUGs|ZwXUuJ3I^wIDI zF{4F+#sZ~43`+YT#0r!$C>j{nhx%4dGZFgz?&mu49CmiD>;L~>FXx>5Ji{G_I;O9D zc2!Gd$KO{|jOvuO%1713-A!GSQtGW13oA3KpUo;};5pvt8+`nwH7~D!0lO(Rqz3|T zO3lfLfmixgZtNdev0=l;wd%!t!Ji*^@vV}1y8re5MJaU?Yfi&gq00FmGKkTg8q3_R z*p-y#-38{9bWLEvd-115K<}A#mDSUVYXpqc&31a2jO2H)U3K%p=)v&W)Vn|Wv6rRc zyFdO)erDLs;Xj2>y0W}_eOf9?(1dFM8tMf49){R_coQ9KSSAI-oy!fu{<;W0oXX*j917$e(>CV4;MpN?t2-f+~e|Ee`z&nEB?3mVory9X`v~( zF);lpOm)wcH<{A+*m91Yfi+S`+^rbzwwfB^9891fi<_|rYl5^R5=@Q+a=Fl@C}a~o z=xpjTm|D3m%6K6^GQFhN5Wb1V&Dy|~Nkxs^7DawRWS0i#W`4yM_t3L$9RCVaF6(Af zRQv~u^pM_DZ3Pq0(|GYYU~)edh)p2a2_WI^c|>AQ;v-4-1fR8C;Br4hdO~XF;){FB zIes3#@jxY?wU2^usUvI`@y_}|1WRc)u!6Pc4Hgk*c=VKi!VNkW+C_1j=+*8X%PGcMIPIK(%_-fCTHHun?UjQhUyco@##WwgX z!cKNSgx$xbb;0{W&f$w0>ko=M{SsSzd*t{E+jw(b2<&TYb#fPr0MFw{Y(abq%#Y^+ zzPKM?{n2`-6KQIx`H*L}6W;rF^%{)x_`R}0R)<%nb}hb`SEgO`@bdlLUx(w<^Qrl? ze3BN;V%Le#j*w^+-bRcwQGTlb5G(J<*!95t;xjf;!3@E!cybvH8=(jRJ0L05@p{6#xJL delta 25 bcmX@dbB#y9E!cyHvH864U^)gC diff --git a/examples/runtime/shaders/spirv/fs_s2h_quadpost_scene.bin b/examples/runtime/shaders/spirv/fs_s2h_quadpost_scene.bin index 3eea89b62a95ef118c7c8bb7bb9c4e357c56d17e..c8e5a4e792293d1154a1c8505dccb6e562cf2e4f 100644 GIT binary patch delta 17 Ycmeyz{f(Q$E!cybvH8=(jRNmj0X>=r3IG5A delta 25 bcmeyy{f}F~E!cyHvH8z*!=0?MuG2405zosmjD0& delta 25 bcmey*+Ri567VN>p*!<}s0~BoJ_|60XUK|FP diff --git a/examples/runtime/shaders/spirv/fs_s2h_screen.bin b/examples/runtime/shaders/spirv/fs_s2h_screen.bin index 6db2cc6e027ff9c1ec26bcc5fc26a0b3e226ecde..f7b871ffd6db8bb4702e10a02895cc97e367da9c 100644 GIT binary patch delta 19 bcmX>+opJYcMh>@N4{pZhPY*W=Z1x5KN|^__ delta 27 dcmdlzo$>H=Mgg~A4<5$mPY)TOU?az7ZvcAo2f6?N diff --git a/examples/runtime/shaders/spirv/fs_s2h_table.bin b/examples/runtime/shaders/spirv/fs_s2h_table.bin index af960bf09a7ffeaeae8b526c0df15d6d900c22bd..7687d9861e46d4997d53fe05a57bd116be81cb4e 100644 GIT binary patch delta 22 dcmX@q%DStSmBTIAgPXDW)5AuAtpbdjoB&?v2qypl delta 30 gcmdnh%6h1kRlqISgNL#C(?bR*Xyn++!MMo@0FE>WAOHXW diff --git a/examples/runtime/shaders/spirv/fs_s2h_use_user_font.bin b/examples/runtime/shaders/spirv/fs_s2h_use_user_font.bin index 4e200c17ca4496d4e85b35904b79b46643c0d402..ad64d6b82358fdff456b684ff4ddbdf28e920fda 100644 GIT binary patch delta 17 YcmZpa_$kie7VN>z*!=0?MuCsq05<*xvH$=8 delta 25 bcmew<-Y6m97VN>p*!<}s0~BoJ_{a?aU^ND_ diff --git a/examples/runtime/shaders/spirv/fs_s2h_zoom2d.bin b/examples/runtime/shaders/spirv/fs_s2h_zoom2d.bin index 153347918003024f4f40881bcd58bef618e2479f..2818d3147111755f620424766105f568ae464e95 100644 GIT binary patch delta 22 dcmZ3~$ug^xg~Kh_gPXDW)5AuAtpbdbSO8hU2af;% delta 30 gcmbQ$$+D=EMZhiCgNL#C(?bR*Xyn++!8nNp0EayXhyVZp diff --git a/examples/runtime/shaders/spirv/vs_s2h.bin b/examples/runtime/shaders/spirv/vs_s2h.bin index 94f6c0e3b62510996a0ef96a53547cbd45921f6b..e67a7311c07eae0ad83ffb6c896bb5a6053eaa72 100644 GIT binary patch delta 21 bcmeyz`Hhn&EZBpa0SFkIKRw(i@`?ojN|6T{ delta 29 ecmeyy`Hxd1EZBpG0SFkIKRpD|Ah40=6$=1%b_W^& diff --git a/examples/runtime/shaders/wgsl/cs_s2h_scatter.bin b/examples/runtime/shaders/wgsl/cs_s2h_scatter.bin index e809e7b39608ad3590ee7226a4e4e0b725e28432..78077b1e7678f10a46c6c6276754c9b1d8348b11 100644 GIT binary patch delta 30 lcmX^AMC|wzF&5`w5AH^uRvyMy9;Q|v=2jk-tvsyGn*gI32@U`N delta 38 ocmX^9MC|+%F&^h&4;}_6Xk=++VQgh#YGq+=WntOM!s@&U0L8rs=Kufz diff --git a/examples/runtime/shaders/wgsl/cs_s2h_scatter_clear.bin b/examples/runtime/shaders/wgsl/cs_s2h_scatter_clear.bin index 4eb981316bf13808ecba3edea91c0dc5adb3588b..708acaa42871ad55eb31506e0533305c1d79cfd8 100644 GIT binary patch delta 13 UcmaFK`jC~yIoN}HBhOtX03iniUH||9 delta 21 XcmaFJ`jVB$IoN}T0SY#<++_j)H-rRV diff --git a/examples/runtime/shaders/wgsl/fs_s2h.bin b/examples/runtime/shaders/wgsl/fs_s2h.bin index 62b60deb6093181e6b3ae86753dc4fecae6b3903..e137f524fe03be5b9ff2a3e762d14f22f646da0a 100644 GIT binary patch delta 19 bcmdmXmvP-)Mh>@N4{pZhPY*W=EXxA`QQ-(d delta 27 dcmZ2?mvP%&Mgg~A4<5$mPY)TOU?az}JOG8t2toh= diff --git a/examples/runtime/shaders/wgsl/fs_s2h_2d.bin b/examples/runtime/shaders/wgsl/fs_s2h_2d.bin index 7127d0d147b2d0eaf8be415a604692ccbc12020b..3649e05e10b183999680c5633fdf8ff69689ab20 100644 GIT binary patch delta 28 jcmZ48#Iv}Ghr=z{gPXDW)5AuARsqIV0j8}2%+ibiiwp=@ delta 36 mcmZ47#Iw4IN5C!EgNL#C(?bR*Xyj<+U~J`J+RDK!%?JRvrU*d* diff --git a/examples/runtime/shaders/wgsl/fs_s2h_3d.bin b/examples/runtime/shaders/wgsl/fs_s2h_3d.bin index b29665737c31c1c8ee9c766beb05616d1467846e..3b9b64734c8e0be7f56114f140c71a6e1e740e74 100644 GIT binary patch delta 22 ecmcbxneD`8HV(I74{pZhPY)XfwhAyFm!MPXGV_ diff --git a/examples/runtime/shaders/wgsl/fs_s2h_clear.bin b/examples/runtime/shaders/wgsl/fs_s2h_clear.bin index 5399d38ff2272ebc2e47ad5b74462703cbe9c88b..c5818bf6faf3208ad56b1c5c5514fd9008759aa7 100644 GIT binary patch delta 17 Ycmdn&yxN(=E!cybvH8=(jRK1m0Xk3ywEzGB delta 25 bcmZ4OyxCd6E!cyHvH8K>z>% delta 25 bcmZqU>*Et}3-;h)Z2t6+0SY#9{9^+ERE7pZ diff --git a/examples/runtime/shaders/wgsl/fs_s2h_gather.bin b/examples/runtime/shaders/wgsl/fs_s2h_gather.bin index 5c35154c81e4936562c886be31707b2401af5827..6b125ce9dcaccef8ff33dbed4f1a636cc9c2444d 100644 GIT binary patch delta 28 kcmex%is#)a9uBu)4{pZhPY)XfS_K$e1(>!9FsG>k0I8)3?EnA( delta 36 mcmaENis#!Y9s##t4<5$mPY)TOppm1MgRzx^X)6bFnkoR`Zwb}_ diff --git a/examples/runtime/shaders/wgsl/fs_s2h_generate_user_font.bin b/examples/runtime/shaders/wgsl/fs_s2h_generate_user_font.bin index 2e95ec8f7a86604313affb4a78a81d0480f4b16e..36dc019873b36a3ed11539e995a66882c267dd54 100644 GIT binary patch delta 17 YcmeB?Z;|J43-;hz*!=0?Mge9P04@myLI3~& delta 25 bcmeC?n9L#I7VN>p*!<}s0~BoJU}gaTQfdW5 diff --git a/examples/runtime/shaders/wgsl/fs_s2h_quadpost_scene.bin b/examples/runtime/shaders/wgsl/fs_s2h_quadpost_scene.bin index 8c8df8db9a409a0b07e7be27853bce8dfbcffbd4..24f3cf566fed4718ce3a2d1649c1261e49bb781c 100644 GIT binary patch delta 17 YcmaFI{*0Z&E!cybvH8=(jRNsWgNL#C(?bR**vL_P1^{sd2cZA} diff --git a/examples/runtime/shaders/wgsl/fs_s2h_table.bin b/examples/runtime/shaders/wgsl/fs_s2h_table.bin index 47a69be013d692ff9092711e5fee88836a3add79..4761b32b1b1b19314e4778c21c95ae890e75f741 100644 GIT binary patch delta 31 ncmX>wLvY6oK@PWI4{pZhPY)XfS_K$e1(;d|n70bB82A7Hv04eS delta 39 pcmdlnL-4>1K>@d54<5$mPY)TOppm1MgRzx^sg;9yD+h~#4*=nh36cN+ diff --git a/examples/runtime/shaders/wgsl/fs_s2h_use_user_font.bin b/examples/runtime/shaders/wgsl/fs_s2h_use_user_font.bin index e1fc9a7986de54482d570528ae5a632c72e4b059..07a877a30476769b7b302cb94471f99da03996cf 100644 GIT binary patch delta 17 YcmZ3&KZl>gE!cybvH8=(jRI5H0Wu&41^@s6 delta 25 bcmbQkzl2}FE!cyHvH8!9Fq<0!0Hk0EoB#j- delta 36 mcmdo0i0Akt9s##t4<5$mPY)TOppm1MgRzx^X)6b_xgh}Ax(S5< diff --git a/examples/runtime/shaders/wgsl/vs_s2h.bin b/examples/runtime/shaders/wgsl/vs_s2h.bin index 0c0ef42d7e01910b7f72dab5b98974abfff4c2ea..6320c1cffc7864a4aaeafa5b2708462f34c88aa1 100644 GIT binary patch delta 21 bcmdnVzLA|LEZBpa0SFkIKRw(ivXmJBKJo@d delta 29 ecmdnUzLQ-fEZBpG0SFkIKRpD|Ah3~VDKh|OX9h+9