From 1611b074fbf6b6fd0aa6151c737cd938caf5af2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Tue, 6 Oct 2015 21:20:34 -0700 Subject: [PATCH] Metal: Built shaders. --- examples/makefile | 20 ++++++++++++++++++ examples/runtime/shaders/metal/fs_bump.bin | Bin 0 -> 5921 bytes .../runtime/shaders/metal/fs_callback.bin | Bin 0 -> 804 bytes examples/runtime/shaders/metal/fs_cubes.bin | Bin 0 -> 404 bytes .../shaders/metal/fs_deferred_combine.bin | Bin 0 -> 1196 bytes .../shaders/metal/fs_deferred_debug.bin | Bin 0 -> 598 bytes .../shaders/metal/fs_deferred_debug_line.bin | Bin 0 -> 404 bytes .../shaders/metal/fs_deferred_geom.bin | Bin 0 -> 1533 bytes .../shaders/metal/fs_deferred_light.bin | Bin 0 -> 2518 bytes .../runtime/shaders/metal/fs_hdr_blur.bin | Bin 0 -> 2044 bytes .../runtime/shaders/metal/fs_hdr_bright.bin | Bin 0 -> 3656 bytes examples/runtime/shaders/metal/fs_hdr_lum.bin | Bin 0 -> 3492 bytes .../runtime/shaders/metal/fs_hdr_lumavg.bin | Bin 0 -> 4916 bytes .../runtime/shaders/metal/fs_hdr_mesh.bin | Bin 0 -> 2434 bytes .../runtime/shaders/metal/fs_hdr_skybox.bin | Bin 0 -> 1054 bytes .../runtime/shaders/metal/fs_hdr_tonemap.bin | Bin 0 -> 4043 bytes .../runtime/shaders/metal/fs_ibl_mesh.bin | Bin 0 -> 2838 bytes .../runtime/shaders/metal/fs_ibl_skybox.bin | Bin 0 -> 1086 bytes .../runtime/shaders/metal/fs_instancing.bin | Bin 0 -> 404 bytes examples/runtime/shaders/metal/fs_mesh.bin | Bin 0 -> 1720 bytes examples/runtime/shaders/metal/fs_oit.bin | Bin 0 -> 402 bytes examples/runtime/shaders/metal/fs_oit_wb.bin | Bin 0 -> 676 bytes .../runtime/shaders/metal/fs_oit_wb_blit.bin | Bin 0 -> 933 bytes .../shaders/metal/fs_oit_wb_separate.bin | Bin 0 -> 609 bytes .../shaders/metal/fs_oit_wb_separate_blit.bin | Bin 0 -> 933 bytes .../runtime/shaders/metal/fs_particle.bin | Bin 0 -> 694 bytes .../runtime/shaders/metal/fs_raymarching.bin | Bin 0 -> 12676 bytes .../metal/fs_shadowmaps_color_black.bin | Bin 0 -> 396 bytes .../fs_shadowmaps_color_lightning_esm.bin | Bin 0 -> 4597 bytes .../fs_shadowmaps_color_lightning_esm_csm.bin | Bin 0 -> 11097 bytes ..._shadowmaps_color_lightning_esm_linear.bin | Bin 0 -> 4641 bytes ...dowmaps_color_lightning_esm_linear_csm.bin | Bin 0 -> 11317 bytes ...owmaps_color_lightning_esm_linear_omni.bin | Bin 0 -> 7861 bytes ...fs_shadowmaps_color_lightning_esm_omni.bin | Bin 0 -> 7815 bytes .../fs_shadowmaps_color_lightning_hard.bin | Bin 0 -> 4425 bytes ...fs_shadowmaps_color_lightning_hard_csm.bin | Bin 0 -> 10377 bytes ...shadowmaps_color_lightning_hard_linear.bin | Bin 0 -> 4457 bytes ...owmaps_color_lightning_hard_linear_csm.bin | Bin 0 -> 10513 bytes ...wmaps_color_lightning_hard_linear_omni.bin | Bin 0 -> 7678 bytes ...s_shadowmaps_color_lightning_hard_omni.bin | Bin 0 -> 7644 bytes .../fs_shadowmaps_color_lightning_pcf.bin | Bin 0 -> 16606 bytes .../fs_shadowmaps_color_lightning_pcf_csm.bin | Bin 0 -> 66411 bytes ..._shadowmaps_color_lightning_pcf_linear.bin | Bin 0 -> 16555 bytes ...dowmaps_color_lightning_pcf_linear_csm.bin | Bin 0 -> 66449 bytes ...owmaps_color_lightning_pcf_linear_omni.bin | Bin 0 -> 19991 bytes ...fs_shadowmaps_color_lightning_pcf_omni.bin | Bin 0 -> 19940 bytes .../fs_shadowmaps_color_lightning_vsm.bin | Bin 0 -> 5037 bytes .../fs_shadowmaps_color_lightning_vsm_csm.bin | Bin 0 -> 13099 bytes ..._shadowmaps_color_lightning_vsm_linear.bin | Bin 0 -> 5081 bytes ...dowmaps_color_lightning_vsm_linear_csm.bin | Bin 0 -> 13319 bytes ...owmaps_color_lightning_vsm_linear_omni.bin | Bin 0 -> 8303 bytes ...fs_shadowmaps_color_lightning_vsm_omni.bin | Bin 0 -> 8257 bytes .../metal/fs_shadowmaps_color_texture.bin | Bin 0 -> 1045 bytes .../shaders/metal/fs_shadowmaps_hblur.bin | Bin 0 -> 2840 bytes .../shaders/metal/fs_shadowmaps_hblur_vsm.bin | Bin 0 -> 3934 bytes .../shaders/metal/fs_shadowmaps_packdepth.bin | Bin 0 -> 623 bytes .../metal/fs_shadowmaps_packdepth_linear.bin | Bin 0 -> 566 bytes .../metal/fs_shadowmaps_packdepth_vsm.bin | Bin 0 -> 807 bytes .../fs_shadowmaps_packdepth_vsm_linear.bin | Bin 0 -> 729 bytes .../shaders/metal/fs_shadowmaps_texture.bin | Bin 0 -> 598 bytes .../metal/fs_shadowmaps_unpackdepth.bin | Bin 0 -> 815 bytes .../metal/fs_shadowmaps_unpackdepth_vsm.bin | Bin 0 -> 790 bytes .../shaders/metal/fs_shadowmaps_vblur.bin | Bin 0 -> 2840 bytes .../shaders/metal/fs_shadowmaps_vblur_vsm.bin | Bin 0 -> 3934 bytes .../metal/fs_shadowvolume_color_lightning.bin | Bin 0 -> 2666 bytes .../metal/fs_shadowvolume_color_texture.bin | Bin 0 -> 1045 bytes .../metal/fs_shadowvolume_svbackblank.bin | Bin 0 -> 396 bytes .../metal/fs_shadowvolume_svbackcolor.bin | Bin 0 -> 442 bytes .../metal/fs_shadowvolume_svbacktex1.bin | Bin 0 -> 794 bytes .../metal/fs_shadowvolume_svbacktex2.bin | Bin 0 -> 794 bytes .../metal/fs_shadowvolume_svfrontblank.bin | Bin 0 -> 426 bytes .../metal/fs_shadowvolume_svfrontcolor.bin | Bin 0 -> 442 bytes .../metal/fs_shadowvolume_svfronttex1.bin | Bin 0 -> 791 bytes .../metal/fs_shadowvolume_svfronttex2.bin | Bin 0 -> 791 bytes .../shaders/metal/fs_shadowvolume_svside.bin | Bin 0 -> 823 bytes .../metal/fs_shadowvolume_svsideblank.bin | Bin 0 -> 396 bytes .../metal/fs_shadowvolume_svsidecolor.bin | Bin 0 -> 442 bytes .../metal/fs_shadowvolume_svsidetex.bin | Bin 0 -> 905 bytes .../shaders/metal/fs_shadowvolume_texture.bin | Bin 0 -> 598 bytes .../fs_shadowvolume_texture_lightning.bin | Bin 0 -> 3054 bytes .../runtime/shaders/metal/fs_sms_mesh.bin | Bin 0 -> 9729 bytes .../runtime/shaders/metal/fs_sms_mesh_pd.bin | Bin 0 -> 9605 bytes .../runtime/shaders/metal/fs_sms_shadow.bin | Bin 0 -> 396 bytes .../shaders/metal/fs_sms_shadow_pd.bin | Bin 0 -> 623 bytes .../shaders/metal/fs_stencil_color_black.bin | Bin 0 -> 396 bytes .../metal/fs_stencil_color_lightning.bin | Bin 0 -> 2345 bytes .../metal/fs_stencil_color_texture.bin | Bin 0 -> 1045 bytes .../shaders/metal/fs_stencil_texture.bin | Bin 0 -> 598 bytes .../metal/fs_stencil_texture_lightning.bin | Bin 0 -> 2745 bytes examples/runtime/shaders/metal/fs_tree.bin | Bin 0 -> 1846 bytes examples/runtime/shaders/metal/fs_update.bin | Bin 0 -> 596 bytes .../runtime/shaders/metal/fs_update_3d.bin | Bin 0 -> 737 bytes .../runtime/shaders/metal/fs_update_cmp.bin | Bin 0 -> 644 bytes .../shaders/metal/fs_vectordisplay_blit.bin | Bin 0 -> 824 bytes .../shaders/metal/fs_vectordisplay_blur.bin | Bin 0 -> 3314 bytes .../shaders/metal/fs_vectordisplay_fb.bin | Bin 0 -> 796 bytes examples/runtime/shaders/metal/vs_bump.bin | Bin 0 -> 2038 bytes .../shaders/metal/vs_bump_instanced.bin | Bin 0 -> 2272 bytes .../runtime/shaders/metal/vs_callback.bin | Bin 0 -> 819 bytes examples/runtime/shaders/metal/vs_cubes.bin | Bin 0 -> 647 bytes .../shaders/metal/vs_deferred_combine.bin | Bin 0 -> 659 bytes .../shaders/metal/vs_deferred_debug.bin | Bin 0 -> 659 bytes .../shaders/metal/vs_deferred_debug_line.bin | Bin 0 -> 647 bytes .../shaders/metal/vs_deferred_geom.bin | Bin 0 -> 2038 bytes .../shaders/metal/vs_deferred_light.bin | Bin 0 -> 659 bytes .../runtime/shaders/metal/vs_hdr_blur.bin | Bin 0 -> 1880 bytes .../runtime/shaders/metal/vs_hdr_bright.bin | Bin 0 -> 659 bytes examples/runtime/shaders/metal/vs_hdr_lum.bin | Bin 0 -> 659 bytes .../runtime/shaders/metal/vs_hdr_lumavg.bin | Bin 0 -> 659 bytes .../runtime/shaders/metal/vs_hdr_mesh.bin | Bin 0 -> 984 bytes .../runtime/shaders/metal/vs_hdr_skybox.bin | Bin 0 -> 659 bytes .../runtime/shaders/metal/vs_hdr_tonemap.bin | Bin 0 -> 1782 bytes .../runtime/shaders/metal/vs_ibl_mesh.bin | Bin 0 -> 979 bytes .../runtime/shaders/metal/vs_ibl_skybox.bin | Bin 0 -> 781 bytes .../runtime/shaders/metal/vs_instancing.bin | Bin 0 -> 987 bytes examples/runtime/shaders/metal/vs_mesh.bin | Bin 0 -> 1749 bytes examples/runtime/shaders/metal/vs_oit.bin | Bin 0 -> 898 bytes .../runtime/shaders/metal/vs_oit_blit.bin | Bin 0 -> 659 bytes .../runtime/shaders/metal/vs_particle.bin | Bin 0 -> 1204 bytes .../runtime/shaders/metal/vs_raymarching.bin | Bin 0 -> 751 bytes .../shaders/metal/vs_shadowmaps_color.bin | Bin 0 -> 555 bytes .../metal/vs_shadowmaps_color_lightning.bin | Bin 0 -> 1223 bytes .../vs_shadowmaps_color_lightning_csm.bin | Bin 0 -> 1751 bytes .../vs_shadowmaps_color_lightning_linear.bin | Bin 0 -> 1282 bytes ..._shadowmaps_color_lightning_linear_csm.bin | Bin 0 -> 1971 bytes ...shadowmaps_color_lightning_linear_omni.bin | Bin 0 -> 1913 bytes .../vs_shadowmaps_color_lightning_omni.bin | Bin 0 -> 1693 bytes .../metal/vs_shadowmaps_color_texture.bin | Bin 0 -> 659 bytes .../shaders/metal/vs_shadowmaps_depth.bin | Bin 0 -> 555 bytes .../shaders/metal/vs_shadowmaps_hblur.bin | Bin 0 -> 1835 bytes .../shaders/metal/vs_shadowmaps_packdepth.bin | Bin 0 -> 618 bytes .../metal/vs_shadowmaps_packdepth_linear.bin | Bin 0 -> 629 bytes .../shaders/metal/vs_shadowmaps_texture.bin | Bin 0 -> 659 bytes .../metal/vs_shadowmaps_texture_lightning.bin | Bin 0 -> 1035 bytes .../metal/vs_shadowmaps_unpackdepth.bin | Bin 0 -> 659 bytes .../shaders/metal/vs_shadowmaps_vblur.bin | Bin 0 -> 1835 bytes .../metal/vs_shadowvolume_color_lightning.bin | Bin 0 -> 931 bytes .../metal/vs_shadowvolume_color_texture.bin | Bin 0 -> 659 bytes .../shaders/metal/vs_shadowvolume_svback.bin | Bin 0 -> 730 bytes .../shaders/metal/vs_shadowvolume_svfront.bin | Bin 0 -> 555 bytes .../shaders/metal/vs_shadowvolume_svside.bin | Bin 0 -> 931 bytes .../shaders/metal/vs_shadowvolume_texture.bin | Bin 0 -> 659 bytes .../vs_shadowvolume_texture_lightning.bin | Bin 0 -> 1035 bytes .../runtime/shaders/metal/vs_sms_mesh.bin | Bin 0 -> 1190 bytes .../runtime/shaders/metal/vs_sms_shadow.bin | Bin 0 -> 555 bytes .../shaders/metal/vs_sms_shadow_pd.bin | Bin 0 -> 618 bytes .../shaders/metal/vs_stencil_color.bin | Bin 0 -> 555 bytes .../metal/vs_stencil_color_lightning.bin | Bin 0 -> 931 bytes .../metal/vs_stencil_color_texture.bin | Bin 0 -> 659 bytes .../shaders/metal/vs_stencil_texture.bin | Bin 0 -> 659 bytes .../metal/vs_stencil_texture_lightning.bin | Bin 0 -> 1035 bytes examples/runtime/shaders/metal/vs_tree.bin | Bin 0 -> 1113 bytes examples/runtime/shaders/metal/vs_update.bin | Bin 0 -> 659 bytes .../shaders/metal/vs_vectordisplay_fb.bin | Bin 0 -> 751 bytes 154 files changed, 20 insertions(+) create mode 100644 examples/runtime/shaders/metal/fs_bump.bin create mode 100644 examples/runtime/shaders/metal/fs_callback.bin create mode 100644 examples/runtime/shaders/metal/fs_cubes.bin create mode 100644 examples/runtime/shaders/metal/fs_deferred_combine.bin create mode 100644 examples/runtime/shaders/metal/fs_deferred_debug.bin create mode 100644 examples/runtime/shaders/metal/fs_deferred_debug_line.bin create mode 100644 examples/runtime/shaders/metal/fs_deferred_geom.bin create mode 100644 examples/runtime/shaders/metal/fs_deferred_light.bin create mode 100644 examples/runtime/shaders/metal/fs_hdr_blur.bin create mode 100644 examples/runtime/shaders/metal/fs_hdr_bright.bin create mode 100644 examples/runtime/shaders/metal/fs_hdr_lum.bin create mode 100644 examples/runtime/shaders/metal/fs_hdr_lumavg.bin create mode 100644 examples/runtime/shaders/metal/fs_hdr_mesh.bin create mode 100644 examples/runtime/shaders/metal/fs_hdr_skybox.bin create mode 100644 examples/runtime/shaders/metal/fs_hdr_tonemap.bin create mode 100644 examples/runtime/shaders/metal/fs_ibl_mesh.bin create mode 100644 examples/runtime/shaders/metal/fs_ibl_skybox.bin create mode 100644 examples/runtime/shaders/metal/fs_instancing.bin create mode 100644 examples/runtime/shaders/metal/fs_mesh.bin create mode 100644 examples/runtime/shaders/metal/fs_oit.bin create mode 100644 examples/runtime/shaders/metal/fs_oit_wb.bin create mode 100644 examples/runtime/shaders/metal/fs_oit_wb_blit.bin create mode 100644 examples/runtime/shaders/metal/fs_oit_wb_separate.bin create mode 100644 examples/runtime/shaders/metal/fs_oit_wb_separate_blit.bin create mode 100644 examples/runtime/shaders/metal/fs_particle.bin create mode 100644 examples/runtime/shaders/metal/fs_raymarching.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_black.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_linear.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_linear_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_linear_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_linear.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_linear_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_linear_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_linear.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_linear_csm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_linear_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_omni.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_color_texture.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_hblur.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_hblur_vsm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_packdepth.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_packdepth_linear.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_packdepth_vsm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_packdepth_vsm_linear.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_texture.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_unpackdepth.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_unpackdepth_vsm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_vblur.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowmaps_vblur_vsm.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_color_lightning.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_color_texture.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svbackblank.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svbackcolor.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svbacktex1.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svbacktex2.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svfrontblank.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svfrontcolor.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svfronttex1.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svfronttex2.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svside.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svsideblank.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svsidecolor.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_svsidetex.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_texture.bin create mode 100644 examples/runtime/shaders/metal/fs_shadowvolume_texture_lightning.bin create mode 100644 examples/runtime/shaders/metal/fs_sms_mesh.bin create mode 100644 examples/runtime/shaders/metal/fs_sms_mesh_pd.bin create mode 100644 examples/runtime/shaders/metal/fs_sms_shadow.bin create mode 100644 examples/runtime/shaders/metal/fs_sms_shadow_pd.bin create mode 100644 examples/runtime/shaders/metal/fs_stencil_color_black.bin create mode 100644 examples/runtime/shaders/metal/fs_stencil_color_lightning.bin create mode 100644 examples/runtime/shaders/metal/fs_stencil_color_texture.bin create mode 100644 examples/runtime/shaders/metal/fs_stencil_texture.bin create mode 100644 examples/runtime/shaders/metal/fs_stencil_texture_lightning.bin create mode 100644 examples/runtime/shaders/metal/fs_tree.bin create mode 100644 examples/runtime/shaders/metal/fs_update.bin create mode 100644 examples/runtime/shaders/metal/fs_update_3d.bin create mode 100644 examples/runtime/shaders/metal/fs_update_cmp.bin create mode 100644 examples/runtime/shaders/metal/fs_vectordisplay_blit.bin create mode 100644 examples/runtime/shaders/metal/fs_vectordisplay_blur.bin create mode 100644 examples/runtime/shaders/metal/fs_vectordisplay_fb.bin create mode 100644 examples/runtime/shaders/metal/vs_bump.bin create mode 100644 examples/runtime/shaders/metal/vs_bump_instanced.bin create mode 100644 examples/runtime/shaders/metal/vs_callback.bin create mode 100644 examples/runtime/shaders/metal/vs_cubes.bin create mode 100644 examples/runtime/shaders/metal/vs_deferred_combine.bin create mode 100644 examples/runtime/shaders/metal/vs_deferred_debug.bin create mode 100644 examples/runtime/shaders/metal/vs_deferred_debug_line.bin create mode 100644 examples/runtime/shaders/metal/vs_deferred_geom.bin create mode 100644 examples/runtime/shaders/metal/vs_deferred_light.bin create mode 100644 examples/runtime/shaders/metal/vs_hdr_blur.bin create mode 100644 examples/runtime/shaders/metal/vs_hdr_bright.bin create mode 100644 examples/runtime/shaders/metal/vs_hdr_lum.bin create mode 100644 examples/runtime/shaders/metal/vs_hdr_lumavg.bin create mode 100644 examples/runtime/shaders/metal/vs_hdr_mesh.bin create mode 100644 examples/runtime/shaders/metal/vs_hdr_skybox.bin create mode 100644 examples/runtime/shaders/metal/vs_hdr_tonemap.bin create mode 100644 examples/runtime/shaders/metal/vs_ibl_mesh.bin create mode 100644 examples/runtime/shaders/metal/vs_ibl_skybox.bin create mode 100644 examples/runtime/shaders/metal/vs_instancing.bin create mode 100644 examples/runtime/shaders/metal/vs_mesh.bin create mode 100644 examples/runtime/shaders/metal/vs_oit.bin create mode 100644 examples/runtime/shaders/metal/vs_oit_blit.bin create mode 100644 examples/runtime/shaders/metal/vs_particle.bin create mode 100644 examples/runtime/shaders/metal/vs_raymarching.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color_lightning.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_csm.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_linear.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_linear_csm.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_linear_omni.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_omni.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_color_texture.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_depth.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_hblur.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_packdepth.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_packdepth_linear.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_texture.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_texture_lightning.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_unpackdepth.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowmaps_vblur.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowvolume_color_lightning.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowvolume_color_texture.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowvolume_svback.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowvolume_svfront.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowvolume_svside.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowvolume_texture.bin create mode 100644 examples/runtime/shaders/metal/vs_shadowvolume_texture_lightning.bin create mode 100644 examples/runtime/shaders/metal/vs_sms_mesh.bin create mode 100644 examples/runtime/shaders/metal/vs_sms_shadow.bin create mode 100644 examples/runtime/shaders/metal/vs_sms_shadow_pd.bin create mode 100644 examples/runtime/shaders/metal/vs_stencil_color.bin create mode 100644 examples/runtime/shaders/metal/vs_stencil_color_lightning.bin create mode 100644 examples/runtime/shaders/metal/vs_stencil_color_texture.bin create mode 100644 examples/runtime/shaders/metal/vs_stencil_texture.bin create mode 100644 examples/runtime/shaders/metal/vs_stencil_texture_lightning.bin create mode 100644 examples/runtime/shaders/metal/vs_tree.bin create mode 100644 examples/runtime/shaders/metal/vs_update.bin create mode 100644 examples/runtime/shaders/metal/vs_vectordisplay_fb.bin diff --git a/examples/makefile b/examples/makefile index ebebb525..56ad944b 100644 --- a/examples/makefile +++ b/examples/makefile @@ -30,3 +30,23 @@ rebuild: @make -s --no-print-directory rebuild -C common/font @make -s --no-print-directory rebuild -C common/imgui @make -s --no-print-directory rebuild -C common/nanovg + +metal: + @make -s --no-print-directory TARGET=5 -C 01-cubes + @make -s --no-print-directory TARGET=5 -C 03-raymarch + @make -s --no-print-directory TARGET=5 -C 04-mesh + @make -s --no-print-directory TARGET=5 -C 05-instancing + @make -s --no-print-directory TARGET=5 -C 06-bump + @make -s --no-print-directory TARGET=5 -C 07-callback + @make -s --no-print-directory TARGET=5 -C 08-update + @make -s --no-print-directory TARGET=5 -C 09-hdr + @make -s --no-print-directory TARGET=5 -C 12-lod + @make -s --no-print-directory TARGET=5 -C 13-stencil + @make -s --no-print-directory TARGET=5 -C 14-shadowvolumes + @make -s --no-print-directory TARGET=5 -C 15-shadowmaps-simple + @make -s --no-print-directory TARGET=5 -C 16-shadowmaps + @make -s --no-print-directory TARGET=5 -C 18-ibl + @make -s --no-print-directory TARGET=5 -C 19-oit + @make -s --no-print-directory TARGET=5 -C 21-deferred + @make -s --no-print-directory TARGET=5 -C 23-vectordisplay + @make -s --no-print-directory TARGET=5 -C 24-nbody diff --git a/examples/runtime/shaders/metal/fs_bump.bin b/examples/runtime/shaders/metal/fs_bump.bin new file mode 100644 index 0000000000000000000000000000000000000000..d9c2da922fc93810f527e5f1b8482321d12c37ce GIT binary patch literal 5921 zcmcJT&2Hm15XW=q$;V!L<*AUijw+J2VjmK_7OT-Wyv%@B>Kh>Mh59uN+KjyoA&Atp6TW*T9mh3UPTi0p6%JTZ!y_*;1 z7M(bT$7TWs*V*B|D9T0bSw60_C-277uBfgDf40Z;>%KNYJ*1oEh^;os`!ZeqTx^Q6 zbJXwodI>Q$YZfeg$CS9!e)$M3*qp(kJR(BusJS%VLDTK6yskX3uKT$d; zoxD%!I%h#kCX;QwN!IN4wyM)rmaOyne8}#L94?PN>VUszG-eND?)J-NRt9l6pF^I9 zj4?=Oy)QGd_=(E%j#ZdpN(9*Jr!-*5s&u>CWF@()w!6eL)em3y{R`FEan2!{4(Ha^ zct_iC@CAbRQloQ6>nyMWSXRlXIJB08H+R)WON6bIJV;h=caLeANW5u&-^O$HmMQb~ zOBSfqN3aLg_6sZg0SdeKqXLFid2p$N?RTEXvhMp zt_Ynq7#)QnO{V5eM09ut??GUu#p^dL!0AE}#UZ=Y7aT4yCOhy2##Mimbr2|PFaYC4 zQM16>9G-{GfWxz%Ta!UgId)b$2A`LDxK{!cyb9bOJaGn3a3N~%M<+^+=diLD2+&p) zkwGgWk1SiPvN*XyfBGl5^Sw3725$|2%m$h|u}op`{RRXCsSUs-V*%xg(xVqX8Jdxk zFl0X-P1ZmLCkxTXrHKr!1C?(bYZwk$9K}Os%A^*hXPP;Y%`i)9tSR~wE3QrPw~AL% zJpgtI|56pZ^Du>DBNepIVaH?4;($HokdAgTUv%@ zZ`tJWxN#+{FOs|Q1-l%)nJaG^5vl!88{V5pO)f(dF{}x+ptfJAYif1Uq=<8>m05Bk zAX_%paTDsu#^XYW%joa~v0^wvs~D@L3QH+7%a9cLHa(a$QT@$Req@VkrD(0xIcM+m zy%2`N7JS3Hyg`=Q)W=;)al}-o{&+wAaiW3R)EsHhr9kj^szC1IfFloH(;y$&+VIg? z72<@R3iGKvG4d|`%v?2sZHpRbz14_W zQb~3j9;~rNmcelWBYiBwrX#RXvW#fVJ_XP~M?ruj#HgQm(9rg4&^H4C{h(GJxIt8Nh zHB<>FbH{qD!6qPRl;q{1d{j&RSokUp-Q;S7SzM( zjn|4QT>3Gpgo{-{SnY!<;q)L4s$6o4sf#LqnrUxT!J_&!4&sVx*1vHO9y({eQ8hb< zDu}{q7R9UuRgmGnjRPdG163Zn{tGm;O3y+AR@x650uF9kw`%W9YbM=uOHxnki@bq` z><0}=$BTl7#1_~0*FXdOokByp5R(Y8*PtPxb2M_o7O(p)11I#LA^8b3;MQ4aNVk=h z$iyRPK+Fv^=%O1M5|rKr4e8QTQsZe>2@{;WY)I!7!KT9noFu^YfrfNiB?}GdGE7cf zXh?6GNpEPtqWVBXj=vHb(q*N*>I)69Jk#Gm6b>}N_O!o&4EKcwB=G-&hF0l0Xy8iw zK|{h3YR@A3Iw#!&L}KfWozqBtx}lF#tzT~F3Cv3XI``p*fKf#5CrtXX0a|OiPZ=tZ z1<C1rr5At=%i|>59;)w<6U1i@8;Lv-10Yj35^&}$bKg>V9@U~dY+bb%+B|Gk! zCE?71Z!&M25ZWBJ1rtZ3G5z7%PJgPh7$VFfjH%5v5w_(4nA^d)vC9lTn&#RCd@vpi GF8&3U^%uVY literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_callback.bin b/examples/runtime/shaders/metal/fs_callback.bin new file mode 100644 index 0000000000000000000000000000000000000000..9ac9550987022e598a62d460db632727686a13fb GIT binary patch literal 804 zcmaKq&rX9t5XMRL#NGRx%&sCqsHeu0Nu!6xL*vO1vciHS%Pv`#mSTGIO?)jM#e>Vg zhGJ_-$S}sjgTywo4ey4&!w7}BrI4+k~}m{CuJ`@jfKo~ zbL|`J@{IBcUGLlzFGF!EeHkIpHs)a=_Rz9QfuDIIHnRg z*!Qv74C0_cPtaD2(M(j9uZaw9o751)Jw$O-p$^CH$Ay%dRNIrP!QLB*JT1yd z1&Heb5|-8!Aq@h61{Ql;S8z3GUAwNfxT&~-NuB;NuG6xn4r9Bvz_Fc{zB|1=-l_)3 z#RgE{w~hDb?rxCPUn%6;t_24#+_LQPJPg;JU61cs;5E(h-ovqHckR M-fda$ZD*RsFJHR?BLDyZ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_cubes.bin b/examples/runtime/shaders/metal/fs_cubes.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb726f353c002947a3d859eeab87cf57a9dd1b82 GIT binary patch literal 404 zcmZ{g&1yn15QS6dDo-)1q9Ed;yNj!W=t5kGE4hT}HMs_oiR4a1kS@FGYxMp43XK|Q zd$GIxobQ}7Gh5FeKR><}LcBi+kvdB)5PIDmu+iW(qpM`cF*OV)hrDFB-s4Wk1sxK@ zSpparke}hGn&3j5RPyaUu}a)STBl|a+m{RXFSa3TLi9N*`H!gkv+wpv-L>k%}8^0n_+LZ9Huq|Ce~V{{x$hIKuZm$Cl@lm=IIsPgaaH2ysy VOmDAt{Ie>6s5wO{`n&`w#W$VYkJkVI literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_deferred_combine.bin b/examples/runtime/shaders/metal/fs_deferred_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..fa8ca277c114255b2fcae7caf0b6ab18acdc6324 GIT binary patch literal 1196 zcmb7DPfNov6z{=PKZLxKv{K4!yIrPUgrNuVAf9A|Y)iXBnv^u%rs7BOyPBqnW?P5I zV5E8P{rg> zIsyP?Shj*Bt83kZTWAob3$o%W+r)Hw1P!igN`wY$sv0?oCiDj`EsM2uV6T*lAy}Jd zQM4SmQ9QW8kSL}L;Am~>i)FD*H&Ps$~ zctn#pG)cUBdskF7-$H;FOBb#f)7SrYmN_KZ31{g)on@}GGc^(ud2&x5#$~S~LA2dyDWB12kMw zT*8qcJ5@^QdQrr`*F~QeC)I)S<{4T}Hk!7tiYt9n^(DJTY2m`0ZR6;I$%|=%ahPyR zI|<2^afv`qI@s?G(w31+EsR#PWxetp zticQ&_+=bFpk9!Hp`zzZdpjd~GNT62Q`2}TbvAt1&QGEWhmPf;=#NyBr{T}^4KE{@ w{QKvldosx9$r&W$@lp?xE<}LcBi+kvdB)5PIDmu+iW(qpM`cF*OV)hrDFB-s4Wk1sxK@ zSpparke}hGn&3j5RPyaUu}a)STBl|a+m{RXFSa3TLi9N*`H!gkv+wpv-L>k%}8^0n_+LZ9Huq|Ce~V{{x$hIKuZm$Cl@lm=IIsPgaaH2ysy VOmDAt{Ie>6s5wO{`n&`w#W$VYkJkVI literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_deferred_geom.bin b/examples/runtime/shaders/metal/fs_deferred_geom.bin new file mode 100644 index 0000000000000000000000000000000000000000..84b3857a43dca2b6fa68ae6fa6b31a08c09d157f GIT binary patch literal 1533 zcma)6&5qMB5bgmkd5Sq98%mTW=~k$~1+;?0vWFF1sw(ofPB&8G6vye7UGXYB56`g= zz%wxZN$OOs;1*}T`M&vP#=gAy^z6;=Ur(dapXZ}d+Z190f>pfPvK5DlD^|{fM#*-i zU|%wIrOKN-w&wD)*tQBD1Ax4&nMz=n-4=?84Hs(e{}r{YG>Hd1hQ*ky_ zD7N9qyIhW8RSP^GGrCe#<6f4XmYXW%I@eyn6@1&L>j48rZn=B@0!2J~)!s9b=D`&8FE>0lzDoY1tS395O?P=yoQ`h$S(*!v=E9M zWQt|cp&Fw-Fg5e4nH@}Zo8(-~oGIegMh_hq6mTgGn_J>G?4PK<)hX>7Ln)?cBHC|n g6iz9;a@(s9x|$OfCI<_qV9D{h5e|v3VGxY|0-Zu+_r zB5BHY5EQvcB6oInW_O*>w_n~>AFeM4gTLL7sE!??Oeeo zPt`Y--#(-ZS${3pt%5&8fMs5#Dul;G$<4f~>c#kC_;NVtd#h~JLz*vRSmnv*I$eFL z@~VC{>SviPtGd`Gi#IW}$zvv;E^L1NAPOYwq>HR=?!;{W^k#McwJc?Q(>o=& zLT!k_68RLe+$q;EHxhhHvl7?=J(5D@Nd|X!jY?NC$;#Pm1oNuI*Ih(Y)kmP17Gv() z0rN>5wNb; zI2|Qf;Po8m+@^^vbm*lCF%4rjXR!JG3`f8;D;@@84#(z2;EM%{El}hEMIK)gW1lX4 z{%^Limn24lCQr!NfpU?&p{)rMV^dokJo}|a!RGBkonn){(oa2Br@@mU#jH#w=_v_% zW%Z&`dXArYFlWS%j*XLT(4yHylpKz^#qE_g(ShdVj540sjAy~qzHR4T((^6%v9Z`7 zo%gvr37jZX4`%APM;`Z`%`=`6B(@Y)6WMAeT{ZL(+oosMjlDd%vq!)v=` zH80LJ}^=AV2ikmlWp`C(gx_Hts#-D8n(^7UV_7UPtL4 zH$AugaX2TXb#r;^&TT0{t!oocf{mTl(CkfZ$q2OO{=yIws;WpgwkgOUixchKrR}2q z+HTVbu5mD}x9I*6yoQDfcFDV6hQR*^z|7&gdIFZ-H_TUcZ`yj3VYWGm#mx*@{#c#u zww=c7+V%)M3wYPG&Rn5Aut@aMl^IcQQ=l8AzVCv32lPolXxAw+;@wJM;~<{U-v|yp ZzAlnA)ve%K;{OO`H=y`a`!XC3{sFNs6LkOp literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_hdr_blur.bin b/examples/runtime/shaders/metal/fs_hdr_blur.bin new file mode 100644 index 0000000000000000000000000000000000000000..14475c3ade09e095861aa6fb71677a30bd4486a6 GIT binary patch literal 2044 zcmb`IyKdVs6oxefD4?e}Qz12mpbKTmaMGnf&<;U|pi^K7j7>QLs0%16bsOYKJ9cfK zpi3!Ij;TaNIcO6P&*eKmsl%(Ak7qxA{`qBDzu#C^*A~?tDqNDb!CL|);h3)Nma}fl z;XpCJ=Je(s?+E);H64dX8z84O<{>;}oE)}w&369!XhoVen6!qI)@ag-*7nmh%;%0D zY3?!25$tJp#qj<^O>6egs4rEK*Q^vxh_tzIFG=;H%OUa5`86&oa3*BPN=~x^Zf{$T z_arN-&1M1Hx)RHm8Hb{8LB@0<=B~?g!W`e-Y=mwL01!g*j*)P8A+>!EZLh6tM)(iA zGGGBME*naiOxKo8HgX*{rK@W{iu5D+p*u-Z_mV5|?r6s{d0cAE%jN;IOdi$o8!nZz zbE@a5YEGYSOtJt+T@qJrW`(C+7T0zA(yFLP>pYiu2Tl**`d%2KFo;9xIAW3)WeA97 zV+y>(w^vvL;Q2FP1R9_pB&#SlN6|`_FXZx42rV?U5c(91P#noI=!Pzdlahb$>`k`h zn~)Po?48}2IcLX5$G7)CJ|$mnu6n)c=U%VOm+=B(FY@!$oBI&?g%@7-^CBzf1*}4^ zxGTc@XYa|+e#U88z`s5~5GGz>!HZk?t9g=SPv&L+WA~xoWuZ?!dtoqyMd;pU-r{=_ zCfVLof8%A4WYN0V5K1=*g4{12*l2dCd*I7O68n*tid+F^j{LaMxavWHx$~AWkR8a} zs0iI9JUrxuxA5I%Jev(*p2YaJnNjuk6~vhm&pehv;Ah07vl%uw0088sC^O%Bx)OBV zK+fqBxN*OViUR}4y(kU+Or*=B)U9n*!Q;7qmC;6KhOO+$EH~=Bd?W4id##b8SQ7{n z&N#n68?wct%k+{t%}Rp*{q0cw2M_$e}WI*fli4f z-r*bgtJER{8-$I}D+UPXky?&pn3RXl)e5sFxUvJZQv*GcphvAivnFV#JLpjpv_yYa zL3B3JOYoW)$7rH&K*#O7;E!wYCldaoHGHcHf7~7ZlI`q!KUW*=a|?#e=444G0x)?N-rTP&QQhwP{zvIB~Uv5vD) z*F>g7k+oOF@fHgw$Razci|l|fVyq(zb!oJeG+OPYak9n23EF5K)kbze95L3Kg@*WQ zOJN#J{s@OtZ6d;O*px`GWz)!8fnF4UGS;ngJN!lb>$5;@R(1-~Wg^1TL#}pl(UN=pXt*w+@ zSyS;S(LR+w1PGC+kVJWw87AgAM8L&1$~Q@XfV!DR2ZZ2RTQv_RuvGjqIS0 zyoNM+1>!yC6+;Z~N7S%sb$dfc{PH{8ektqgx}0I@&j~^mqarQ7vH8smw^RpsqnVH2 OWnu{&zYKiz`@R1nT3O`) literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_hdr_lum.bin b/examples/runtime/shaders/metal/fs_hdr_lum.bin new file mode 100644 index 0000000000000000000000000000000000000000..76ff3900cd39a333c8e016dcb9f6381478049ce4 GIT binary patch literal 3492 zcmb`KO>dh(5Qcr|$x{D9HKz(1moRHEwvy&jDQXWN!(QZ8U4SV z{lE^GI>^+Qc(Xghv$ONQUas%Hyvg2OT@D6+-VO$3u})Wz21!_Kf<*{P$b3*j+4>1IQj~ z!B)9oT`#BwgWVP59YFSw47O?p>!Lxe8tg8c=>cR9-C!jg>EJ>ahC!MEFqRpof$+<* zDSdQo*cL-J@z`txw&kIVE@R@W?J@LRlMJ^qYBKI;_yFN{!&Ev-xSxEYDVf=1u4~yQ zeAGi^QyR+WlT_#@p$~*}48pNGLP(l3=wFk`F`P+PoSrqA9)p;6g%C9nr}G~=1?^)* zG~4l*de#NmQ4H1*I7BUnjZ7T1C^P01Y`;WS+TQA>wC`FY( RBIhB!JEVFgz1j?igTKvN1%m(p literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_hdr_lumavg.bin b/examples/runtime/shaders/metal/fs_hdr_lumavg.bin new file mode 100644 index 0000000000000000000000000000000000000000..f4d3784e6daf21a3f3d91665049170e82dac5536 GIT binary patch literal 4916 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_instancing.bin b/examples/runtime/shaders/metal/fs_instancing.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb726f353c002947a3d859eeab87cf57a9dd1b82 GIT binary patch literal 404 zcmZ{g&1yn15QS6dDo-)1q9Ed;yNj!W=t5kGE4hT}HMs_oiR4a1kS@FGYxMp43XK|Q zd$GIxobQ}7Gh5FeKR><}LcBi+kvdB)5PIDmu+iW(qpM`cF*OV)hrDFB-s4Wk1sxK@ zSpparke}hGn&3j5RPyaUu}a)STBl|a+m{RXFSa3TLi9N*`H!gkv+wpv-L>k%}8^0n_+LZ9Huq|Ce~V{{x$hIKuZm$Cl@lm=IIsPgaaH2ysy VOmDAt{Ie>6s5wO{`n&`w#W$VYkJkVI literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_mesh.bin b/examples/runtime/shaders/metal/fs_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..f99861205a3e07dabc7ef783745a7fb228d11955 GIT binary patch literal 1720 zcma)6$%@-R5cMJCps%P?Xn8!1EXhkSlS{~u9EKc*oCYHlkL(Dv7`f#w%xBCoACPa% zB~`u1En6nRAX@FJSMR;5(*5J-H?O}w{pt07zwPzvOWJ zO5y2gBjQyOrNw+cfJIs0>p7xk@eX88jXB@z^4dARo6w?ztxz-{1rmPQdqw zq(STg0Y8`$OwPsyGTZ_~Edb2t9`qX!moA&vq3aI1MAE=m++0CD{1JI2^qXPF)L(^%Kjbi5x>F{ZXQHf5upFs%)VK zc)a1-%BGH9$qxUWE!*B*8%JBYa#33?IJduKe19OQb-AOKpSETq7ji70Q!-fhO>3N> zux1w2=a-O3ubI+zXXF^-R`}E_bQ%L?O$m#Gg#(YvsdH6FU;rbOLd!_QOp$#>LuTq& r+yGn`-x!X;jfik0f0TZCR6Ee+2<;-$p=MQysH;LL#Si0)kZ%a>wMGxXZdy*wgx5*kvCX$_iAku@+<-0Z2u(V=t zGyL=a^Uc(&+2eWrRS9u=5F+)KIw17A-(jo4YerYeo?~hm_6~W$Znecv9p|)53yV|i^&0A(+x`5Rqz&Q2}XBVm1n0c zY&Jb(r1t7dpbhI+YYF7rSBr{5br@(MO{kOY#SO?AWCUa54P`)2|LDR&I5v$dPG-2B8>%Tu1_##=W&375Vg;v7 z3jyi@f+S8RZ~;Ne&XXyeK`VO*#u`>_gF3b!8?TYK1N5QwK=?92pD=7XTilbl2RzCB5Z8eN;av29V2S4*kVmqR6g*k zQSfF1WK0kh!6s33mkJ?Q!PtI34SH-;k6II!T|>^2nI!q0U_$Ijg2%B3so)qMGj^hvU@#40o|`PA(h1x+M%Nwy zpkdWW8m%T~22*JC42+oo0bSZ4Jg7-oF)9sTT~^6qZI}HcdpKYZv7g`Ab#2eCYh7C} z?O-_F^o&z6#%#MBRaP4!lTg3(-*DR|ok9D4OYdm>kuwjR_B>pZO$vW-Ca&v#6N?67 z(Fw8eXR+|#VxxiB$ltxZqM*||HSras4EMHwjr<*|=<&FL9|VEcG|>$P_|iJ+C`SGk d3HN+kt=7)iAKv{}jp;{HyeZxl;y+>A)+ZR`KV$#^ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_particle.bin b/examples/runtime/shaders/metal/fs_particle.bin new file mode 100644 index 0000000000000000000000000000000000000000..39d113334d6a92f2b7a2f0d982c25e987b1081ab GIT binary patch literal 694 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 AH~;_u literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_black.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_black.bin new file mode 100644 index 0000000000000000000000000000000000000000..5281abc6100c4a2a7cf67ae3f43c3e454983dd06 GIT binary patch literal 396 zcmZ`#!K%VA5Uk)SU$G}?L8J$7<(&l4gLn{6Qp&!*qz00Wq#F>#e>b){JVkR@vdqrx z%&rfcX*Rt3B+EjtsRKeQ`wO-btYkEm=-G#s;cAd~Yz}AqlYUE=z;F}y&+tC*hyy6& zkeASzX6>vRl&S2n#$oUOQNuQTRT^Hge;5B-3Fig8DqT_GzKOy|2+iCC7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm.bin new file mode 100644 index 0000000000000000000000000000000000000000..5b9813e8595893cae2e17f3c605d3ec38dfcaa17 GIT binary patch literal 4597 zcmb7I$!^?65Y-`vK)3us=OQ%a5zS>**b-paFl+=u0th)70zr*>BnI5VMKdEqznkw! zRrNwPNg<965X0{3T3@|t>hsN)pMEa?`f_se&o3t@ZJp!~ERQo$m+@AxOf+%&?zC>I zcH6K+8aLNXdh;0Hi|T7$whjA!%GfR~;wEHIQC?ITimRnLEY%=e?6*Zx-J5k3eM-ds z-RaA;>fhT&>wb*W-JCt7(dR0D_*kSx_3EiV^JE7ObS}+V8NLx>C7mV@kIf%Nois_2k9R&~cZtYBU@su9o^d+&DcSAX zTD-D*Q;Kby#?`CaMe`}C#1<`o&GRV(ADTwwZHy8(Wzj&|Q3{H(gJfsmm|byI7KMWA zILR5GfJBrvX_T;U-|8lQ5K)rf-p<&z$l-OUQI+hB(U}&`+_k%%sJQ3c-a znzjaM6(n1N>N+kxIHC6G$c)u-R;HpNg>_a&17WpI!p`Y;FkuCtA|!7LQ;>i~ zV1zIn5t4eZ?2>UAuxo+cJsjCv8CEjb**mEDt|-!gHCg!-R}o=R{|1$`$$8(-m29(s zd#*QQ@NgWXN2>`@ak68aYhCVvot^3Jz&$z+wa38x9M3_fr8Dzs2i|K3d~^UF$^mmO z#9U|{mf<-VMiVbgq_t2UC`mkp;c|L_QWC@mw!ZdhfeY%y0`1_YHWoVUT&_5t8o#qYGEGDktX-_-q2uZmv-!nKOXd^g`Mg-9x1P2nMwg-$RuMo;W`m0BxATU9apKL@GVL z2Oe}a^i>TficONXegmrku7QQ5JI2Vs>Kcp^3J{7YJcTY4+NQt>jEh6bIpN0P6ZHWE zQHmYVg#WatT2-(2MZCKmOapA48pBBMl zz1qOrg4){)H{LRU-?G!#1$Z<`G|#X#0@1;FoqZe`BD60!h#7>gfsU3xO)@c~ln~QK zK5?HehYy*(;Bw+8&!Y1UC%Z(z;CMH1JC(#(Bxi6)WTdSGV8sMy4O1Z4XY^4^B9Dyx zX`$Ihr=)ZG9I_n*tK zgz`=bBi4ILft^X>y-t1!^4p?TFfyr`x&#n2K_>jwd=UnK+Md_OCNW*7eg*35zpI8* zk7&n&nUN2)8oh_9=Nyv%mUG>8cCjaYJFqvyj8DoPfnBw!l>$8+)s_ZDn^f^^sjyy1 z4fGH!X32qZ#WF^F7Q-Sn7Ue^&vu?up3r#gM?Gx)&-A)8v&+OYA;$JHOFD^`|OKg2k zg*HYrysG`D#yyaLEi{>wJs5+)Jm7h4;2akWSS)9x3{jfoGI}Z&{6A&iv#U$C0XtHo zx_!`?uwhT*QWqWv02P1&!!DGK)xlC;7)XT~uYP~N`kVfp!MD_J=+*#pg)%`(%9-qr9m&Km(0XR$=cmV9vp>~bv8aS?U-qkw<8rRW6NoE~icHboK9*@yA2`#*N zMFx?xR@2l@NI(Rs%mg^^WenQzMqWvKzR!s>tjYxa0TSQ<>G;A#i6p6FFq}D|%DOQl z2dn;*bON(JkV!>;SuIzg7vN;={0n@{h7QQ5^kDL!ToR_pc;vkqRsjtweFWK;Y8l@F zrBeAv%-Z|9!*XkcWNj6NfWy2b*86qry7 zu5b}D+Kfy0N{!Bi=N=?19i(Q;MgJTbu|8KP-LNHo#E*L9$5HuV8V7UTB@Cic_c`VI zS{7c>Q3!-RU(kO6Xs&-ji1`_A>ILP}vJVsa k=L`C9qfw(Xu4d_!Cwl;90D<@EIAUuJol=l}o! literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_csm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..c5a8b4b215c57a06e6f810accc77dba259db6491 GIT binary patch literal 11097 zcmb_iQE%Hg67Iu2OOQe(-yDhNTMR9wJ;tnY8X;BzTqNDnPbAU9vfn|DF;vcCP= z{$ONCkXo$T<)Rk9|GsO>+iFp- zzkE3rSIrtOyB5uoy%scP4`VL(H#gNbnN7ZYfqa|_Apn8xep_YNKN3zqz#8lTz|G-P zxtYNTbDxHsie0(dEUPUU+^sf?PG@s_to_uppF&7S?PF(aA3KkTKlAKoPua)L);@L~ zVPAUotv$c<%CntY^i(r8b0%)}w1T2=PxT|;dWxcH1hXoZHHcD7=DAu2wy9%&W zEnKx_qFrt7%I$(^!u~DZi$nuw>XFX${z1Ic;HZQ4!-UI)?GeEkdn#%#8?cv6WA<`% zVeI8mdvd^@H1;l=X360dp1A_d(aj{`1pKIZI7?>J`TSJi?_@&L#GW>gbF@<52p(8W z@5Sra_I5FSm`sQPg?3Q7w0s z3BdHkQ8O=h$L~%zN=EF)lyp49)lnng@Z-hZ2+$bUA`Fjf5~FMd{4T zQJMz6;c_@jG;l7_ky2%gpanyDHve=GoKlIqym(daI}dV0g~oM; zld?6CQmKbnPQz-4OSeSbU`)lkaJ-@q!r{V7r?XQ5KOBx5>sNjnmOfl+RClUB9Nb$j z=#7hP#unygkZ}q3 zAK-pG0J!-W9o!K&XTW+V(22!$wQ0Y8+ArIBv#hJ_A~P%#xdApb0{2t9MNOv%n62I$ zd5w?Wv~A!S(Sq4QvgTw|H#Wg%_jtE z1h(yM+Rf#4(~893l}`1Zi`KroV?8xSvx$XoCMT0qt<);Xr}JW_3RRuWF0gX*EWbFP z!&OdcnaTOA$lz~X)8Y(5iY)#k+~{HKeloQ2n%EfvO+b8@NGL^E2>qv*Q=M9Wcj(m# z;Wb!uZ`IP7TeTj2XNJCg0?**`lHGkjS%; z$l=l_@@`N}r+g;I zhl!Mi<-0sD4bQv8#F>6x%z3W_R&8}Dm_47C9+oi;=YCo~e(2M-b*YGd+tR(dKS2UMb?6N+_$ zZK=*hts2K*G(hGXK@jV4>o|;_%*)7KXpm5Ea!B71t0rriva(D|6%< z(Gb)PRPlP($GIsD`MRhN!59KzLj}$2COx8lplCfy;3kLPnmaAzY^cmC;Kbipz$&YDB{sJ134{Au>*N{A} zA>+%(YDj)WL%<0ajE6{n$H;V@f0u^PDF0CeTyhaSLqqbohUCxI5E?P&ND5Z`|IrY6 zL_=g>L-Lo_5cM1lLGpch4RLrk$BOhH{ZI+=iE~Z@VhATk-8f71rxf*LJ`++$Zhw|pU~5u6F~ZH7ao;|7Jw#(Rj3Qg!SbB!5VZM)Qb9^@ZNL*DSg}`uc}Y7Vcw<7DAS3*y zsK^9Fi~&=`Z}ci}nuAC>;NUbQ8L*E-ZHDOT1a5N9>z$v&>j@KEp5wa;UPAtcYX`ys z0n$4~^ze3|4x_X%tFHy!9_V>{VPbU ztWRWLTFdg%R$7l)z0cmTTh(JuXnFdJS9XWe?wQJ;uwWPsFvu`sBfanIy0-cq z2r2M*XW$AC<7|!bbZyMoT)=i$!*YVuOr_wDBPYRke9 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear.bin new file mode 100644 index 0000000000000000000000000000000000000000..c4d87c0398708ce26adef485c6b45de6b9fa3963 GIT binary patch literal 4641 zcmbVQ$!^?65Y-`vKu3Q;=VCPF5zTEj*fLBnI5VMKhA&e@|8Q zLN-YuN+e)3?5?i$)vKmHUw!%M=jyL7Cnv97ot$({THLWB$wgBoJHc|%CfU2wrmeeO z%Z^#nUbflQeR3=6uSM0h?E5KW`>agbkUhjjS?4IOmLgbcK(;*W%Cf#S>nQq=io?6p zAM>hz?^><nU(dkr~WL`Jvh+26tOO@k~+y7-`MWg0&8t2RU6N{ zI8Rzpr%Co(VhNh%J|5I*mK#etOYiR6KguR;)3TWEe9UiBQGmcfKwJakbna8S-*=68 zX7{QRyDm%WXSd7tQ(B81TK-xTa|S-Ptth$#C9bNng|wp-6lD*|&cQLe;;JkP1(!)$ zFg^o`IB&B!W#7IvZE`2#w79-ruw7Ze<5;6A*=t5;IyiIF?f0VQo^yQ-`B*T}bx#DxlhwQLSv*=tp_&N?g7LhL)IDq;{Rerxv?fU zX3_S9rpO}}--@cezwEL$t+G_q@do#%tHztoH8cs1pQ&CPEIyf(>S(v95(}mme2NvJ zmlTf%erxOk1Ka^_GzwKC6B7oSquu}}ll@@qj0|tVE+GlwjKXsW zMWI~=yu!FRR-6;|96pm#Kq1w@0ZsU$Mb)Z$ye(VChrHxURw5o5bJjws3>=M2OseB7 zWVIu{bhj%nT1DdA+hAKRgXLzug{LL4gcokTRRG^*!?N>d=;{e}Bnb}+e}opNP~a~( zf|-I2gYK7KP0}!P6u4aGb9p;RpF~fXcngrl9v$z8bFY%vO=4UtCgRc$ z0a!61Sc4ZbMh&7Rk#i>gU>i(MN$2!AWJU;DqY9~*{qn3)h|H!sA3c=8&l=Muz=1)T zK|_?U)PK7o`bG+95tHuM6fGsqe*8>=Xz&xOIZQu+S3|K5@qzv(v zBrN(=RQF%XeqbLi*cR+ajq0XC1L4PcB4K!ITw%EszpDK8hK!ra|_8ircO zc6h(=E%jTvVZi*LOpp>YDg6z4j1H5>XR^vwd0>154wD8R0Q>Z)-5|O~j;oya^$vl? zwWm;$MbDT0`-^+PV|1lL3vZs0LF8=I)U*>44DUSwj&>P?HoTSB*MaX5v6WSsU^qYm z93VYkm?)7XRSbqRXH;3YYvf?nf09mMrUx>q$S>>FI`je@pS^#9kJ(V}!vm%VlLzIJ zFrCi7fQFSmg6vDROm2Wusr(aW9lQx*yXs>0)H@V7POeh6cxbPTl#-&@OM(4tFj}n#+QZwaZc#e!%ueP&p*b*=CqnY^e zsQfUEgSqY#22rVdn{s_C3$N%X1j3G%^ovNCew7o95>mRue_)U!^4=LjAqe)NBQJ;W zS0^gO{ERpCf)ZK{VIu$4K`(hUYP2FXOXobn_Y~{?TMKyCE@aEY3-FKA)02My`x~ee literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear_csm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..2eeed8cde919cff28d1e33e8ce6fe5c8d38e0f13 GIT binary patch literal 11317 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear_omni.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..4ce8af71a6398acad7622207a1c41c1a1c8b5045 GIT binary patch literal 7861 zcmb7JOK;mo5cZ)b|A=CH2}nm)#U=GZ9zdEPZBV!^YV=S920_a!hX5t26luv0a_Il) zxwrnu&dffzyQCBw0TgQ=^Ze%9+12~YpT2qj_kaJKoc#Ok$w{-#*SBn)t;BYdEd*PM zIxAkBZtJR9)NEg5^+jD=e#&k{^|Jzc#ft_)}Ia6Lwpq@2l+gZCRAn!Cil> z^CfuI`kAmM-DFj^+S=CZG28YgT}aU;98J2)YEk7`@pEPjM}cPerhjW$Br~0>U zV4IX?-mI>3v4#aZ0e)G^Y4%;dTsB*AVD@q&7EO^=2dB&WU0#U=ru4&l-KXG9U5j;- z;fl*mSwq;pRkf(A>=%N{kChNMG@8_!{8JP~3Hh`8dW$oPGSbt+QK^=Ig7g0b7)7`07hkAbG}UPXl|do8?ke!6>}C z0{aJyF~EG?RD$2Uq;h!;S>Hk(mAi{q)256x@(7f_KMwnh zfe&Md**V3iXeo~R8K{?PzA#a2g-VFC6P*v}14OIE@;@wJZQWcBDJ^rqN)LGWy{0&|2da$|JCEv0aDz zxm6e~_Bruc2m3&5y**5F82j8(uKn$$T2T3T>~lj*F7~-gz3}xo_6_|Z`n7qz%@&yV zNbGZ>Vk6AOKDJt#(2rrCggg=Z7K>@^L}51e`S@|z?=lugT4^!cqYQ|~0shqTR2wuK zItK)|*Br*au|^$+^dEf?o)eQgqC~B0KE%5VG@}^sb`T&8N2Sv)Nm#o>vMX=5q22C^ z2b4<&u=GZ3>Q5I4Eo{uqX~z<<&B7) z`?!06p$;1MaCssp;D0cI?56n2KTW_4{7gF+6PfFnBZr>{@})9=5N$J$kB2hVdrlm0hI$}+&1H?|vqlInFb(HB8;ANd6gNjsPx1mvdr)46swvpANiDEqc9X-~6D*wP0Y%=8wh*>b{~up|5^Z8ac*3lh42s*P@;{}6~4`WRpJi#z+KcE z*BvMW$3{TtTEQ6(7_d0T$TdV*lBwuZaokhVzGJUnu{r3G64e_}drs>BB=(7%;8ml2 zR>dlmh1J4R-XaOw=6x)ovrvI2iR|9Q6(3Po0!If$f`piZ5_E&bXfRoPCbPULcj{3R zW(LwW6NZ2T`xw+FBSaTvq%~Z{yv_F*Xk5cQMou>=G{1&yp@RkksX0Rp&kw9Y>#Z0UZ!L*yY2j9*N`wVQYIlp<;I!Be4&V1P_pwFN~K+lGZD?cbaHV6FN+^cI04H zf09n%IOj5`$S>2$G#+t0H(UD>dce>EVhRrikCLJfL9*VkbV7%f-h%8)xy-JCQYrl% zX0?7m!gAHgY^m2?u%q;Jlb88hsgtGhCoCvN0}L7%86llts(e}91%wnhp%h%9)iKfx zp6FTLiX~iJB`iavWq@g;gc+pO=k?5kjPPeVQf0QWQ+mwC-s1TMd`Hd^z2B! eX^+*J+Gh}6Pn;gO67a*>T9!Win)T)M^yGii+g4rx literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_omni.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_esm_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..ca3449ca4d231f4e51f68835b610a9f1e5b063fd GIT binary patch literal 7815 zcmb7J+iu%N5cNZ!{1L_WC7=>nA(zw*xd3T`v_X-!sL_WaFbG;+*#sz2rN~Hjkca+9 zf1&@_nb`|>my{yI04?riW_ISx+1cg$%b&k{|IdH_o}KN#KRau-`TCZvvz6FxvV~wP zQD?=A^KD%H8|XeOne~b#T_7 z>wF2TYS)>tCf#IJw%Xd(>o(i=CS6F;#vM(%%4$*NS@BC|3`c>c`KG^l>ogbn?OpwQ z*Rf4XJ#SXmxmd%1oq%;&%BlBVzFan2aiI5dBNk1ORR_Dv`dwa$1%~v)dflhsOl>ikO-MG5h=R$%r1STy2L-yZ_}2ryVecvs*G z7q|)t3d|p~e9eL$WT&gTNOSh-)3(lTMVha#u7+$;uHn^}s6g_B(VPb6TsO<5sDf~C zbp`eh8DoI?x~T-ec}eN=8lt|1JSuk|vrPyyR6k7_vTe576rv)5+tnuZ2CHrwJUIUX zDx3wV6_PcjWnGTL(&wIpmukK;QEY_@h%*xxAJ79ttHJUgrmwbcE}N8=Icmgit#&$K zPi4y>9K}kEOn)^c3LObiNJ)R81tkwBbF%>&gJ)UW&OVy4CdeI9SjmpFd z+c)t`WQRy4R<;ow5ktBljw1A4Ckglg6mx@O4?vMotDVL{a0knv?l72LI7dXzXswOt z2rRQ84X-w)eWQqnP=o9hun(EuClQQU`iDJIsKjTFtaawdd$y^@X^pbAiQq}u^~G*$`2{QcDuqD=5S(~Er& zZj{^DKY_gsX!`K47!u>r(rZMF)yaVPKnBEC2KaC@EZX|Hmqo~h^@DVNe*M5Tgvr%d#M&wo{oKPh{?r1cc~X%k7M7^AEIBI*IR6X zc_(6@6BQd_F7~n1(u95t`y}L%*tb|rYbOe`vCqe+VZX~*9BHM+Y>zS^8VC4OYo*$t z*~r--xIN}D_Kh`aGo*j?AUw15Mr`W4k4;hMn<5ug%846$n!&*K_@*v5Mms1A3F{4< z>2#w!vDuq$OiZaVNG&L)+%+#K-YLXn!njSc-pAl-$i+l8NaET0KG1bUY}G_oU9GuX zE7kRsERQ2u9y=sqkMtB6OnWB?axNNV=K5-JhahBOwU3bQRf(e(1sw5NAoiOepb}*e z^hE|rbMozgj#CT{ZYX{L=Qlh-!hd?D1Gs%hFp@U}6jlHJV5mg$fmsLm2TqG9F$u<_ z`6NsxiMR-7cxoB*@oYMWw=o^2!gwA|IQ*998Fm3CxsiN;whnOi132cndm3L^qOcra+5{o^=qAl`jH$_n1G3wmiq{KpA*%IUdT$n3joD*?LyDCW^!KJFZy&Rsvj4Dyq_Bu*_SOTd1P&j?K8H@8*zb2s{x@ zlX1-F`k3pAcTc!6mRZ}st2&^x&`Oh`u@S0dxp>`&t`7om{_`LpuRx-mVB4NOJ89fK zP^nf0OOP6#F|FwoRS%8`=Y_;T4ngB8hnpkCEJixrBvE3KKU6zwi?MjB*=4A0Vph~$ zN8p{Vdj*X6*8;$b3$xT2=6pbbHcD4`+xkt3JKzI%&;e{*;QdYr^raO%#RdZw#~3+= zNKCR9Jr(agChR-*`W2gl9w|}X>R3CkigiM{Y+e9k?L{eOp-ik6mhxOk&^9+-iM^F3 zkzH-L;v=dvU@sw0kPx$HCLvmk29w24Wt2DNPF*uX&rsTC+z@bJAA{N?M08O^TEmsk z+jx(G#x=}iNVXt#U`M^OpO0aCLf1&>OcZ(O}* zxFb%nW2@xonBYYlX(w7XUT7T#Hmed&O^Jz3OdS@(?R7GyKZHW}r`*Cwayha;Ws)Vb z3XLHW5;>|+j7`axjL|`Ur*7~M9i5W^T_n=l^orG<+Go%X0O}OQm4HuSYnl4+ed_D^ G`Pu)|mq)k& literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard.bin new file mode 100644 index 0000000000000000000000000000000000000000..d8fe2fc1ae97b309388c0083a958b89a5a0ed1f4 GIT binary patch literal 4425 zcmbVQS#R4$5cWeK3cd9oY+npAmKk2Un#4emAV^RcEnxI1Fod;C*(`XdJWR=f|9fX< zFD^y3X%m1DcV}n5xxQKY)6M4}e%$@}`RweMpU%$OIxQYp!Skfv@lC?=q~Y0{N!?WK zreXVxH`h&e^T_X$>PxX}8}@C&*fuM96S1dtQC2yM%cU5WYLG3vO<7j=dL2cd(xiJc zc^OyzTiYnzk38GP>>*o!s`$f)GApZ-r~W9?EdVf(V%DyAyyAHsXxnBjwAMC4wMO2q zbKWFX%Cld&C8(E;Kd4hL*OqjaK0G$Rmv!2tWpTXoKEF$o0tC7Q{OTE}b05>~wyl#B zyEnUJ(`LLnxm`9N(<<4ZofyWt*~q*P%w4vU5gfS~zppZnsJ0`0nj3#AC`BYm$A_ zR!MmOmg?*Zf-Q>bn(ur#A@}LXl+`@nWl2Q}>wLE!2+M5}b|>G!gyn$rkkFJmAt76X z5vt)eRZ{Pjy>0H!&SC(1Gntb=ft2Nc4`VA^+({cKCu0)%K zj_>(X1`pTOdX$<76{lO~I7*kdXXoc?JM<2&OYJc*ALBWQv;Y&219+a(ZmZ&vO19nq$Hj~cO80wQWC@mw!XqN!v%R_hIVjM8H-%@O02lP7m)(o zj?{s9@9-Rey;B=~t#j`H8<$GwjMPYrbMN_huMcm57N|URN|!yOOGNy?t3;t)p+?Lu zFAh4xOQs8>mlu^~iGKz5O^gE>bpsihJeNc8l5(11eF)+CRO_U=n6qFsyy%usD z3ZCmwUfuh$VNSnuJ<+!m!(mrXnK&G}DtAlQor-M4&dgiQ{dgWHm;Mr~b{5W-ixs@h zsEPb&<z<>}$#?Ok!^WW)EWS`JGYw!rU|N#H}!E*&vN z)91t>z-cLT433+@rmHfKwK*ry-!K zM3A!B&nJz7XEr4Sh)_5`YD}d7iIpOQhGhSlFxaFPAgh_kDx?9`rlytvJyv^C0YzLd z5@i^9a{P|5Y^(b%X*IOtrl1 zWpjc^*n!}`cI-m_XKZ_RF^u@A4+ro;!I-@S#VnePe1v!%j%AvG{oU@=ek%-Lix z%}ql(Ifq3eB8rE!$_#4t87V6qnl7nG3_*p+sx7IbMJM zRbvPAWDAYPwF6_|m=F0>2JB+7zz7*4Fu`2(l$`fp(%vEAt-!F*C?`5`yIuA);8fy~ zwkZMR7F?^xDM3R&~XwEblQl5r1Or-S?Iav0epp#_33q?>J zSXj&#kssn5HTc3lSa`wkVDP{TQKrb#gkH0BXx)5~eJPjx4k(ox;fPs#UrgApDw&4f z`T`xLNB5sj9v>d1&p&E^ss+htP=mURw34Gwv!SkI0jd<3P_kUr-2yRdNcU2W%Kl2- zDqN&yibek%8L>VAM`73!--Dw*!f_DoLA0!+U;+kS$=jQRz7UC*bQA$$$20nmm2mu1 z3_?;|di@W50wQja5hOwsj=Um9`mz^>7@y&$T9A%=m_BZ=xVz2-J literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_csm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..5089c8f1d23354026efd128b65011ecdabf6da8b GIT binary patch literal 10377 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_linear_csm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_linear_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..2fa958d85bd3876e3ed3283a78f7ca3cc24efb3d GIT binary patch literal 10513 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_linear_omni.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..6e7bffc7959a3fe78d50ae6f68749d0342b702ee GIT binary patch literal 7678 zcmb7J+iu%N5cNZ!{0{}TF9Dgzinyd?3Aq4mg0w-Awy4pEA}|O>UO5CPQRT&w9ps_^ z(O>Ad^%pubdnYMHX#vIB%gpS|nKQGiH&;J>^XBh=|2aGR@7uGpw$3-VY?G};z0H<_ ztwoa+&(70A*0@{^B`~xt>%7U! zjW^hc{jw~pn`m&9501uzqlp@$f|?WW%D|(#1cdLcC#5$@O{&W zO`GA0t8LkU+dHco(Nx(l1eG5vAzWy*sWbVfD2fu|>72ls{h?^Zp}F4$_z_^Rg7B`v z6+Unk5EPi-W%-5$1ISL-O_Ap8{rkGfZbh1JuCGUIS#IEKSE2&RBSw2#*z=)Xtwa?} z!s~0Wf5aFA%r|W%_|0=lmzNOr8uF;zz00-}*rDcW%ZSz4dRvH!1lH?q+F7ioX>oY| z2~>CoP$wj7O2Uy-J$z%BsX*?z~|keT}TekS1bs+a}dWD#-K1H!eh)s z445X90;1?qxXMt@%y2rz$TD{Tc1w&P2+VeH6ni=#cDy4~8T(L{1=ohnq*Udr8Hl9m zATR>cDSIgk5)UTh$%w&6D32{=X;GI_6!}8S128{&q!-M__r?t!Gv;zHB()6SeAtlZ z+K>nhfe&Md*?Eax(NaA1b5JkUd}gAkg$jtb6AvHI2Z&aSmBjIEmD={+t)s|@DNr)zt^cPydLhUiD$C$xdU3V*{VsC4QXY6*V+Vj95dO@R6 znK)tlB7TYN5UIq2V0Y89ZZcy9-P-N6moV=%N$6_@*QV-;8ytN~Lrzy*60520O(i8W>;MKe~;j1aF+(o+Le0g8@Hd!Ub|Dq&c+zB)pb2_4T2 zVjqMX5R znK1X^hxDq89Iovc#}(ztDHT~hQE=pL!2$D*XM;T+ajy~P8N??}J`7}pFJv$$oUHKk zf*U3?QaBNrml=!U%;@9>H_T;aA;~zT&Le|wcMYb9A^rnvFi*699HS4G2Ww3yQBJ_V z!*)IH=T2f+>~rF?9`=FQ278#~F!s5lT%UK4YC+}c*yo0reC%_ddg1GF>>K(+^lS45 zn=LT!MC@~-Vk6AQKDJt#(2rrCgnT9T9TwBtiNaj$^XX~W?=u!hTCtcNPzFTf0sqoD zsWxan_6h`d*Br*au|^d``iDLU&xr{gQKHth7~|aqno)GP9RvtNsr1?<32T2ycI9>( z+U>7+K)G&Jj!6?nO{_XnWTDY~V zH?8qrT~aKNOkWfe_iN{1$9fUSC%^nb*sd5~;bct6P`h2eAIQf-Erp1X)){mVi|Ki! zTw+|b(R=s;v=G+xO61R;J%hWXae5yTlS&6_7yuOPyMs#MWa=iS_uHZ{s7(79Z@uIh zNpv08_!rw4$<}(-Xj0UnzvGGZ-%5b*NkvC`4f5Wytf6_qr!8ac(1RV2#ACcVN0-So z<_mqh^u;Rz(&DjstN*H+fN-uyikSo(S&?iGgH+!F3J~Hp>Fu?3g)+e83@wA%7^X%=SR>Oqm4l zgJ#x7-47BzrTQUGb8!?+>fz&;kW)RR+0tl`S%Hr@%8 z1Z^9~`d~t6epaZV6@^eymxCIf99Vz<(+ot&rYNK3!S;1%wo6{1seXN;W3Z`?ll02-*hH9U?UkTjBk*G-!su;uJe- zB}d03f{TQ-1AS?HZ5@Ulrl5vuOH6EHx~do+jgu+;k5K6UDN7hhF30XKh-8WE4r7Rf zM2_nGV$;JV2|B1dsRz2fzH;M1& literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_omni.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_hard_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..af048da8a6fac754c063285de1ddace5fb2c4dab GIT binary patch literal 7644 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_linear_omni.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..3a5f285cf37e5c018130828c81bb8c4f49d30bf8 GIT binary patch literal 19991 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 DG2JN) literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_omni.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_pcf_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..e7c3ad1fa1a4360dc6863d2bf9000da82115a4ef GIT binary patch literal 19940 zcmcIs+pgQz5%oi#{1xnrA;rfEH^nOw8%Ps44GOnGjXo5CA<)M>wg6pDCCWNJfgk!G z{e^x`|EDvv?-x;$xUy6<;~+dg?%wf&oZ_4ZTyq1*kkxj*#D?@yEDZnbUudGdL&+3wb8 zE{1X#y5H`X{c^jp2K(;ecDvnuV8PKWI64oG=4uqW z<7)AG*M9tQyV~wfp7oE-@(yOD=b0ym#eKVL*LyR2IcDa5Sln{gYB>&zb=!BlWxM)I zs}e_tYWPEVcyA4_mLEU$zxoS%SkRFl*6)|y1`LiJ%*zN)M}J!0-5vJbiKB1tyW7L6 z-JLwV?SESCx?3#iFPlv$zz==jZ4ND3yuIJ{u(2@ztTEdIrd$@YyV0( z`gzxNCT# z#kyZDmdS6w?fdp)w^(l8y}L3GDIXJISc);xKnAX-$v1ptn$G4TDsLk49O^hKHe*El7t#Ss#YxJ1 zh9s8XocIhH%FDz**=bmY1Bz}fLlD9cQw1%I+MNY4bxmA0YVRhDnL4Bq#xh($53<<_ zC}#@F4vHA{WDF}8Y7UM)Kts6Gh_*4!sHLMv6V_~Q0SmsGz;=_OW`r(uTG*39X$|39 zpPl1s$r%=QDun_$AlHVu?I3`3g>?t*qVwqUOH9DTJIh0W=Wgbz7^2r`KNW#q&cq7? z{Q?3F9JWzk3d$s|P#aD}3eL&|u@BBwa1;9xEnLAcgn!W{5e^0esBL)+0GtJz`P^WD z3pdqD^*RT;DXRxrVDlgo9S5_vm|(Y9hCNm)9ojm{WuoixL!z=7g97<%sFPtfsOe?Y zew8ze4;eG~5MYGuB*+Pa6*ez2)ycFMYGfuevNX&LhZ~sz895VdGDcU=GKFs)4?0hT z4e~^KHIhCl4>}u%C=u9K4KslK%s8mApHV;au%Dm6etsJJncr%&V5^0YLki$vUo|Eh z`{BaN&TQ=C^_IM@8pJ+28Hs(Pi^=HJ!Yu5UaoG1e zR)%dwV>S>B8jS_~+L)HzxH&aM8rgOG!>V7*skf;w zkR7cBUM*u0#D$Q^ZB8^)U%=S7OLTuPm^~iha#9$R(puMFf)5lRmu7QnC^EntU8ws} zbrp|!X%mndNQ37&dBJAIO@g0TLutfYkccGi*nh+ywia`uwljqOtW=Zd$`!vVww9FG z>#P%TPlhM3J26C;;9+DgVo4CwDj?AhwX5BHnaInhxp8x2+*3#ilYu2m`K2x;C5AZwTg3B{Tj*30-Kr zKcn2p%1>1~r=DSF z-VA}CcOnz~IrS48{5f?LF^wFrlAOhaE=iY%){->=@aNQST=0WSrGlrypW`)+R)+!b zlcfoM2oMYYJafRG<5k^R@N28ff2Eb(u6QX4x zM@x$dWjqrqmkFxD56M8TtS-!iYsdhUW(*UklBbxUH9=im}v6%pJFy`K%@I|2*5{1GSg(4sdg((V! zFA7CS6ksqwg`g;a%NQy|i$dXw0tASrf-4GzYWG8;psg-Ug=>fclx7SSsFEW@p$LgW zVTwX=UKGG2M1|<>%iC{@r_m!(2^4OM{BjH1FwRVYKMP@1Yxo>v7h2~Z)L38gOz<&Y?pz9^Id zQ7BDOD1A{VL!tnK0VV`R0bIr~AzBnlR}>&XG!tA=D5FF{TV0q5*AN9L%@`(7B}a%t z84`uk6ovA-8yswhp+Ru^W%H8cTAGlmIN z$q|}Rg*2fuHK97M31AXnLiE*9< zb+jgsrKt%JAeITWs|j_KCTOe6GNHbPCO~OMF=3=8)FDl%O--oJYXX?~Oo%2z?Mp&E zBnh=I33WgcYEu$wUlQt&B*0*R2ti2zmoY?$mW0}s1PBmK1XmL3C`r&(7be0rBmqh@ zh6q&25t2}cB%wAXp*}AOVB!-Y`YxgN6`>wdgxXhxCZGt7sR)g)2z5viV9+N*6I29n z89{_5S`o<7R0IeRON7Q%geFQ6wAE#a&|E_ipfsb1Fj5hkkRmjuA~fd}0Zc3+00+kW z?}Wyegl0$*8ebBcfFv}gBs9JxG$BcV!2lD2k^nAam=G-qjVlQdAesrTBs5Wypsg;< zglk9wlx7SQsFEWjp$SPsV@g7EUJ}40z=Y_FqsG^SW=InnUlUjw5CxW+ssP`-M~|A2 zEWn^o29^eO0i8zB0nUzn`iPsF(tt5y83AWIk6pmZ#5{pym|d0>ko^^&L4q2MV#P>( zfYk^*dcjgtA>iBDC-Tt7XGSzJSn6v8j3JCqJctAVDRJ|eJeCGzf~BTTz&DQ@5D0U3 z9%aPQ5Icfefo`MN5v>+1b>#wM#IwT{3|N~ub||w;v*Q|?fkhfa4_?#}ssYOuyFXt{_)9vLkDcCOito+ftR?Uo4oElLK`jGvHvwao3NVxw+QEbm zwOg;N0H{A2`z#p4hUg^~JdJ0lW`jxt5Btbn0~2`eKKbLxurNQd!C5&V{X3ndd^8z% zlhXoWB(ZVDSRoQDwQqzm)D^wNIvDji!w%=IjtVEV(0Y`*pm7TBD7xM5jjb{KeIJ1r zZp?6t46F#N@?xGfeCb5;IskP&BLH^1{l9kog!W3P?D89ZN-kZgqonu~sKmDuy~zPz zkD-bfdLsyIXnHR8I1k%>(fe%}gNg8s5ziC3pMs-!*vF&o!~RB&;K6bjT`%Fi2)8SE zy@uYe!QYcWdsS#vMBK#KU(PC#6}-zs9o87IA%^cnv0tHrl#mV}jTd^cVc$GZoJy|z zuJMf|XI&m)1B-1GEW#0@;eHipjxvA^8#^0rL|a_=-WK{48w17^|A<>+8i>q2nveC{ z9N-&mCDv$bt9};EujY;hp0}qHas*TQHtiDnD0`^-h8Tatg)sxhca}SavTkWIlp5Vh)NHYj z8gFWGbVp5?Z;VwbV51hS8Bp(u` zIp}82H_WQI*rKVl?R#jtL=dm{8t+;{9?R0|eq8?P4;VrEqcL>xt{R$369b!Hg3@^^obP3dV5qb58EOpk-hMv zs*=GrUJ6ewTV<}746+tG|HL_SYBTEBgE?F(`rTLHY^ K>Fd*{PyP?7S0i`; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm.bin new file mode 100644 index 0000000000000000000000000000000000000000..a76c572dc2a2e048f3a2bd509d18731e4bdc4c26 GIT binary patch literal 5037 zcmbVQ+iu%N5cNYJ3cvOTwl4u0%Z#|x&Bz4^5(EhfqXmpU1%^P&l*57-l^07^kYDMy zc4l^Wc9)WxpfDhq+})WoXJ*ch^x@{?Pd{(|`gnHs&o5_ZeVbPgqDsrG-K48blv$S+ zFVEYq=~tcD6=`?f6*phf`>gp?ZTe1pJr`nK)M=N9$7NMFC2rTRCh)3-z4dlg*Ude@ z$E}Zfwtad2?YQaR`_9<@k{0WUcqo=1n)KmaUDVCVQ-4G6VWd>X_J<1%)aeA z>AhPi(~P`dmT8wYd0PCIdK>w*jR$S=>(<*{X?JKU6)mTiaTyLbqBQLE=bB6$Swhx zpK+ZQT?N-^UWwpHNi55*SmxsM=eA29vSnV~-j2kouHbQKQK#&gpff$3x$D>KtO>^9 z?Je*z5<+y@uIrmj-oK(cdjn*vqPk8uV>qGL>Bva5X}Kw~h77jlW;xibmuYi&{uNw! z0q6(`P0b0BVhK*DhL==H&ZBrO0u^xN6??RM5-(I(`Cw%mqUF1~E~Mzn&12dusTR%u zV3HPt!1eP+wV4dY(Rd`_BMjM&F_WO-d@X{&*ot=I*)y{&qo**W_87RI;5lGgftef! z@X7#)5deH>0DLY%E{qM&@dO;Bi*F(;+Ds$RJMk2T8_)+BrH%N3t#2?*@r6DyML)P` zoF$=nuHJ;>C?Ny5oR|YM=kN@Gy*3N3)miie3zx>`l+0+4vuJ;~=E9q!2P#ia>B4ck zK*ayMN(|a7w20YFt0&IzLU3U?c`;em_^-gfTHW5)&WccS3)8sAOvnGFC!7C5(rHZEx1LH3NDS9+TFU6RFn60$L$lxpdVn5j)lr9 zHvTxd8qefZx1UcNbT>dASlMrX(25U`gv0`*&emW86QoXjERR!6N%z$VGW$w%6q?fs zWY3fiJ3J_!LHYRF5NrA3<1s2&KzPG4-NC=aAg3ixfT~MNHei4lJVc|zs@bcy!AeE4 zct44VTfd}F%DX89h#dSW6rLZILPm~(^O*@$wexUcAEpl6Dc2aaBz=%0mcQ85zjy{N zE(0~G<@?OG8BSy>#KCbZZq_8J8|`BrNS;h^7zp>BHv~ap?=fn#6SeUG4|eOpDFx1) zL#YC7K~r?&L3fB>PdbIj{A(vBs!u~SI)j%tF{3i&QzL!llBiskS%Y-0TfsbI#QJ|@ zz++PSN+eN&bb%)w^O3mv$AmtYNcKdH^I{_u^Gk!FNCtKZ8hN1FsA&jRVF|qedcn@R-dInyWIcUSG zfQeCX903UiU3SEW_A2aTAjcXKOsBkRv+f6oW3@kpWBnTgfa227EMvUI0!lQSEpf#D zu0_;%f74N3x8Mx#5V-%11HV{2FlrA?n(Dft&ykvPn64jk`{uQ{0>{dtmMg1MOaNUv zrZMo!p#+cz>_SDcEz1S96_qyMtdgz*V`JjZdeSow6Dbw33WSXCNF@^ih!HR$ey*~- zskdTS985zXL4EiNku;DFfNRb<-|-@}vCKkvU@q-<$!LqmXuL%a7bo^$&bM-GS8&L= zpY1X1(Lm?;L&kRRl_&ca#zk{Pa!11JUAeYR7B@7v+q?);Lt`e{1D1q5{ zGNnJPgu{Q;4Mv9R$o(;ifT(XO2_!-lPN-(bga<|_8sKNRXkKVGXD)R0vlD&crmMy< huJ6)gNVZUzI9OsQP~$Wi{O(aHI^f5MZ|CP{{{qXN8hZc$ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_csm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..8915dd6c7183a9fdd00eaaa91ad54a079ba921e2 GIT binary patch literal 13099 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 CRqrVP literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_linear.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_lightning_vsm_linear.bin new file mode 100644 index 0000000000000000000000000000000000000000..79ddb6551c8b547afbbd5f26e7d212a55acc8ac6 GIT binary patch literal 5081 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_color_texture.bin b/examples/runtime/shaders/metal/fs_shadowmaps_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae7007c7af8efdc75ea4a49b18178583c65f236e GIT binary patch literal 1045 zcmZ`&&ugSG6!uW|;2*KP(~__fX4E;&Y%dF?J(N9^J(VG3G+H4h5@Tm}m;Ub?V^W=B z5hUj2`|-X!@1E{&)YscX6n(jgqM>hO4U)CI?^wa1<%WrU+#5X<1}=h`M;?n>Vt`60W>R>ihF=P$bh+8bZ|k66g9)e?CaN52LGLuHe=4E$r>Nhusg!PKu^a|k zyhAEW&~o{~pO^BUA6X*-tu#PeBWMH9&%I$ar;R)w6DX9lpC1{$jc?#EgT6*XKg3Ac65E)(W|4r=#JuejQPsE@6I_< zdt062G;R0FG~JFnVGTc~BAWTh#EwSzwQ>Szx=!qhv>}UY#TW;vEYPP5snkk!>I{gT zdKBcz<-tqT8igy>6U*A0c{QYY*di!oPYU)+7go5R~Ub8ueoC}ss#@C*QYOy_jlrDAvG@&|8xs`n@AY5lnm8giddWw8~ z%c?|0t82q2wU%0@L$`HjZSCzJ#sRCnE4G?WR<3bpY}@XLQ3BILy= zAhL~JWZQ5CI}SWB93ULVUifbg4)v2ijJ!;3=;*-uJ=`7Wr=<0BfIpo6^Whfgk6#gBe-F&Y^4=$J~+uh|8iid7W|9V?csvWS`s%hC^| zJ^}60C3b@_3<=?9D0Cq3eJ^m41H@M!l_Zs*Z7t%OHJr5FC1#A_+~~NQ&HY0M`{GJw c-`x~!rsLPPPGJ?7Z&8jnYR09zwoL;wH) literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_hblur_vsm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_hblur_vsm.bin new file mode 100644 index 0000000000000000000000000000000000000000..f42eef2fcc86f5ff9a624300df35b4d5f9262d89 GIT binary patch literal 3934 zcmb`KyKdVs6ox%?^3qq}R7kBWkd)*L(sn5jw1bf$=oAKT?~neodkK(j$Qi( zU3x^_PHZVKB5oGRbNKV)F@N&%`p3K9fByX)46fb}23fj|HY5_EpYFucC!sGza4}3} zk}V}U1VYYbaD69Me)2QgWs*D%30ViRkeu9m(myQYI9bt)s?|ZQthJT5w%V<&&c*P# zUCdP`D>Zi_SUY4Bc$bOTe2;@T>5TdnZP#%U!XhB;8it2{bhOGcak=uj*ha)?!Qh25 z@V4aUCY562d)sKS7?EWh!RK+ta?%e(#bgk3o2}P=Vo-Cj0B$2f2!NDX;`7xP#r7M? zycD3v`?=Urh$#D2$cUsO+y#E35~ktKI~rVetHI{*38r|lfO3UOO`Kyd0N#thQ#+P_ za&jAFiKq6e=$7H`UL>B{r|LKPTErSyfK^Oy{Lw?qS7C<>VZeQ>1L#kL9#C%aUqMa(YT~hV;&~lH}c0IYT5Fw{13c zYGu6IW2PLW{0B1Hk0r$SEzDz>jMkd#x@79KtTZ#tJUc6sv9o}xqq`CZ+XM36d?Yfi zA82!kH$btuFk357ySqSPrsmwF4z=Csq^(4;$FQCz1M%8Rw9(uU#XiLJ8j)>vmne3k zSBPRSVm-|W;sHrY%hnY}~c3y)Rb|lu*k|16?(H2u;*p=8!>%ZQ4 zrADzY(N3Zq8x!woOc1Y|C~u6ZHdBs`iRZ=yPo1SSjKbBx3(8vJ)qR+|V~dto;o9h$ zeAr7kKgsuSUcUNN;`p5B`N<3^tLr}K{fs`W!>L-hy^lz9g)eV#rPo2e$34!+aXv7@ gbMqDNBMZMPA#FWNew9jmc(g^uyAEDb&%@#1KRD>J*#H0l literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_packdepth.bin b/examples/runtime/shaders/metal/fs_shadowmaps_packdepth.bin new file mode 100644 index 0000000000000000000000000000000000000000..ccec78ba0020bea93aa126c6fa4c7d718cf6ea6c GIT binary patch literal 623 zcmZ{hzfQw25XK|Kl&81}IkXrzC5ceQgjB&$F;q-d6ije}CC82&r<5Yzf`?_q`2#6c zyV&QGzx#f7H(%bJmS6hYah^^br>?lnLDGU%B~2L=%uq3NE2Hbwz(!EBFk<;iUzom^ zWo_WY1;~V=<_gwHsVZ)`k~8=7u;!sQd!k$NkcPux+FUA!M@v2z6k1m?7T6WoONIvu_@p1HpmU=tga16Ws>T z1cy-+`92$wXbfQxOhZh@;0NtB!Nl{t2BTxdyR)}M=#TDVi1B9gz8xG$Q_mh`dQCz< SI2QLlnweV5-p+2e0P6|3n#|Fd@PbP~yEFKn53n7&iMp6nXugjeA+xS5(taEPJ zF70dc-v9USzmxgv_0P?8Ygu0K$ zcQaZFaL!mwE97Yji$#mHU}-6mWB^$$^zl^DKyRU+QF`V>rP^>LLnVd5>5sB)>la(7xFY}n literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_packdepth_vsm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_packdepth_vsm.bin new file mode 100644 index 0000000000000000000000000000000000000000..7480677534d3fdf631a0720ef5ffec2f3aa94ff9 GIT binary patch literal 807 zcma))Pfvp|7{*ET#3%6ho=lmuGGI&0;>l#u!{TA_v=CCUAPKajlnrP67JgWdmVcwp zE%5@S>GOM@z7LDl!+HKCz76Bz%rMF#VKFe0(IO`yg^Ws)&doxKGL%rIL@s5zdLyq? zJhHr$@L>W(DJRl{O_1{Yq;-u`EB@q{yGE>}09nUB` zNYjzKgiDezKu6*RnM{KO*6Tu&m<9>+{V{}`sn0`VXL<>Zrc|1jGK#1`w&nYlSzr8@ zL6@L8&FB4CKxX-dh+tCh^lP{SgixCW4`ahSxM|%IeRpfY2y8sH;Hr7;*-j61G`OSS zYDA$#Xm2-aD{_!CondB8eqT;HT|8ZWUd^_a^>txcs!VwToMf~tNJJr{lCX(gN}(bN6(e#k*NEI4$|CMmuHk8 znHaLMo0F7-b4E4HBnwkmE=x%g8m2r51`y?3ACHM9^cwa(O82~~IHtn!+#qo6`qBph z#$aEaPuh`SkXf-IBD||VwR?B~eT_&uP9ucO;NYeiBzEv5pZ9dw*^(YuR3jPPBnJeo5 WFPhe}Yg<9361;gX{Qx`Lw!Q&wb?%M; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_texture.bin b/examples/runtime/shaders/metal/fs_shadowmaps_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..436d6d4471f24e0d11db1641ff2d8688d3548228 GIT binary patch literal 598 zcmZ`$OKXEb5SG%DKcdX3D2Sw?H`81SX?qAggr0&dTV0K?4_RkJp!C0YcU@@=$<6h9 z&3v=jz2B>c^(u!vr7v$Hch%iH@eZ{53_>nwveS=M)rJ%E))b*B>l|v4v6g!eJ6it~au=KwcR^n4m=i4-Z|C2PGQ2-4?KO7O$5blacojIX!Z| z_jRp2;dHyjBnkk)5JK-&xxbFN+@RGC19QiXY&kL#9w`NM(zIIn*swFLxF}9=ET;Jw z_Fn^}38NdgMsx}_nD$9}F&ke_XZSRMic_Eim5a HJkNdukOL4( literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_unpackdepth_vsm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_unpackdepth_vsm.bin new file mode 100644 index 0000000000000000000000000000000000000000..94abea676466f6bace7d68e3c0548d7154ae058c GIT binary patch literal 790 zcmZ`%T}#6-6fGzS{Sk7XB!LoYr-E$yB8WZ=AH=6ILfq1=kdKn4t}6a_Z_`ZY)VH+f zo{yZH+sC^@dwe}flB0tpX`9Ndzz8jyS}Y`J>4h4njd$(BL#KqFdiA&#OX==S-FkRW z0ZL_sFW`lH*)6Pf%Y2-E{7rgj{g$;Bsyu_0;A)c}%R2R7)FUSQun12Qa@2AEfDXTg-xUv{{PFS~+mq9HkD zd6~C4&|`jhlcjsG<{|#abaeVz!pE!H2DMvGYfzK literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_vblur.bin b/examples/runtime/shaders/metal/fs_shadowmaps_vblur.bin new file mode 100644 index 0000000000000000000000000000000000000000..b5fe202adc9360aedbf4d57164ec86eb4a2de185 GIT binary patch literal 2840 zcmchZJ8#=C5XU`qsrw~vDx^jcNQ!#FZI=Q;I~W~;PJtmXHsu)5!;q-NNsv#Pv1`9U zm(moK(6$N~sN6|>-tqT8igy>6U*A0c{QYY*di!oPYU)+7go5R~Ub8ueoC}ss#@C*QYOy_jlrDAvG@&|8xs`n@AY5lnm8giddWw8~ z%c?|0t82q2wU%0@L$`HjZSCzJ#sRCnE4G?WR<3bpY}@XLQ3BILy= zAhL~JWZQ5CI}SWB93ULVUifbg4)v2ijJ!;3=;*-uJ=`7Wr=<0BfIpo6^Whfgk6#gBe-F&Y^4=$J~+uh|8iid7W|9V?csvWS`s%hC^| zJ^}60C3b@_3<=?9D0Cq3eJ^m41H@M!l_Zs*Z7t%OHJr5FC1#A_+~~NQ&HY0M`{GJw c-`x~!rsLPPPGJ?7Z&8jnYR09zwoL;wH) literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowmaps_vblur_vsm.bin b/examples/runtime/shaders/metal/fs_shadowmaps_vblur_vsm.bin new file mode 100644 index 0000000000000000000000000000000000000000..f42eef2fcc86f5ff9a624300df35b4d5f9262d89 GIT binary patch literal 3934 zcmb`KyKdVs6ox%?^3qq}R7kBWkd)*L(sn5jw1bf$=oAKT?~neodkK(j$Qi( zU3x^_PHZVKB5oGRbNKV)F@N&%`p3K9fByX)46fb}23fj|HY5_EpYFucC!sGza4}3} zk}V}U1VYYbaD69Me)2QgWs*D%30ViRkeu9m(myQYI9bt)s?|ZQthJT5w%V<&&c*P# zUCdP`D>Zi_SUY4Bc$bOTe2;@T>5TdnZP#%U!XhB;8it2{bhOGcak=uj*ha)?!Qh25 z@V4aUCY562d)sKS7?EWh!RK+ta?%e(#bgk3o2}P=Vo-Cj0B$2f2!NDX;`7xP#r7M? zycD3v`?=Urh$#D2$cUsO+y#E35~ktKI~rVetHI{*38r|lfO3UOO`Kyd0N#thQ#+P_ za&jAFiKq6e=$7H`UL>B{r|LKPTErSyfK^Oy{Lw?qS7C<>VZeQ>1L#kL9#C%aUqMa(YT~hV;&~lH}c0IYT5Fw{13c zYGu6IW2PLW{0B1Hk0r$SEzDz>jMkd#x@79KtTZ#tJUc6sv9o}xqq`CZ+XM36d?Yfi zA82!kH$btuFk357ySqSPrsmwF4z=Csq^(4;$FQCz1M%8Rw9(uU#XiLJ8j)>vmne3k zSBPRSVm-|W;sHrY%hnY}~c3y)Rb|lu*k|16?(H2u;*p=8!>%ZQ4 zrADzY(N3Zq8x!woOc1Y|C~u6ZHdBs`iRZ=yPo1SSjKbBx3(8vJ)qR+|V~dto;o9h$ zeAr7kKgsuSUcUNN;`p5B`N<3^tLr}K{fs`W!>L-hy^lz9g)eV#rPo2e$34!+aXv7@ gbMqDNBMZMPA#FWNew9jmc(g^uyAEDb&%@#1KRD>J*#H0l literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_color_lightning.bin b/examples/runtime/shaders/metal/fs_shadowvolume_color_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..5f7d4490bb77c8055582f54ff6375adc457a4b95 GIT binary patch literal 2666 zcmb7GO>f&q5Y?e4{eYh5RB#)HB}K}X;3Ss^M|h7Uk8lm))?F zFqVb>1+rjQvN%lva!9Di?`ZV$J&ZPN=Wn)>eU%HB!gF|V7h zQX!3-GCd0ZbhZ3`KFyzlw0Rzi^5CT@o9;io{;tIV6Z!B4%JUZ=`IJ2yGthPiNEzCq zE2@5G>L1S-i|StRTFx%+#o;jYd}iAhO+4L{z25D=KVa|p*hY1l;Zdx zzcu}Ju@}SqDji)P@4wVF@2;sK2V|i_TywrmBMpaN3sFOGhS0o{WiF7vUKU553*;|^ zT~p)N(}b8-ox zFRHfW9R=*GHb1#+j_ER6zG8}50j5Gi)42YnAglHfTb(GA{R|&LD^a}gK-U~uaWdzd z+50QccNIOMcM`=j+xYx~R^5qc$mfhjcWK&clXMdv^R8PHvg1pMl+k}B zs`Ck^i#=&fWRZ#)1S1VD#@FXKpyn6jKoJcNLzWW_82m&_~E_GRlO*4$iUDNSkPPi zV*0UF2T7D=tBdWLDXOuc5aK8f)dWqDoP?9vm?ns+ZJr<~?t3dA$DCQeG#efuL(gc0 z<*w5fR+kk5>T?>zQMRT(h3V}_ulXrF=LxL=^&er`YLf&-<1lK42L>yOJ*bKiFb@`N zr$hC`p)&6U;Zo|;3eat*X|Z1L>7(i!RfPvC2xX;=>gJn7IC}QB(SlknZ=as%iOnFL zxj|jinLO3+Cnxn}7yuhZGBGmil>J!~jX0O^0W=KcFOCy+ hou<{+5bJR`*C6#GQb~5GJC4tOttrK~`1^9X_yGsfOe+8Y literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_color_texture.bin b/examples/runtime/shaders/metal/fs_shadowvolume_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..52de72348477651e8c0bab595d9ec71d43574555 GIT binary patch literal 1045 zcmZ`&O>5gQ81|v;;2$yG(~y`EiS3+{^)e{!q3lq0DnTf=>>6y#NOF^H^uJHmN9`1s zKv4YZ`ShE+r~4c6_4W`&Uv8pkR83z)&pNIKR&eOJX6-&!T8@Q=OUv}5Zl7LQ$>l>o zj2iyM097lPPT`emekp{IS~}GY^y;b~+N(I8YQ8e>(^)5C zZ>FwJ-3_ly((UvloZ*KXqM4sKb~M4Sl@mbjbz(cD4OzTajB$|40)4uWN{!SY&VblS zp&(B#fBs@aI~mNdCC^Yw(gecS%$f(*Y{8mM42IbgE(J4ko(EfUo={B%D2S)z0tY9J zH)M;kT_J$7Q3aDF4V!~(F0-?tM=I+Rqxtl}AB_&O8FGwVMLG74GWhOSg7~#uNwixe z+WAE9U3rbwsx~Cw*-rv%M}(%_&DP;Ige?DOb7j_)`Px-;He!D!v?+EVDB^ zv+KiVob~TM%CgXDYJt$o?t+a3D;Z5GI`*MqxEkago5LCZq~FpdFx7(-~h@v z~>M&f7s(#c?a?V{uYWW_G9v@-NP6%cjH6bih?tDI-P2jB*PmY%yJSA$p HhY;BV>wCH3UG=pQ1Yydw?soQy22_QTWMgk z=@?rj4b}A{G@jD)GBIO3z~G6=^B%QUVKf=n^;qAN`JD2;z5vDn@ b%v<%vTm7G@ds4nU_j*tq1LfHCdqNby!?~J4 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_svbacktex1.bin b/examples/runtime/shaders/metal/fs_shadowvolume_svbacktex1.bin new file mode 100644 index 0000000000000000000000000000000000000000..51d0af3c132e557cee33777119450dd1fea2f3da GIT binary patch literal 794 zcma))u};G<5QZbc6kg(3kfYL&RP9ulkSZ7|hKi|*EH~I8!m%sIh63ulV>`~!suA^) z+$Hz@|J`}9db*7Kxw?oV)7GK_K^od_NlBrhn(%qtYGq0dJ5Kac^VK_fqv}~~jfUSC zU?U}misOZnLN7?^5bHH_5oSItig~<0jd?M;=P)jbo^~WsJxVUsVA-pvnN*F{w_K)3 z)lhL{Fpz`kC8-6V6CL12b6i`)ttJ)4wJ3^PD5bFBF)@hVfUhyOW@8wm3S~)AB(a;t zfk1HJ|CV$6)prOVICp`4zysuI=7O35x<;Ls^l+9*;-}mfj6;R(I{>Gko9!o2c;Zt1 zd%Cl9uC$5pt?yr`~!suA^) z+$Hz@|J`}9db*7Kxw?oV)7GK_K^od_NlBrhn(%qtYGq0dJ5Kac^VK_fqv}~~jfUSC zU?U}misOZnLN7?^5bHH_5oSItig~<0jd?M;=P)jbo^~WsJxVUsVA-pvnN*F{w_K)3 z)lhL{Fpz`kC8-6V6CL12b6i`)ttJ)4wJ3^PD5bFBF)@hVfUhyOW@8wm3S~)AB(a;t zfk1HJ|CV$6)prOVICp`4zynOu%mpESGs#80^|7>5emcK}X7H``C5@WiG1 z_jG6J$SWdb^8jSiBIH!Zkf&Laxa2)#X_jTV6}f}SY-aNZkncgr=zPe}AY|{LR~GCMWca&ctVuIx+pv-1)Uw$l0_ zES}!eds=NCZ?f@y&9W>EntC9#a@b=h!AeF`i-CRU7!C$`&1SR1H|d{f9~e&J^D_J# zc)|gcamWwQn|9@~UpnJ_eU0`)S~+hgT@}Zzq_f3IIhk3bCde;1Yb~2r!*)9`_OjK~ zG;`=2#r9k=Exm=26C&p|C?$Pf6-`r!lYsxxlY?>E)e)V3<==$m;rIcIDf@k1mDL=6 YOL2|z9tn44^#gm!!BY~B*AgQ82IHlXu>b%7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_svfrontcolor.bin b/examples/runtime/shaders/metal/fs_shadowvolume_svfrontcolor.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec4fa7bfff5aff8ce78b1a7ce9a9a7e1f62d94f2 GIT binary patch literal 442 zcmZ{g!D<3A5QewVQ=Vc@MWHMndT3cZ2~rQ@L3)xUOt;AzNG6hCH3UG=pQ1Yydw?soQy22_QTWMgk z=@?rj4b}A{G@jD)GBIO3z~G6=^B%QUVKf=n^;qAN`JD2;z5vDn@ b%v<%vTm7G@ds4nU_j*tq1LfHCdqNby!?~J4 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_svfronttex1.bin b/examples/runtime/shaders/metal/fs_shadowvolume_svfronttex1.bin new file mode 100644 index 0000000000000000000000000000000000000000..1ee26821e144a9dc07f07543e5b17050b2d22376 GIT binary patch literal 791 zcma))u};G<5QZbcfbtYKAzP&(t=g$DAyqI`3>6cKEH~I8!m%sIh63ulV>`~!su9iN z+~w}O|9)q=e!NV=b9IpAyCHQJU2c7mFf5$kvQ#`KfiS_8i+ zz(y$nl^{#4q*>C^BVJ#*j|dN8Q7qE^Y0R@VJ%Ol#m2ism`&6RH4e8=UQ zRt=L!0wXz!UeQ_tIT)4z0w&LM{(LH!VVbA6b21|g$= cA)Wo5tMRvTwB9Mdux7?;+1;wUr+u0xe=JMuNB{r; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_svfronttex2.bin b/examples/runtime/shaders/metal/fs_shadowvolume_svfronttex2.bin new file mode 100644 index 0000000000000000000000000000000000000000..d638ce4dbb2b654b3c512a1d7775f04c00b2e895 GIT binary patch literal 791 zcma))u};G<5QZbcfbtYKAzP)vt=g$DAyqI`3>6cKEH~I8!m%sIh63ulV<*ngsu9iN z+~w}O|9)q=e!NWD=jtL!TvMqM6svi&Wd(?E@*E7$MrjhiR6bryb8 zfQ{A?N=cVSE4ySxK)k++5K+;FdA>;Zr!mjY_8cKKv$KxG$_FjA8Ekt|mC&a4^F3D> zR@Ph{35?_@dc`UQ=)?xJwvtv}aAR4?X{GY~1`4fwcub5#uc7U6zGvfv;06(#=Qs^s z91MsG+G@SCo^;!QvG|j z^JvtLL&)a=*rq`!j2y!xBN&I|9gvI=GQk*bVLG4t`~l>95HdO+@-qk-gWu*nC0~P( e(Z7(+{?66-TX|aVR9M(>>x}Ad)!)-TO_M(_N$W}g literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_svside.bin b/examples/runtime/shaders/metal/fs_shadowvolume_svside.bin new file mode 100644 index 0000000000000000000000000000000000000000..e67e7c2306ee510741d285089d76b31a3f446eb1 GIT binary patch literal 823 zcma))zfQw25XK|Hl&3fre!XzlmhB=G4WXJobyLj zt44H+?{xRO@4m}){&@NG{k!r!a^ZPpk*O3E%XzV835T3pCMSMjO_^BON@izP&fnN8 zH&1F^TKMt-mRd_lC7l|r?35)Au~-NfQBj3)Ji$64HM6jxtBJom&3rCx3$2PrHI}6h zT58kT_M$SOO^#xaD-26>u8!0;(JavnxXo_vXs+I#qkX!T48uhY=&M# z)l*{6vJ`?F5(RM__|BMv0gZyHTJP;x(SZx_1NSv53oDBNG6Cd@)RMwOe}kZMzU}L` zRoEFg9Qx4sJp!ArH_XtXOSSKCi_=KuF(H@-V9SCKr=kyoFbV>fyn`r=qG*8AZechc yWBvg0(Fy6D5Bcnb^kI0elJ`zX?_WrLk=o$qPeWSklv~(vTN+hg2T!;2eeVxSrTL%$ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_svsideblank.bin b/examples/runtime/shaders/metal/fs_shadowvolume_svsideblank.bin new file mode 100644 index 0000000000000000000000000000000000000000..aaf666c25d89cf496e38ebcf9374ea40d253a30c GIT binary patch literal 396 zcmZ{gL2Cjr5QQW3lwUEYvI`;>dRuxDq&-Lv;z^cex=q$#GLh^A3gYkb4Q~eHG1x_*AO7~kw5;n=?j_t-&k3&6zDnwFoBVAEZ@G8zGMSFy R<|r>rP#gngH2sH^;tV{CiXH#} literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_svsidecolor.bin b/examples/runtime/shaders/metal/fs_shadowvolume_svsidecolor.bin new file mode 100644 index 0000000000000000000000000000000000000000..bdfa2f424284a414a8cf3560592efc1486e234c0 GIT binary patch literal 442 zcmZ{g%}N6?5XU2U%2UiqT9Bm&56a?6D0(O!il?%KaZT1>GAY>!R>dds0X+Fw-p#h5 z*wWsT{6FS5na*!df4+ZTg!noUBK4L!AoRLlVynSxMpw(8V`>>z4td6I{)|sL-qA8K ze8|tk@_pis4q#kBzJSiDX~ga(xDe}Ou?MmyM4x-Nxun`{#N-06X%D5$DtI%r1fv72 z%Cl1z7K@&-)5=oQoI@KZU-uge#u=e!KEmr~T{V&bvbv7JO! zOCvfZcJBY~zyC6wKVE)+{j5B1d*OMy%6SHy6tpTyLZP6Fu(4k$sS^boM$}BP`5Sqq z@`;yP!KV+f6oNs<@Kg$}rX;b5#UiyQoVsHik4;_51W~ZYtFga3&3x9Xg}UOq8cVVV z!G!FTz3@C0vT$Y^oyOI=B$5=BQ>Bt*1?5L0H0_$PW+dl;PRxi4#c*y$suam6&UqZ) zKq9y~9upfU*WfhTXqGxnsYFo_$ANFtI%v>1aMfa;(Fzaj!8~A6qw>(@29T$Ku25|$ zJPbVuTmr4G-&PrAU~wk&T3>(A;Xb7B111xQ!srjfc-V`Za8*&RiNr(8Yv03-v5H&) zLgpTTEGvZU2z?k>u)VyuJ)&q}+T6l$G&1)G5M!eQ(mNlr?S%AUc&?N8PDt-xNWIQ_ YJI%jqXl+tJpcdz literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_shadowvolume_texture.bin b/examples/runtime/shaders/metal/fs_shadowvolume_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..e48079000ccc049489f76b2162abdc6d6a72dcf9 GIT binary patch literal 598 zcmZ`$OKXEb5SG%DKcdX3D2Sw?H`81SX?qAggr0&dTV0K?580g!fztopbzNx;$<6h9 z&3v=jz2B>c^(ud2&x5#$~S~LA2dyDWB12kMw zT*8qcJ5@^QdQrr`*F~QeC)I)S<{4T}Hk!7tiYt9n^(DJTY2m`0ZR6;I$%|=%ahPyR zI|<2^afv`qI@s?G(w31+EsR#PWxetp zticQ&_+=bFpk9!Hp`zzZdpjd~GNT62Q`2}TbvAt1&QGEWhmPf;=#NyBr{T}^4KE{@ w{QKvldosx9$r&W$@lp?xEDCnqCSNTcE)fN%vF)hGNqW0likD5+_CXukIh& zLx;nM$hCvL6afO8oX0oc%zX5Ro8Mpkef96B+3cU!v)MR^W=EQ`=0jJmIjOlUtBd&{ z`*AJFzAELFtZweh4eviT-6+YoIU(DsEoDJ=)#^iE?%ua;zad}0cI_afXq(&H3u}{; zhgH+|wF+t6GB}cazgAAEJ5`1cf-KvAdU_+u^$0h%q$9tLxp}$EM-^HI~1HPSk)R?3tm>^zo_`4T+94bydr1C7_3c zEO&e*pocM8w+(##Z$v}sF9dx?@VOheTi!=0y}gAd$Al2*uN-@xZQkOfyd#5Z`TG`H z1@`6^9bz(+byx8o!wq$}3QW!A|Hr0zwQi!2dBi!}Kb zHh1p%=E);?vjkVmV9OE5<%A=gEOmPbsPKXos<^2-wWv^*jZQKAi4L!Ts{0A1qif+s zTm&VWNX6u2gD*XwCHQPwNg`vO#nx&uIcE0k)bl(|_TX#W{E(-~lMNb0&`d(2EJ>%@ zmQ)?OQZq_UY?uX&$w_piO;|mh5V`u#JVa-ZHnJ(By4;f}O;T6TlKNv~v_#QN$*W(>YrQkc48Nl|3W^97C*6cwv+j+K}lq0tvTmWMRrOLLS&yzwY>RKTO8 zf07t7!=CwK$O<*jkPs)hyc=9WsI!1NQqDQWEzLntK&b3L-6>mjfnsgHfpptxahkz= z(PT?kmc85z_0p?RQ+tRT(sTIP O)o8(l-z(qe^VttFAkQ2C literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_sms_mesh.bin b/examples/runtime/shaders/metal/fs_sms_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..5c173c76aaca7f954504754e0c6dfa0e05c191a4 GIT binary patch literal 9729 zcmchd+iu%N5Qcrxi$YJaH!Y|{Q6%nxmUFlX5TqAD3k1Ci41$p;TLmQw6crzeymX(S zGt1*>hxHmLlmN0d8qUt{$Nl+R0zHNQ?X6U zBzrSj=DS0g-tP->NVfYdEkwL6v-m!X54XuGzl-Z|kgQfkdN^ENEi*`r%REk3H|a#I zH(8k$S6A6)mnOwTEc5L?Dbjd-+$|vrhm7Bh4rOs%mf}83%Fku?1uCb-Z@c}m6n~F| zSZ8@sO7T73<;518szVAwRTs-VFIH_FQ@?N0yEmgBeCgkhC8@2%O%{JFlA8~CmKTGE z{khw$p@Xg`C5~~nxw$R>$Pf0YHPqOqyOWvJ!_~9f>@x|3fk7)Lnf+i|^4i(odszJ}$Q2q9MKzPt@rZ|&;6hfb@d`kd?`9gvpC zBDMJwg7yILXl_FoYmY|=gfw5z&UT--3__7D<9Yj5igLUEo)mG2q2_n-PP_^#sGG+$ zuqBSuZcV56507IwJ!;;~ak5uKLXA~kit6Cav^hy8O>)>BA2u=7E1;(LP@?XrUs+8b z;DaCtVEDR$AZYT$`*&hCosGx%;R|6?w#mH+AULTSst*(*2&Xg1X%4lA;6WAdw&SsQ z)#QZZiMud3H$1Dy@DIitLj?&Ph}Ys0e&CF7#i3=}M?IRF*f#Og+ay~z1L!sYd-j-> zvB7{nQ`$v}FjSX`a3$J)dwUKDK?Ce3cebZ*d7d>@F0tZfErMkC&@N>p-q!;Mb6h)k z!5P|3){cJ(<71`3zRat0;)h7HL+U2d>TjFsmW*X)8v|*mnyIIFc`~GiA#usDtLlLM zaCE5_SgUPzfs0io;OQ`%FSMM8+LCDAAie)swN~Kj=H@dp!hAM;yn|7?K|0KB8;}HW zx>jDzr_ckw;^1}Rg`HYET&)owP)_5y-M&Jc1hFL7x_H?XomUH1S8ccc-0uCZztC2y zPNrr=-0^rqokXj1$th^JYgbTK6K>Wlgtv6r=GVf&mkgRFGI5%AgiZ=(@Fv3 z`qEX+-njx!8tCJ806B&hnm7qR!Y5U4mZ55w&Pr1^CFKJeB#Z$)^9OC^;1o1&fTuvK z{^`?!wrbK%!nmL{wCsY`(*e*{i@JhQHQ|P%fwvTNL_r&PI|w>xp}+iJphrA(2qX0V zf_2obGIsO3^r3#qQGW*XTD0g^v)c8f^aTrjF#tWR<)@|`&I$Ao z)r~-hg#PY^g!4fU=PYy#4?+*A9EPC>bVy>hy1%4{wPF(JA$q7Mc6wOZs8aQt^mbZ5ayah7^CM7`Fc1~Uppk2)$HrM{rlK`+loeZfXmfun?#9r_BurQy)LPJlhnRR$G$;A zU*I9(eAFdx@nFi3CdzD<^p?r>I;h*UCxO%0ZNeuBeq$ z)XFKx%0WUOIwYKLrz_sdVR#U_qSB~*tQ;f}=+C{VE6&O(4=bm5E2pShDc8y=*2+P2 z06MjDids44SUE@_(9db*6mR7)JPe&mqw=wGkiIfVl4 zT+<;s0G&EHMV*{-oE#(&=;w5Dig$7t9)zx`G-@9w2T3k;f99I=aoWSjY2L?aDpuO{ zahmmU5apR`>fPCAsC|4KB)QD}ujrbyaoWSiY2L-PK|&uoB%E)f8{WoYco4dw%4mFS93(N&{ng!Y zHqLn1IK$gGL&eItHqNj%4x$6lsf{z##u>-PK>~q(P8(-<8;9Xx=u{ewkBx&Q7y2`p zb1u$!xH!YRI77wCxGv7HE)Jpt%&Chr)WsRc#X$mLeohx>co&D^LFN%v#>mITL6Xbd z|B4=QE-vzLaS`w0BC1u9>*6BT#X*#39#Iz;Q5P3EE)Ej<%pu`?;vVrX4#Pd>^|#5^ zHMRHnUW)+l>W}B9xvh`iEYq8?k=4-p@JLPZ8+v#O028|){#Eo&?DIQ#oZ;IcsBZX6 zxZyv?d-2uF7`{rkPX;uf2Ka~uJaF>TKC3Z(fae@u)VGbtO}qBt4tM~>_JjqMw*RrL l`)lzPy0_Xb>E*?(P^L2n;2W6E9@Tu;sjpeD|H< zLlQ08rnffK0&Y!{!y$j<{K=8NeEa&#uZw@bo}E4Yc6PR2P3I3}p3KtKBDqV+EG?4k zV`o(?*LMYZ$&%u_$i6)$_v!M_`C?s=A00v_S)LS(JdNl1a)#A)5r?7`)Xkso@_cz; zmSfeYY5M%J^X@kN*SfH5bMlalzbuo7&v}+Fw>JA{KAnIEl~0_k$JzAZvG_Y*$yO7v zF-zwgBhlUI(OoCgISCv?9nXqvJSE@1uZrX$9Z%;sH(hd<&*AH)MeWJ&M7CK&o7?qd zk}iW@cyj~O(^FUrAujVHCv4By82gH zH|!u1%Y8jQ=}TTxpd`B+$K_W>irL~RS&k_dng5eZauF!3)3-EG!-=X{jb2{g!mu=A z+Oe7q1~%^Vf~dyR$SjktsZ6W()Rgg>0Uo`83GGqcGLK&2had>RVZG#nz|OmdTR5rmzig@X9NG?nr8g`o#gJZ*W9l{^zF9Zt= zJRl#)5dOgt;f#aJ(huDm?@BlE*T*EAm<~i)uuNC$tQhyPK(3T>k_K3$%?xlRN`Gs+ z4hVq*&R?FTPq%rV87o7yIGvCnnZK4(IUrZM;~>VlgAW{`+-7C}L+BqZ1@a?SYvP@x z*(z;Tw5@+K)+HIqOgaX^K{=y`INaz`K$kdW=#^?v@6Mj85!x!99pPlD3b-74@kp?k z3Q59zL3%r8tqgJ6xwvQb5ci_DXXvHsq{3Xf0hItw<;q1Ife-kJoomA*Ikd7n9V0$t zKpn?&`x3HIh$daGlXGJ)$Mmvna{u5}Hf(Cq1$LgyjuJUOd85YedL<9(i9^oF=B1r@`=2)=2O zY}D%`RkdI-Ak-|q!DdGG0+zBur>vG!BqL2V7t9AJa{}%81C?=a6Daop%IbrtfXXmZ z4Fb1JV55WR>Hx|k2hgB|dv3#(dkezoF&K-VVXPbh(8eRPJ4ICSmcMPIF2ig!VSOL! zeHZlupvySE34LooukGT#8@i0*)fg}|Z$KY7p$}SvK0FEZp)Yh>9paG>^pOj?f9R%K zFRaZ-dmcO85`=Q6Q!NF0!BaeD*w87eO(S$eX-hku#;1S|R{eH5wY82?59mMeGc76>bf&IRGJ6CW0)226X@M&a|Z1(A8CIH}ruUx_t*>N+>MoC`e7{!`7gq+#DY| zT)w=Zb6XF&Pr?lHNg>QRF^l(rPz`A=owww>O= zswZ<>4!KWG4k|U7`ztzkW#qU=Mvl8Pa@@Xv@McDiJ2P@n+7|PZWaPMSMvmKR$bB+$ zP|0ErxDUFfb5}-=5B6W!xH}`q?fVCBX5_dtBL}5zK|e`Gj{9chxUGiVCnE=y9MJuv zyKrUXghxh>yEAgazJG{jMou_0a!}e5ba9f599Z>>?!uNs;ggYrN=@hoFn8tSghxJ3 zxbtzszJ7>iK2A9EaZuV8^ONM`gl|4h*m5X*@^Mh9$=qMjg)18;JhE}ZosARr?L#P; zsGr=0GaCn`Z81MdHco8M#_2?*JnNLt5I+$0xG?UU$M^Uc)_w>pq;Q(%aMb|`hNrn$ zu`0w9@+Dd1&+yv9?MgpzX7FG?#%J#8BZO3oJbtQl9t#3|6$4%@IhXHbL~xOTNACJr zwJ|MU;xLb!(I6M{FPd%sS3O3SxxGB9zpn(&8H;i_%M{-GnX8uz;B}n$PUq}DT|@KC literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_sms_shadow.bin b/examples/runtime/shaders/metal/fs_sms_shadow.bin new file mode 100644 index 0000000000000000000000000000000000000000..5281abc6100c4a2a7cf67ae3f43c3e454983dd06 GIT binary patch literal 396 zcmZ`#!K%VA5Uk)SU$G}?L8J$7<(&l4gLn{6Qp&!*qz00Wq#F>#e>b){JVkR@vdqrx z%&rfcX*Rt3B+EjtsRKeQ`wO-btYkEm=-G#s;cAd~Yz}AqlYUE=z;F}y&+tC*hyy6& zkeASzX6>vRl&S2n#$oUOQNuQTRT^Hge;5B-3Fig8DqT_GzKOy|2+iCC7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_sms_shadow_pd.bin b/examples/runtime/shaders/metal/fs_sms_shadow_pd.bin new file mode 100644 index 0000000000000000000000000000000000000000..ccec78ba0020bea93aa126c6fa4c7d718cf6ea6c GIT binary patch literal 623 zcmZ{hzfQw25XK|Kl&81}IkXrzC5ceQgjB&$F;q-d6ije}CC82&r<5Yzf`?_q`2#6c zyV&QGzx#f7H(%bJmS6hYah^^br>?lnLDGU%B~2L=%uq3NE2Hbwz(!EBFk<;iUzom^ zWo_WY1;~V=<_gwHsVZ)`k~8=7u;!sQd!k$NkcPux+FUA!M@v2z6k1m?7T6WoONIvu_@p1HpmU=tga16Ws>T z1cy-+`92$wXbfQxOhZh@;0NtB!Nl{t2BTxdyR)}M=#TDVi1B9gz8xG$Q_mh`dQCz< SI2QLlnweV5-p+2#e>b){JVkR@vdqrx z%&rfcX*Rt3B+EjtsRKeQ`wO-btYkEm=-G#s;cAd~Yz}AqlYUE=z;F}y&+tC*hyy6& zkeASzX6>vRl&S2n#$oUOQNuQTRT^Hge;5B-3Fig8DqT_GzKOy|2+iCC7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_stencil_color_lightning.bin b/examples/runtime/shaders/metal/fs_stencil_color_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec312f8a3d8b44ac32540452e752e4477cbe9f31 GIT binary patch literal 2345 zcmbVOOK;jh5a!TJ`2jujG^c7Eh-LF=Kq|G$23JI;pJKuaW^Uc7`{f~F^m%kr6osaK3ow{QA26CFk)t0Ve$YM^@>u$x%dc|R% zQhvwN`$xKt%iDZgb9m_jBxynU5T2sEC^K>0GCi?)cinwG5An0+4#o&JX>?Q4&9@>g z$~WD9=PbcUZS2v01a+iB>Da=sr6tX(hK?}NY{}xBJGM1TlDdi=+e#6zz^ZM$s#97< z)g#MU9#<}K$~KSuS5eLBn$^|Ac;UdwxAV>NHqYa7F5hBF63jG1Hf~*YQFN{ED9eGI zDSVXiG-B}ZP;t76BbF}~eOMJaJ{}|LdVK=vQ=`waPLjAJfwx$A-52ba6F@VNw~Ho^ zA;>IbYodW=7Ipv5%4lfWloFzmFqt#V^pPE6qUifZGoHBE0O8F`qTHOj;({lyYRU0z z`-CkS3vY8qXN6w-O~3v9^8qe&{%BUp@b?nSP79qCGzt8m59Uk7EJ`2@i_2IP;>F-v zoxZ?Woq9b_YEr94bYsmpEAr^GAPBZW`1^q}vjj*>S#vwUR|x&UGmyvL1Yg3XVoQjG z7a=5jA{ctc_H}lW_`y?U1bBrwtzu34IEDfv7ADM2!E{RyOQj>Pk4!(Vlu>u*%HLt; zNd3qv`ePvcLQbQc>qnrw-~AQCmG~ zw24%OX|^_oZf0SCp6h~xmUA@f8!}VdePFC%=mZW!e~$=nfQSCGfo~*02B?cB<1o-N zxM;@EL)B=!sn>6ZPSZJ>2I4&Tu(n!OgpiExLCs0S&$FjYFIG`=4=h)sQqs5qY81!8 zYczWSM!m2tc5o&X=8o*uM#G6dUC;i`pgE+@TonAAJ2K~XT{rS;YH4aP7$a*;x#d{> zDY+>TsLtywCr#%k4KXW$vy$IoikH|>T^K>qS}JOW<^oaHDsj9W;Z*l(L2v|G0 hzr_|6Lv=1)v5guHsX+L51)z+1UFO;a|A=(Eoqq&^)6oC` literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_stencil_color_texture.bin b/examples/runtime/shaders/metal/fs_stencil_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..52de72348477651e8c0bab595d9ec71d43574555 GIT binary patch literal 1045 zcmZ`&O>5gQ81|v;;2$yG(~y`EiS3+{^)e{!q3lq0DnTf=>>6y#NOF^H^uJHmN9`1s zKv4YZ`ShE+r~4c6_4W`&Uv8pkR83z)&pNIKR&eOJX6-&!T8@Q=OUv}5Zl7LQ$>l>o zj2iyM097lPPT`emekp{IS~}GY^y;b~+N(I8YQ8e>(^)5C zZ>FwJ-3_ly((UvloZ*KXqM4sKb~M4Sl@mbjbz(cD4OzTajB$|40)4uWN{!SY&VblS zp&(B#fBs@aI~mNdCC^Yw(gecS%$f(*Y{8mM42IbgE(J4ko(EfUo={B%D2S)z0tY9J zH)M;kT_J$7Q3aDF4V!~(F0-?tM=I+Rqxtl}AB_&O8FGwVMLG74GWhOSg7~#uNwixe z+WAE9U3rbwsx~Cw*-rv%M}(%_&DP;Ige?DOb7j_)c^(ud2&x5#$~S~LA2dyDWB12kMw zT*8qcJ5@^QdQrr`*F~QeC)I)S<{4T}Hk!7tiYt9n^(DJTY2m`0ZR6;I$%|=%ahPyR zI|<2^afv`qI@s?G(w31+EsR#PWxetp zticQ&_+=bFpk9!Hp`zzZdpjd~GNT62Q`2}TbvAt1&QGEWhmPf;=#NyBr{T}^4KE{@ w{QKvldosx9$r&W$@lp?xExY}0Y1LH&(; z*x~RY(ROZy0fQQGzWHY68&aRX{QlFw_uu~*js6>tMqQ)IEtH~=%}%T(6tWfh&A4gn zZr#Em7wvtUe|Z)gS${5fT?=2w09js%b_OqLS=EK!ZcPcAT6tJkRlS*dtKRsc@vHi8mtNLB9ze|;2_@2=GFo(`YvV^o@Cu&hNo{ct%;z`M} z4Qv~gWnCi!+u9HqfHgb0?s8G5&9f?1DVq>DSKH_Iuc~$J{|fz zby+5BHsz}oc5ng!*u1u@WwQB5ExyBAp^5r{`|VqDm_Q?nT`p^aYl>YOY_%_GD<6MF z_<+34j+j)wMl+xaQMfc2n6-L-Q*}BU*o^ejxi+~q+}fpjlgyMRaw6q=qX)vBSIoEt zd-VoRTdl_1V)ugWUTAN(MrVWGMP5tM;q?tJY;DnOR2LlxYnT=~8)!C-rW0^~CT3Lw zQ`k7A(ik^RZ_Mf=EX?Zil9S%8B6X)Xs#R5){-O!O(4hSznnD1T0qZGSZf|f0aWv%) z^4Oc{aE8_2womiBQB1I7lJaC-`7TY^|7OWHnn z{rF&vwmTo9J!X#7kF2^s1LUJg)#cVFnPpu3t{1|dnjm5j>lYZzdoug@B!Sf~7*2;=8R)_;*XW!mirGnNXNJvNxwCPW0)~AMG7lKevc_$VMA?UG|9oCVrH18F6a_YK=6Ee z@V!#A&2{dYKu5ZNKwZ&m)?XZvxi;ve3a^w2m@^{b{kiVHH0)6m2BW*e1)I@S-kK_k zr^f3dA?YBxcAjxMSY{~jWCHHb)SySw$BTPPBK)cWqme2aezw?v>l|-Mlr*)Eda9!{ z8_v;KVAV~2Gwz^?GG>NO$MmMrd_g~beVi^)X_qF`(||`^`#*!CkSHxqSDIPs>*c)y d={oAF_xBQgZsAaAk6Pk~NNFpJ-+<%s=m$;QRSEzA literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_tree.bin b/examples/runtime/shaders/metal/fs_tree.bin new file mode 100644 index 0000000000000000000000000000000000000000..c36a93d60b570f7ecdf1128b20c280e64a4bc9d1 GIT binary patch literal 1846 zcmah~+iKfD5cNZ$;IEjcR+}n|EZI&%(!3Nx`w$8ZeF{cwWXTcehP1L}JNbfsY5$_L zH)$O^6oW3KnK@_9%#QCKzJK_e&;N`@pFfU9ZIc!&C|Djh6^mlXW6rYcal`92;?QM` z-}CI@nJwe`M^UvL_G5q~D;W=99TsJs3wO&@l}-QdqYIC_s4VNH*IPy4I*m8i`VmVU>kUWVQNM|58g;wJHiX+~G3uD96s>))SDZ#vXT)Zh& zGtlMVv$O!`gcf1WvoM9n$A+_29Hzx$;X+gv`1&@ZX7>qXOp7s3ZIZ;bYCL zrQ&TJ`^y_C@GVkBldKy3^;a3-Lc?+_p_b{Iyb2Fo^~e9`eo#tS*(XTno$Q0N$uFGA zc#rfC#L?=>N=u=<>S83?7f$+C_`vgO&Fat>Ci4tm!Eqd=5*->ycN;j@;@ReIOW;fm zr0;li;?G?0s6QjZtn;LF9pYHhZi_aL&Io*wH!^V3=z+x~Kqiv7GiXay<&xf^>Ml64 zX+BZh1!h0`gh(hY0Nr3_14!{07=g5HYLS>8lF%(UNkf0Lh!{yVe3}Sl6;0weqBguq z)&w~KepR+!{6>uj?NEB{XgJc2$e^>KC&qh=+TR|VcLZKuz!?gM8&H6vB^a}pB$jCt zv3ePrgXu`=a8vX*yOpe@?4-weOqmS3%WHBO2ebfLS5AWpL#f=y1=;>*wjmid#XsWN-c6G z`qJWdi3FkyH%4D2lG3$_(uAuS&ThLyZ#4>mnU8=}HA7OV^gwp@s$!0Ao_Ll7T zn)znAe!n*l^I4L--6e^4oo+#MC0x&I0ZJg3W$MuS8sR88u28P`d?)OO?mfbH3eZTy z@fi*b#j!TV?xtn>b6fQ3@ub>w*}On2+0ycMVWhGDs=jpB7^^6ZY#X90p|7Ti#&NtM5S$XmfWT~!6tM$_-LV+?(Spz);H`lb;!o90zTTNeO83!}H9_FFLv zEzH3UEiCAP1Q8C30vuPp6gK!d)w6SE!~!!Cv zOXBR#?96zVuTPiiYB7(ZpNlB6O(jc^RIsL|IRn8A<+Hdk+U5pYPR+{j*Dc*J{VZ#1 z;420wxT0nPJ7QRyE2TH1S^Rw-^kU6`+EQLjq2y$#Y5AzQ(*L5~WK}3F_QR%NiKzth zh{E9olPB`Rq#$`kD+$RN{X`f}Dp;=@LrX>~nPn;DO1k4IV^DDo9%CKm-4+GY$p~ec ziy;L7mw>UFO*V5M$^x1$6z|UUhpGpp&`?oxrafIFYI4*XioO-aUCKw|gFCN8&GvU- zM7^V$+;zW(Z`^*s10+dr6(3wvSGj=^zDIEDUq`S{k8%sqBQ5ST$1VB`>Mt`)93Rk( z9f>a{dwaMy=V_0Pr;zl^gpxr$La3wbo#MlFam>R&+`6Z0)6B&$L$}+GIF5b+CyDyW literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_update_cmp.bin b/examples/runtime/shaders/metal/fs_update_cmp.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e9089a14d15e8349f65911a356d0a2e5eafb0ce GIT binary patch literal 644 zcmZ`$O-sW-5G~>Lium81Y_`~zdRUg- zdGF1eH;dKFrM{ZaMk9ZL$F`~g#U!^KD>+E+n3yKk8DBcs3FekgtTwFT=2dmx!FK{s z3(ed;Y^meBQfpI$P>P;j~pnkwK{yK2H^6(`yJEkDO0m*W9FIQWQ9K1^_s)^M+5V zS;$}xw$C68gZNktgbXZ`o!}I&baYdTR2-DJJX4=dH5W~tZ^%wjCr!xf# zV%W94=XKBRX!3k>_4V@|1n4>lj4DL|f^e#8GNZt$CTtigEzL~Bnh`zLY_cG8Dqlox zG<=2tIje|HV2L$d&#Fq!2g7iCp7d(;j zo_KeocyomKxQN(XM64{r=QAA}=>4%?xxl`qxcjp;0+H(sMSkNH?F;Meck>HNYHupM KxGj4dhQTkGogIw; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_vectordisplay_blur.bin b/examples/runtime/shaders/metal/fs_vectordisplay_blur.bin new file mode 100644 index 0000000000000000000000000000000000000000..2b71fdb79b3635387d033168b30229ac3ccdaa27 GIT binary patch literal 3314 zcmbuC%WB&|6oy^s%Jd;-Riwlfnvs0NZ8wF`E`ksX6BMj9n{N>+K&(l_W6 zbgtHsWyeFcb4D}g@*VxZCRaCK-@bYI`@7fs^RCyc%5}Cv8BODILl-ehV@8u%zhp(V zU}&3AcFmHTdwLfa-?B}`(62s1%Ot0apofUX+eMxicmAyZeEiV&ikVaQG+Bmdl|)ws zU46-uyf}I4N48$(MOr5dQ59`yLDN#6S@H;JoE;RXbLpb5={iHskq)AiCD9t)-j+~l31mv2W&eZ@u@+^Q)+Q6qE*R&(>Q5(2nf4OHrh3uzl zLd~}wa|=44kEJN|^e`4o$a((Qw;2G&?FnG1IFpZ@&exa$&u1|NOxjbxP|rB%I0x+8 z41%YrRltj?DePr{q4crTe%n2`o|UBn+fi5=%EnOIxU05tXw~8nwm4KRHmj0KH-jGi zFZebUtMW#$Jg%PodtXlg`VN-H)6Ru1?Ir+y1q);8;;wjX)#3!Us3&kBcW6O)`if*P zjX`S3nz2n^kzIY}i0p`T8XboCU5RivlOr^y$6d<&to@ItIVU>;-Hu=zBI+w*I>9zT zj(iLVv^^qhuge=kuoVvic=$&@2n4z#32b--au9|`V8i3cZG=GoBf|eW@d&JVgpdbR zOlV$z0e?t literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_vectordisplay_fb.bin b/examples/runtime/shaders/metal/fs_vectordisplay_fb.bin new file mode 100644 index 0000000000000000000000000000000000000000..ab9efb8dd6e1a3ceb04d44cf51ccefbb3a4164d1 GIT binary patch literal 796 zcmZ`%y-ve05DtPV67O&mvQZS3kgdRiRKZX&R7_Q5nbb)m*-qp*Z2>Xyq`U%8fMYw5 zR%MBt`}uzEZnk(hJNf+n3WD>~An4jkmLREMZ9{Vgf@#X9VXIY_YuItB=bA6pbj8%8 zY&s3^Awa=vs#DmIyymrhR_{Wy;E)ae0eO?i<*$;nL7^1cWAx9eF} zMXkh`zatG*RJ69IFbIOl1I?bx`$m{h z)0v)^t|*v76P#sc5D@^F8R$;2WOZXFbq8%f7VFQ{`>btAG-R*TCv7PX z`_b=-_wKBcy5EAErxwkIDst6FhBw^0B>KaT9XjgU_n9L=R(OJKl2q|%uNdRsg{K34 zGU7_&-Rqm-vk=$lDxO3zd~B=Nl*C(8<;EBfyNtIzl5-S~55trqWc^{})TQR(1Gc_b e=?)Suy@3=D{xLSef!H}v%q&TIE^|X+82kW_hY!a9 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_bump.bin b/examples/runtime/shaders/metal/vs_bump.bin new file mode 100644 index 0000000000000000000000000000000000000000..7998ca70fb0063f882250823def59606a4b1c5ed GIT binary patch literal 2038 zcma)7&5oNe5YC}eC7!~kDy&+B4f#{ldwW=QrB!=D5pohIr2-QXL)fhLRr)-Aj=l6X zYGdP{gj9P=hHt+4=9?M#@%ZK4;?M8b(dh5{(WpLVbPp&l$nk(T1QdkfeCZuoRc{z* zbIk5p{`eDbN%fT;Y6hM?0CstaSqyMW%c{URND|Cgm91+=#-YDjEqhGFF^BS)v8<#H z3fd^a#4z0x${Y}~K}di|yD7_R8#=J4gS`xk{#LUK)%!esFp_$8j_4*`XG)OON~79! zLYFWE8Y9y|HW@iNffKL2^ls?>PO}|1*Rs2fL7h4zu?{^{z zrSQFHz7`H%Dd^Cp(GOU0XmFK65$b;jC-51-Aar8w)0s!5!oaMWri%J>WThdVGL{O1 zI+Z?!D{$9ip&xKw%@OzU$l{0w8V3%Qt{R_oLxEfIqKgO_MJj`sP4V+;LS^I98sk=we(D0QmTNz<-)6`qGHufUUF zJC1)guEec7^UXIi-^@7s?fKK2#qVE#N25P)N2B^o=mAi4#OD**VsOL^70ckvs(Q;n zTOjtxis$cWhpW%@R5S1r0I)Ag#4><#T2@C?fYk~yR*_B3@Hh_F>t&BgIp$QJ2_q$S zP|!vRCWhz%Q|5pY8{+t>$cmhBWzP&9a8BrY{T^&f%Kzj$ z;smJT-T@g?^O#M&-{VRyVi>&eRdn#G0*NlQ2BQ39xx+;cg-!ij#cS}fBPNmBE87hR zZYMe!xDz`%9k^3d4`9brgQ{Fc^uMDEF9$}kfN5KMy_q7-xoN7jhe~!8mhzCX>JmKk zh$M_Sn~uzSduAofJVj(8j5GG+0^SK6*&EJNc0-D~Mn2$DE$1pt>oAk^ zvka+}LRY9h|GGxGciP(@k#=`u*M9w7Gfj4*)Clvv*RQbkPk<1s!mO^S(u{v~f?)Iy DpMdE4 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_callback.bin b/examples/runtime/shaders/metal/vs_callback.bin new file mode 100644 index 0000000000000000000000000000000000000000..f7f3092c8478a09ae56997fbd62990c4236c5d5e GIT binary patch literal 819 zcmaiyO-{ow5QQVbDyNtQLJdMunr2sZ4~vRQ72QNppZ2;QItov8_frajYPicbZwLNoB^6NikAQYt{RCqX&&APJ14% z`Zit1fsqG!3p4P}!-G_OH#h(Ac@!*`DjAGac%Z{X?kM+XZa;?C*EftFR!TnCO>?S{ z7UPs!_%^vEVFD&+Vhj`HAuBV}@C%Lzn*HFLF<(sXJW2)+?Ewft4 z$e<;t)$$mJ2biQeQQ@>Ib!Ynk3z*u@s8+nZmeq#P?iW~Tnx^(}9}Ac?V0If_7ZKbX zZLHrI?!eMLgW=l$W3&q{VNVczC+OW>t7f*))wG0dN|L literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_cubes.bin b/examples/runtime/shaders/metal/vs_cubes.bin new file mode 100644 index 0000000000000000000000000000000000000000..66262f6bc11fe7ca097ccfc51b62b5ebf78a2bfe GIT binary patch literal 647 zcmZ{iO>ToQ5QS0I6{nb0MXCyc$_{1UETTq=noWc(hZyS0*vO0tZPgR>8oghyP<|6Y z>CPU#nfKE&**uK&u(<_-9 zgijkF5sG2}l*CFX?ZJLe5j8&;WRACpqHxeW)|y-u9J!JcmEWqqt{XiYoH?a}Y%XJl zi6f%`%05hJ|1rD%!DI;7)(F4Rv)>k>B*~htqw#U>x2a_aBw*VJ*gLz`mCur5`3^)MH@{(%eH>Kh1 zo?r>S>rHCa`$t{v61taXX*AtXcT9N+P8ZCbA%gp}&0^F$;2&FbzoQXphDOWYr-p3X F)*mGp;q(9i literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_deferred_combine.bin b/examples/runtime/shaders/metal/vs_deferred_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_deferred_debug.bin b/examples/runtime/shaders/metal/vs_deferred_debug.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_deferred_debug_line.bin b/examples/runtime/shaders/metal/vs_deferred_debug_line.bin new file mode 100644 index 0000000000000000000000000000000000000000..66262f6bc11fe7ca097ccfc51b62b5ebf78a2bfe GIT binary patch literal 647 zcmZ{iO>ToQ5QS0I6{nb0MXCyc$_{1UETTq=noWc(hZyS0*vO0tZPgR>8oghyP<|6Y z>CPU#nfKE&**uK&u(<_-9 zgijkF5sG2}l*CFX?ZJLe5j8&;WRACpqHxeW)|y-u9J!JcmEWqqt{XiYoH?a}Y%XJl zi6f%`%05hJ|1rD%!DI;7)(F4Rv)>k>B*~htqw#U>x2a_aBw*VJ*gLz`mCur5`3^)MH@{(%eH>Kh1 zo?r>S>rHCa`$t{v61taXX*AtXcT9N+P8ZCbA%gp}&0^F$;2&FbzoQXphDOWYr-p3X F)*mGp;q(9i literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_deferred_geom.bin b/examples/runtime/shaders/metal/vs_deferred_geom.bin new file mode 100644 index 0000000000000000000000000000000000000000..7998ca70fb0063f882250823def59606a4b1c5ed GIT binary patch literal 2038 zcma)7&5oNe5YC}eC7!~kDy&+B4f#{ldwW=QrB!=D5pohIr2-QXL)fhLRr)-Aj=l6X zYGdP{gj9P=hHt+4=9?M#@%ZK4;?M8b(dh5{(WpLVbPp&l$nk(T1QdkfeCZuoRc{z* zbIk5p{`eDbN%fT;Y6hM?0CstaSqyMW%c{URND|Cgm91+=#-YDjEqhGFF^BS)v8<#H z3fd^a#4z0x${Y}~K}di|yD7_R8#=J4gS`xk{#LUK)%!esFp_$8j_4*`XG)OON~79! zLYFWE8Y9y|HW@iNffKL2^ls?>PO}|1*Rs2fL7h4zu?{^{z zrSQFHz7`H%Dd^Cp(GOU0XmFK65$b;jC-51-Aar8w)0s!5!oaMWri%J>WThdVGL{O1 zI+Z?!D{$9ip&xKw%@OzU$l{0w8V3%Qt{R_oLxEfIqKgO_MJj`sP4V+;LS^IA2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_hdr_blur.bin b/examples/runtime/shaders/metal/vs_hdr_blur.bin new file mode 100644 index 0000000000000000000000000000000000000000..62e916b1c78aadb95981070f3bb6900f8e6b5ca0 GIT binary patch literal 1880 zcma)+zi!(w5XLP+ZMzW#JKHc5--S19%xc~C*_n&`%CzG4^lZhxvu?Gdpad|)+406m-w(?5O#D;?^ zL;RL!_s?jH*-dc}9K3n}>@tdY2vB;UCEs6Z-$SjVl4W(@B zJ85&3_G?({tKg1U1ol~aXVh9@N9kykI{gTk=zK653`WDjXteUq82(<69c8(}69JJP z34Zy8D=dL(Xi-(ibGpUZgM4_$=nvKMh?%71^41LW4sH=Cz;s|CY0k5hNVFwKdz_MD zz5WC?w2*&`HyhL@KLAxDWX+SYS!2wAXqKrj0T91`+t!wVYYCX0yJn(w$r1vD&qE7r<(;3Rcz# z0X)g1#ukwibiHN#v&Jahc8i85Ww4WQ#y7>TL``m3;_AGF=4TkpWtUdBKe@VR{W!ch zxq7+VPV(Tpbw-^{;f^fV6F}b{JiLfa+lbtX5vW3SWam&hZF_hEgU5cibx~~18IQ-a zu*wz}@Psa&cnqF}jVFd9@Wf;AG;Mo$LW4)KP*)JOXOLKPCgbret+M3>Jdukh8G~nO h<4MNgNygx5+V=3&x35n{v0#`BR_KqI{DOPlA2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_hdr_lum.bin b/examples/runtime/shaders/metal/vs_hdr_lum.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_hdr_lumavg.bin b/examples/runtime/shaders/metal/vs_hdr_lumavg.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_hdr_mesh.bin b/examples/runtime/shaders/metal/vs_hdr_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..172750107c5df4ab3b23547ca4f73ffa1f217a81 GIT binary patch literal 984 zcmaizK~BRk5Je-wDoaiK+yql`6VHm1T-sj1s$Y#%Td@0q(*fU{zAwI_=;thobj8IA1T9&$rV9ooLs|^u3YA_UYzvBGET%8? znW;Om)(9Ulz_O4ObD%^>Rnh_;A1R{ZPa0XLm(1tGre-ZGj$DdB)px4T_D1&_gH8ij z6=ZU>**gY}Y7f)sT@#}W&NXM7Vf;ti2f>$Sp5ugr?Eo|>)tS~z zA=`$b`B{9BW6A||T2dt?7KEFKDx@n$xR}qcU?GJ$ijy^X%u8@J+SEMh<&r6vd=lIJ z1PwfaQ_Djd1Hf`!Q$_mrYX6;XU%-p%cfFr_wAw@<6tnWoM4jG(gvOB>PI zh@g9DlQe4GlJ@?xX_cDBR_I>afj4WgWi7m!E!+F?cHWxUhhRi4s7K5!X(z}V1i2&V q1&QUJptEzg4E{gqLYDRtxV9088F;}zMEQY8G1N-<{LSNwA2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_hdr_tonemap.bin b/examples/runtime/shaders/metal/vs_hdr_tonemap.bin new file mode 100644 index 0000000000000000000000000000000000000000..6fb9ab855e1f9d16f677ad045c03cc18138db3fe GIT binary patch literal 1782 zcmb7^zi!(w5XLnW9rP5O3cG0u{h^HjM)!6I8X#?!zz`Ulc3DWIL6MH!pikPdLzlim zmr^uEN|s{Cn|->w?|$DMcz^ft)vw?G{szIH*Fm64%C>;vf|NVFBA_4==ZmnELaijI zax8CTe)kQpiTK2JN`mJQfKAS^OaabzyrhzH1|A-;l!87gNhZ;Bxm+|^iO!OwT5&Gc zQ70`nX+MXxJ}cP~LtvX{w_dFg?kMfOlG8`PN8`b0G8jzI&Bdz24;?+?L4Rv?&T%5xzKOPe$6q}`)6$G# zYyDY7Z54N`{fW&<*jA|~YZR#-&Xwu-`$jJ|damLyr~?lz=oHq-M>)^LGBDvxF1dB-ZXGdcSQ_1V@mfv!v(SUqqaEVuNSiE_a2q7V&H} zae6{L8$&!BP26vP5pn8?4PKXc-XfllCPpX3^D)Hp(Zv1s7ZD>*Z14n;N-+CM==U`Y Fga1{YRUQBU literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_ibl_mesh.bin b/examples/runtime/shaders/metal/vs_ibl_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..c29d5680e100058cf6cc5f4b2f69eefa0439a7e6 GIT binary patch literal 979 zcmaKq!A`@c{+jeuaNH9(EZcg*4|9Zr2XMx}p|FgAp~nN2cOQrO(}(Ydbk3)q-UX#fBK literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_ibl_skybox.bin b/examples/runtime/shaders/metal/vs_ibl_skybox.bin new file mode 100644 index 0000000000000000000000000000000000000000..ada939a90555c7216e079d937595ed16f5b78455 GIT binary patch literal 781 zcmZ{iv2MaJ5Qd|wQ=a0cDygUy0-X>;w{}29LS;dbWr(4!5*s;Z2vmKyK3P@A1VSj? zlJkG}fA`zd$@A@Z{`Ba1KR2Fd3L#e@S>le8; z2%kQ{GE)qD!01{P0)>(=n=wQ!<_38Xg-J3vs$#1`UM`f#nSszvz z9XD=A<1?ooY-lR^Jam5*#|>&mGW#V_;#$-#|gVW!_tl0aBX*Jr%@Bu z35}SL5L}6i=9p1o7cY>lI2AHUIqDdYrs2jJ;wIT&2q`L3pDhr;9CYYfm5r7 z957#Rn5NyTbo?e;7($msty;O;+v|;i1~Y_0*8=+N-7p56cEB4(-f+MWHzw ME$iLv#rnSY3yGWwq5uE@ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_instancing.bin b/examples/runtime/shaders/metal/vs_instancing.bin new file mode 100644 index 0000000000000000000000000000000000000000..3201b941d1ec63780f2209ecf47c4f62e55dfbe8 GIT binary patch literal 987 zcmZ`&L2kk@5RBBG@`^oGfU1a)v=_v^98i%^dqI(9z))9-jhr>mR((Og(dYCp{X(7K zkQmaNspDOuU@^(xiJGd!XH8!~k6Br#E^T2LFvm9QO9roa& zJZQ3`i*i)!0nD~Lsz}MG&cWWu34?wCJKY`L-fNNdLKm3hkU=x>5p<451$A1`gN~ip k9IM9NZlguD5ay*Lp9iP^tLHitmpsK#D`6Fwb?|-f5Al0WDF6Tf literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_mesh.bin b/examples/runtime/shaders/metal/vs_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..53f57d4439afbd3b08af570bccd9d799a247cdcf GIT binary patch literal 1749 zcmb7E&5oNe5YD0MAx|-<3eprofcz-hW2N@6>PoBbWfdWB;-pl7Q!s3{t3F1LeVx8k zFC81(n1of;OM=HU^L_KpjPGtgy!!d;{h!h3_v_K9uF~QF1<7f3BwGqO9E;a9*YlHK&g6ZZ>P%=g6v*r>y9C z1=8!sFwm!(_mCnuWXVmJMrX8uB50B=%UJ1K*p1@XGhuM=+@$nzJ$`}7=OW!>iCxjr zDS|r5*^Xv+GEj+eX1^)fSA!xVc$!m*($JFAQ(stBuM+#3qy;zw$|pI`k`!gEI62TH zEjF7eY*~TF;;dDQ_ZyHgHO4&D`#mjXciiza_NND+7)Wnsh=+h;C4o5u&yNi$li7tO z6c%+G!WB3zuGbdsonQiy=ew5IOn5msd=5qeezw(lB+=cKQQ-{3;H}B+qPL6Ld@mMe z@pnNcvS15WP7DAq&`ZG*n8?OY-X|dU2xNqA_?^wbrl(? zxdkbUH#DNr@^AJD5lwC+h@!vwx4 zz^T5KydD1?<7VRGsg8-erHb06nh$h4knezE90UVeqS0D{K9j&+gYzrV0G(L!H(In$ Ux^*o{l$6(Hp=JPI)$w@r7vdx?-~a#s literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_oit.bin b/examples/runtime/shaders/metal/vs_oit.bin new file mode 100644 index 0000000000000000000000000000000000000000..7dfd658840ccbf647bb8b0cd3c7cc46257cd2930 GIT binary patch literal 898 zcmZ{i%TB{E6htGzDqnF|s6i-d8}BOiu&Ah1U{ghr+d9Q4u_Na?O+kn+vs9g_55q<5X^0vI?d(b-@&}a(MKHx~XGMxq#7yZlV;Eh?_EU zq&pUI5rz-2k;43nlQJ9VJE%0;Xx2K8nX20JT-)*>pdqMs%Z?u~%?hfbi5<1y{vIA- z;*STj^6+J*HKE_#+|ep%<R3tcJIXVjqlNewDX|n5nR9ttju^f z#8qT{G{65G`r-CE?cH_ZfoD@1S@lHx!x`3K|PkRqa&VQ Q6{8qxB^oC4hF#bB2UHj_egFUf literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_oit_blit.bin b/examples/runtime/shaders/metal/vs_oit_blit.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_particle.bin b/examples/runtime/shaders/metal/vs_particle.bin new file mode 100644 index 0000000000000000000000000000000000000000..be331f304dbb71f520c7487c670ca1abb4824a4e GIT binary patch literal 1204 zcmZ{j!H%0S5QaJIi3jL;P8DoZ3j#SsJ@wKaR;{#ZFA+lC#7VsZgN(^SsyU2rqnk&|QtSWih`~Ru?P4IIi%XxydOQFrLoW0C;hfpo6=Q)I$ zno3$WhXm)s;#VfI*%FR1ZGb&cE+AN;mzS!@IkIRJy|A2%EZe}b68KlV!foung(0WK zoTv7DW^&*g`g#wG2FAglt{nHOtglq&u@2d1@&X?qCeb3+^*4-;4vEXpxLC;oj=va6Lb9@)OJ#xE5OQ8w-NKSlp8S)?uaL)RG_~(MB8I06v8wyoXtM z>-twhs}AuuxwocLr+I1zZqd70a-5M~OGc1nJ}jKY$~l>De_gwR(z!D0W#@R=tt@4y z`Dwt@wD1lBGzZiCDbBvaFERWkoJh&VmXHzK^d50*T)OtXJ%V{if-iMz>qB=nsY$q+ g(2wX1MfVGK??r!UbE)01Ey+|Xh2f7MobP-80K`0yAOHXW literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_raymarching.bin b/examples/runtime/shaders/metal/vs_raymarching.bin new file mode 100644 index 0000000000000000000000000000000000000000..38f1edfabd47619c9cfc6c9cf43e42f4ca985063 GIT binary patch literal 751 zcmZ{iO-{ow5QPI`l~c?LwFpK1$*$@i78R8$x~U?|O`T%o*pV}C1BewDg)49ZoZmWC z*~OzbexKjVdi8K~_4WJXdEeKbXL2t0AZg0-jK&O7hE&Y_9JPrN3PEv!V)a6IOh3xZ zAbj`$iBJ?npd?m8=@D!;6jAf7K{gl-qiEJ@rdE@woFiAVry9GeiB%yhVx{!1f7zsx zeO~5yGI$2G7i4*IYmFVA5DpDB(_ z_m%DD`POUC-HqqDQtAw}$gwO$f{-H#wO}P#mk?A+(2CUNT^!K9=)w_vGk{bXK~Erf zVMaiuSc4J@gIseEmLFj(MeQA;COBhsJ0SM zYimAQ{Uch!Y8s-~?}M#`)Zkx9$#YU%*0D+w8FH!P_z@DL>!-e`rMGhr?T)K=_AX7) zwmk%_>1!g;J7}lPVrVl0%8R40eBMCAJv_k@=HYCDRi9rq+BpozKWJt;((t^}CHS4O X@S-Ak_>&2mU5n(b?kVd281sGsv2DP+ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning.bin b/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..9dcdb61b4ee2672b6b109a6447aec0f5e77a3eae GIT binary patch literal 1223 zcmaKr!A|2a5QcN$u*y@+X_dgP)i&v=;?5q>BBAAis>rl%F>>t4vC{zJy?DHJ94E0M zaBHUH`M>}7`0n=V>__!<6-Do7QKW0ikHB$B>I&}<f{+iEAbGPC?7Cx>oG=5$}oo z!z-=eH3m2^fmIH;;6j#|!Tmi}O40|dNU}(`+s)9EnVw42R8hf$uBGjIn-}`4)d!^` zD{iJS!^A+SaWJEH4oy)TaB99C$N!tai6 zWv#jWg1{9(^H>LHkZ77g^ekm?6nMl6)r7+>v~jXus86 z4xhuE5ORyq$+<`D%&k3w^$fw<5lk5muMjRE@e?vyBY<0V^qgALwk}ZcE(749{L`Ag}%o= zRvpK&V`7#Y8D{4DnHfLae|`7m&%eJx@cKRo>Wa`kP*mWmL>mkR7ARkYmEiS8z$r&! zDf0WDXp8wbTGj$yLV#V)kVpY#l<@-Puv#G@IC-oE9*v{*deP-1GN)t}5rk1EYofA# z`+>gK;tXk@XLq(u*U>Xd=N51RodS1x-IF z*-5i{_MK9wvx04LzDlOnved>ORKw10H-5+2FN5B6DiKFT)zhT%D>*rKT%vL*PGg%t z`0uT{o+E=g>5CM6z+9T@Zi^nG-k>ES6h@wP$_kNZMD9i<&>m-muGgPn!>IhEXZxou z`~a$^mNk#{Zil&AxhQ;*OXmP+1}d9b?I4QsfOw`PcfaE!+`=SQ7Ma-T=~+fwhOu4b zrd8WC?(gL-j9Ox`9&0ncW=wEnAfq7-<*tUDO1M$mg-AesT{kd|#}RyP_<0(r)zl3V zrDN>qNa9vUhtYiYBy@Kpp<6uij5UY4uf(cIqNat1i8==jlX@IYHIug-ZO^FjVQ8kM zkSYp8GiOamGnjc8%rpb*arc(MM;P@Tl30d-KCSpEQleFy#rAc%#&+iMYTjcy_b{D1 zOwA-#JHwQ38E_Px# literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_linear.bin b/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_linear.bin new file mode 100644 index 0000000000000000000000000000000000000000..02994d2b8b602630dfef5627176dd15be2e99c97 GIT binary patch literal 1282 zcmaKr!A|2a5QcN$u*y@+2_>*=rA>OOxU&beNC+;dicISkBgc*$I}IS7nip8daT2El zZtY|||M&kMKiplP{VHFsgW&Tl2y{jH0XQy5RpKpyf+)<^VWp(rDrgv1H;Uao;~kNI zd8rk=hX8vfu*v}ET*v}5cznc4N&2J}iIRA;S@%7u=_y4;6%~BawXj_u^Fsf$I#D{X z{B|7EPn-zV4rb8Kpw24;E{z-BC)K_!;Bs1{bgCQ^}RnzOU-vcJKULo{;{d7)TNO{$f`2a;31 z+5CpB;N~wsxjEOhQWW$ud)CD literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_linear_csm.bin b/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_linear_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..8b833673081212afeb084e1dc225f4964c8b2945 GIT binary patch literal 1971 zcmah}y>8nu5cW`@fS%%}!b(~}mSitR)}kGZ1_+wPFa*Y?T^5okP?YT?=+O7**tPFi zlA=f{qU_B&^Skfoj(mLh^6vBRe}5*EzwalLx+28^3Y6ojL|Y6w<|tcw6=(I9!#P8I z#j}SWXouO?qO3W*dI0;3BAx(B3(9ho!Fr82XXL5ocpCbf&9Xfci!&vy2q(1Yotmjr zzuZLMYW{}lkfrywP1~_Ybkt%DcLGPl-79i@-crhTGiNn&R%2&1G1XX*9SJ@yy%A5} z3$hnsb>cfGP^UTF;cOj8HnPOlA63IP?tcBA(VvE0b}A7=dDZcx&R1e`^t3|dil0M! ze(>KVTqltMPUIpCA2Ac5_P0e3QE$)+kpiZUbxL!dr9|vT#nAz$q}Xge!j=}|vv{+A zI>Ha2Ftxxu)%!hWYUO+(}f5^eY@;?B$tclq>q|K;w_zrT~o+tQyO95O5y zGJAZ*Ya)KIqLT3G0c{@f{MV(wwhJ_GAj1So`>c;BT#pt|+j;dFgmJ=QFx}RX26$jvBaB7svMtT&Pds znQzB*Zk-dz38#uh^}8cNW!fJWdxv&_7ML>d2c{{_WtLJk8l}Wrl2W!@-oT18^_Lxu zpH1)^n3_t}yi}VF5oY27?^DfOPry1br+L>q$h_ELk(!p9-)IlF5Fry$iyhuS6k0n( z-5hJGniRQXc?*7R3^})|Zx60o$>7w6N!LnFm7HI*P$g)W>k6hQ4B)%=H$Y$}(-Op{ zkFeKAjOsob4gJ??p;;RxUF*>gVm(xDCtVkDpeY8Nm~F5!$v~osb#gAzdW&=pr(t#$ z5@X>s%$bI)gV}(CnRU=*+&m?44ZfR@(rOLZjYIE&Y1-f%b&pHWZL^4-*;&7;eSLam z?!twQxGOSDVkV|F>XJm4lfqa^X=BoWdZSKp3qzRgPE*ASwSD5oQ38b4DO bkCbWrOj$Bgrtz*!5LpRk9}4wKdfwzeZheSW literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_omni.bin b/examples/runtime/shaders/metal/vs_shadowmaps_color_lightning_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..ac6332a27f3f0b6d4815d29eb26d698be4bbac66 GIT binary patch literal 1693 zcma)6L2lbH5cHwwL9f_TA*HP#Tk^@swP+7U0|d<_Fa*Y?9TpNPP^7FR=%F9z3;Kor zu@pr~q)i98Nz2`t+2JnlZoj_!^84T4+3e5z*-X}i9)O|}*A?1gD6v4rDyRjQTLEo> z#99=$k7$SaH(E&nF9E>5U`S+ua>{s#3b?;VLU8gR1rC#Fvsn!}smiHXO$1@o$(rk| zUw)$RQk*ayiu`7R84w+!#)uiYGiXL`Cn#{cWsL9U-sr*`O})`sJavb~+@TquH6j#3&ot$wC~~4kqZa6Zb3!+pPq1ZF{nC^1 zGY)z0S__z2f9kF`Z(tbKY`(OzLZ z&2b0SgU0q)UPIUmi>+JjZV#?T%II8%cGplY6kXV(5JhN~>k1Ze62a$Ap9ersrU6KG zABodP8uxt+9Nn+g!mu`qy5}R$*l3V;CsP+`)IoTZ=xs1Gna9!0D0$7%ev3LE&dr=8 zWLml>85p@#na>Bs2vt@61#M(#@ELw tvllKI$ZZloh@O~Hs0}iIJ4kv_$>QxG*+r1_A_&Jqa%z@Iy(B>}`wy&0K{)^b literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_color_texture.bin b/examples/runtime/shaders/metal/vs_shadowmaps_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_depth.bin b/examples/runtime/shaders/metal/vs_shadowmaps_depth.bin new file mode 100644 index 0000000000000000000000000000000000000000..cf6de8b45c354d32e2c1a8b6191676f74d9794a8 GIT binary patch literal 555 zcmaJ;%}c{D6ffc_e}jj2l2)W_*xT4$55vK5mr+92z1B#Yl=Nk*ivPR)wCfn=l>B(_ z_m%DD`POUC-HqqDQtAw}$gwO$f{-H#wO}P#mk?A+(2CUNT^!K9=)w_vGk{bXK~Erf zVMaiuSc4J@gIseEmLFj(MeQA;COBhsJ0SM zYimAQ{Uch!Y8s-~?}M#`)Zkx9$#YU%*0D+w8FH!P_z@DL>!-e`rMGhr?T)K=_AX7) zwmk%_>1!g;J7}lPVrVl0%8R40eBMCAJv_k@=HYCDRi9rq+BpozKWJt;((t^}CHS4O X@S-Ak_>&2mU5n(b?kVd281sGsv2DP+ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_hblur.bin b/examples/runtime/shaders/metal/vs_shadowmaps_hblur.bin new file mode 100644 index 0000000000000000000000000000000000000000..49949ec67e816f932824661569dcac0d4f440dee GIT binary patch literal 1835 zcmb7^y>8nu6oow$D4=KPz^Sm)me3FF#pvD+K@GUg5*Pww(=G#v5-7@%6ZARS_Co3vxoN2!!lMrEh873gJpj*lX znhtC$j8znJ$URf^z(OuIn~!Ll2zV5o^%{crNT12!%tOB4GpYAEb6xc_Qrx^q&AD1jfypXKJ%%}J?~>besV{hcVttQ{Q~<=4BZuMYV^IH8`FYx}K5-iK z!KVgvfJ@|az+Kr7ugI3s)gjqAv}}*ngXU_WJ|X-k>io$?!l@DQAYC83vnDCQBS^_b z(#!H!5&M={4Dn(# YabNx_Vq%Fko@6SQ!h9v*yX!cU|7hcAsQ>@~ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_packdepth.bin b/examples/runtime/shaders/metal/vs_shadowmaps_packdepth.bin new file mode 100644 index 0000000000000000000000000000000000000000..1c1ec34d8c7d2c2f9cdd0595f55c0aac73bbf972 GIT binary patch literal 618 zcmZ`$Pfvp|6eq?LpW>Yi7(=$mZP{H9i%S-FA*AV8!J5*N^2$)-xA4Pyls{#_GH>n6 z`~7|U-P3LHqkkPIx^Wy+a+!goIV%gAFvuBFv2sh)CPAnL#SMzx8$B}pEDMA1WINIfj4g!~3ZXg+{mc6*d8%|i z+6(It49V4zi9Khhtyb?HxMCVvJx^v$*|ZzVC3sh&lN<%%P1X`=#t4^j`~ZoP%~xJ@ zW$oNShcON2VA7Q7t{mTOOPmQ<2i>-sB*(m{s3yyHG`xcotYH}}X0!U^vzhh|gYhu! oPEQ(4dtQUr8w)Nfg8Q?KKf#U%7(~>RuiexPjh0rdY1(z2KStr%!~g&Q literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_packdepth_linear.bin b/examples/runtime/shaders/metal/vs_shadowmaps_packdepth_linear.bin new file mode 100644 index 0000000000000000000000000000000000000000..a5471e7cb393c10b7c2dce4894970398bef6d4f9 GIT binary patch literal 629 zcmZ`$Piw+36fa|^euZ7$X|&r2irq=P&x1^md65#Lrkar^C4JG(v2U{vy0nddD(;lz z@qT|ZpS|7xK8z1Rklh7=Err^EVmU7hw&IX;WO5jmXzU81k_;y(XIr-BW~>T}@ErnV zQZpO?qlGR73awzVV2DO6E%K-rr|B^KxlQtJvBQ$UM$+k-=Ezu6cp=!)H7{`cFXx96 znKt>^T2duoX|C5?&IR93js9%FJ8qCy-BjL?PdZ^jL3ATF%~4X}a+b(8oC=kuFR;?e zJ=IlD-p(U580#=gn`PWI#l&Gq_;tQ;A-zh{bP+!uKgM;A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_texture_lightning.bin b/examples/runtime/shaders/metal/vs_shadowmaps_texture_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e7362934bb67c248b286ec8d885de3a0cedf436 GIT binary patch literal 1035 zcmaiz!B4_46vmh6X@A8#8Afy&8#lsT6Nw~5E`%&)6s*}=(!CDU=wHskZtF&esJHFq zdwsut-|KvKfBiK%K040v%5hZA_!cMAY%e zZ0gphQoL4&7F6mxcO5o2GOkYuvDJscL3VH=y*ZBseabau# literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_unpackdepth.bin b/examples/runtime/shaders/metal/vs_shadowmaps_unpackdepth.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowmaps_vblur.bin b/examples/runtime/shaders/metal/vs_shadowmaps_vblur.bin new file mode 100644 index 0000000000000000000000000000000000000000..123787fa57ab19c2b66a68065b06bbc91622f617 GIT binary patch literal 1835 zcma)+O^?$s5QcL=LdtL8;1g;Wu=3&LQgMgFib{pOtg6V{y4|3B$#L2&D}E_QuKWWo zOkKy$*COAV@%Vk`nVI@-^Xb*E-+%u&&YRbc)6{8kLcTX@UucGYDCkR@2VD@(rj z25G)b`#JCRr4a)&f{t0THg28q!0BY1v_C;6>d!`l*=RT$B`f!Zg1;5%q2#$~4?#_G zO4<1 zAdy!m$`je^?l<~~7FSi=YYKisH_8mcV{&|6YEjau%2_GZ0G~nE$KEAP$J(bK5WQk! zv!IupYo)lqNd3A7LxIXVNm+)vYj(-&yXXaDF}$W7&5@*$Jx;H#@H>A^azF|A`GD`7hx@Ir%Vx0DH?mDZv(` zMDE2)q_gr9;=m9~Jo(`1EsT1^kqvQVO&pGhBOBt#npn$Eh(kjx@rJ~4k2tm=j;)Ew eh&Z+(j;)Ec{DhboVu{C@Xn3Js33zv1*ZBt{g=nV$ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowvolume_color_lightning.bin b/examples/runtime/shaders/metal/vs_shadowvolume_color_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e782b0cb4c8cef6768ae36a8b29d89553b3fcbb GIT binary patch literal 931 zcmaiy!A^rf5Qa(g!~=MqlYvGFh2EOp_0ZVZ*h|xpZM)Ppu#jbzqK$9ivwC)cg@U5q zVDiuW-~KbJ<=y4u>GR4kJ}wMHW{e+zlbB{H*-?lol4xpXDC7>IhzQOxT0WCK756-q z2qzODj1qzqAOTNAOd?pX38G+IiPUoK&1TwYe5FZ~j3G;SPc^Po@54q962CbeqF`|z z(@g9c?%@b##;_tkun1Br8WKW}2)!4kWUtfsir5c)3fwbs{q}g?F zbHX@S11SbEMgdciWJnG)V0^Q=fnCDYFaH+1#=M5AN2;E!3_~iaq;0d@N6$bLRO+Nn zV*(hbIT69QEH&TG5oR!U++MACeN)w%&^hm~)YLP+Odjrx>zAby9+9|*_SRDXq2 VU)_HMeoG)IO2Kus>aI-F_ySg5Ju?6R literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowvolume_color_texture.bin b/examples/runtime/shaders/metal/vs_shadowvolume_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowvolume_svback.bin b/examples/runtime/shaders/metal/vs_shadowvolume_svback.bin new file mode 100644 index 0000000000000000000000000000000000000000..442d4977a71e3289a5194140b666bcf3660f8019 GIT binary patch literal 730 zcma))&q~8U5XOUe%2Uiq690sXy%ldB6f72sy_B$Q+ex~z*$un1ZLIi&zLc9Zp^X$Z zr(|~Lo8R|MX4A*>pn1N|g1}j!a!|ZLTk<7BfyCt~v}D|pppu-%B&Tb>Li40bNAM8> zWKwgw1I|iq1qrQSKIcS6EF57ph|_cwex4S2anw^8LN3|lAk!)SBJrw3rcH4m8CFAZ ztk5fzGlAQQ(Ql)UvOd`eLypU5k*~>*Vpw^1)?+^iOAYA;4Pn){+mf~sjJZ${oyda~ zB$@C5SmHS{q0;mkmRk8w^&`L*`~sRD=X(||%g{85#bKRnZ$L}X+}1~qs3B(_ z_m%DD`POUC-HqqDQtAw}$gwO$f{-H#wO}P#mk?A+(2CUNT^!K9=)w_vGk{bXK~Erf zVMaiuSc4J@gIseEmLFj(MeQA;COBhsJ0SM zYimAQ{Uch!Y8s-~?}M#`)Zkx9$#YU%*0D+w8FH!P_z@DL>!-e`rMGhr?T)K=_AX7) zwmk%_>1!g;J7}lPVrVl0%8R40eBMCAJv_k@=HYCDRi9rq+BpozKWJt;((t^}CHS4O X@S-Ak_>&2mU5n(b?kVd281sGsv2DP+ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowvolume_svside.bin b/examples/runtime/shaders/metal/vs_shadowvolume_svside.bin new file mode 100644 index 0000000000000000000000000000000000000000..3b89360035987c9806793c50cbb6c7e2356eab4e GIT binary patch literal 931 zcma))&rZWI48|+LsZZe(YWY)bW4CEH4j_R*LU2J-6t;8=OOq*ewgTcUco$AQ7I)mN zT~{;&J*A25@AJ>Tzdhgo{P>y&!TVkixLoQfXr76D!N&qJfm{v39IYE86pG^&s@oZ# z2z#Ly4&gNfNR{Du3Y;xWE>Ri{4-XvC%14JH>cpebppNQM6pCVOjGc5^VO<~gwp;7k zVN0wJQ^jr?wOV*f36^X=2!E+}r)6qv*0}E%eQ+!@6QS;DqdavCjx%7KqIn~qL_fU$1*?+-9s*ON&z!}3w45JhWu^s<>-QowKs z-J}!8o?ug@39cssM-XX3&6Ru+5!Ece9bqR`N68~pv8LDON z17?dQx2#uQ)#qeIAgHa@9qG~ShS!>8vb}!8svk$*TN^|M>(XAo%B98J2Hs$OE`_Z? NXZ5->n%G+y2H)WDL4*JR literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowvolume_texture.bin b/examples/runtime/shaders/metal/vs_shadowvolume_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_shadowvolume_texture_lightning.bin b/examples/runtime/shaders/metal/vs_shadowvolume_texture_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e7362934bb67c248b286ec8d885de3a0cedf436 GIT binary patch literal 1035 zcmaiz!B4_46vmh6X@A8#8Afy&8#lsT6Nw~5E`%&)6s*}=(!CDU=wHskZtF&esJHFq zdwsut-|KvKfBiK%K040v%5hZA_!cMAY%e zZ0gphQoL4&7F6mxcO5o2GOkYuvDJscL3VH=y*ZBseabau# literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_sms_mesh.bin b/examples/runtime/shaders/metal/vs_sms_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..51bac010fba2c9a131edc1c88ddbbe5352f11084 GIT binary patch literal 1190 zcmaKrO-{ow5QVc~fpUsjp@g3(ZPHc69u^2B1RGRErge*vV@Hmi1`y}qx;T#0*bvw? z)A79Ty|Ewfua1tZ*Q+4-Itl_+6Sf0}N?ccHjiJO6(Pdamq1F;wisX%?_b+IJ#Wkyx zgpUwlOF5D`pn`ExA_`AWNJ>GTmBdjRuU5;UC(}I@uZbj_d0jKp^*JqctK<)*9WCz0 zF~dYpsIf2y?Hrn-*5G`<=3HzJ^-R|rg7?et5BUd1w%V8Dw9P>kCEsBBXbuhu`1L!% zUk@s|`Hzy_iw>|gS`8Kww|=J9s?GTZ5eCsj=tU`ML3Dz(L_1s%wpyLTnlt^$er(Co zpMW`|^qFV1-C|)D6NevqHJ*SaFx`B_2U%7P62+`54Zo8;T*53#y;}SBuB$y^GOoMp z>4zrn_AVjn!4fCYE;%?o$i%-f=8oiC%SHVZq6O_8JcW6Z#&FT`O$^AK0h#fUdOotG z_hGHhyHCf$aJ#g0uSedoWl*k@(M1+_BPK|4ha{g!G`A%GCEDNME{ES?jtIFy=;Z8! zwdNKM!D517VF|{JhZhHD5V;9yEgfSzi;YjaZtvN7jKgyn5f|p5z)}fjuZw;wVHkV^ Dh+&av literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_sms_shadow.bin b/examples/runtime/shaders/metal/vs_sms_shadow.bin new file mode 100644 index 0000000000000000000000000000000000000000..cf6de8b45c354d32e2c1a8b6191676f74d9794a8 GIT binary patch literal 555 zcmaJ;%}c{D6ffc_e}jj2l2)W_*xT4$55vK5mr+92z1B#Yl=Nk*ivPR)wCfn=l>B(_ z_m%DD`POUC-HqqDQtAw}$gwO$f{-H#wO}P#mk?A+(2CUNT^!K9=)w_vGk{bXK~Erf zVMaiuSc4J@gIseEmLFj(MeQA;COBhsJ0SM zYimAQ{Uch!Y8s-~?}M#`)Zkx9$#YU%*0D+w8FH!P_z@DL>!-e`rMGhr?T)K=_AX7) zwmk%_>1!g;J7}lPVrVl0%8R40eBMCAJv_k@=HYCDRi9rq+BpozKWJt;((t^}CHS4O X@S-Ak_>&2mU5n(b?kVd281sGsv2DP+ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_sms_shadow_pd.bin b/examples/runtime/shaders/metal/vs_sms_shadow_pd.bin new file mode 100644 index 0000000000000000000000000000000000000000..1c1ec34d8c7d2c2f9cdd0595f55c0aac73bbf972 GIT binary patch literal 618 zcmZ`$Pfvp|6eq?LpW>Yi7(=$mZP{H9i%S-FA*AV8!J5*N^2$)-xA4Pyls{#_GH>n6 z`~7|U-P3LHqkkPIx^Wy+a+!goIV%gAFvuBFv2sh)CPAnL#SMzx8$B}pEDMA1WINIfj4g!~3ZXg+{mc6*d8%|i z+6(It49V4zi9Khhtyb?HxMCVvJx^v$*|ZzVC3sh&lN<%%P1X`=#t4^j`~ZoP%~xJ@ zW$oNShcON2VA7Q7t{mTOOPmQ<2i>-sB*(m{s3yyHG`xcotYH}}X0!U^vzhh|gYhu! oPEQ(4dtQUr8w)Nfg8Q?KKf#U%7(~>RuiexPjh0rdY1(z2KStr%!~g&Q literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_stencil_color.bin b/examples/runtime/shaders/metal/vs_stencil_color.bin new file mode 100644 index 0000000000000000000000000000000000000000..cf6de8b45c354d32e2c1a8b6191676f74d9794a8 GIT binary patch literal 555 zcmaJ;%}c{D6ffc_e}jj2l2)W_*xT4$55vK5mr+92z1B#Yl=Nk*ivPR)wCfn=l>B(_ z_m%DD`POUC-HqqDQtAw}$gwO$f{-H#wO}P#mk?A+(2CUNT^!K9=)w_vGk{bXK~Erf zVMaiuSc4J@gIseEmLFj(MeQA;COBhsJ0SM zYimAQ{Uch!Y8s-~?}M#`)Zkx9$#YU%*0D+w8FH!P_z@DL>!-e`rMGhr?T)K=_AX7) zwmk%_>1!g;J7}lPVrVl0%8R40eBMCAJv_k@=HYCDRi9rq+BpozKWJt;((t^}CHS4O X@S-Ak_>&2mU5n(b?kVd281sGsv2DP+ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_stencil_color_lightning.bin b/examples/runtime/shaders/metal/vs_stencil_color_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e782b0cb4c8cef6768ae36a8b29d89553b3fcbb GIT binary patch literal 931 zcmaiy!A^rf5Qa(g!~=MqlYvGFh2EOp_0ZVZ*h|xpZM)Ppu#jbzqK$9ivwC)cg@U5q zVDiuW-~KbJ<=y4u>GR4kJ}wMHW{e+zlbB{H*-?lol4xpXDC7>IhzQOxT0WCK756-q z2qzODj1qzqAOTNAOd?pX38G+IiPUoK&1TwYe5FZ~j3G;SPc^Po@54q962CbeqF`|z z(@g9c?%@b##;_tkun1Br8WKW}2)!4kWUtfsir5c)3fwbs{q}g?F zbHX@S11SbEMgdciWJnG)V0^Q=fnCDYFaH+1#=M5AN2;E!3_~iaq;0d@N6$bLRO+Nn zV*(hbIT69QEH&TG5oR!U++MACeN)w%&^hm~)YLP+Odjrx>zAby9+9|*_SRDXq2 VU)_HMeoG)IO2Kus>aI-F_ySg5Ju?6R literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_stencil_color_texture.bin b/examples/runtime/shaders/metal/vs_stencil_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_stencil_texture.bin b/examples/runtime/shaders/metal/vs_stencil_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..10fb2d926e2aac1c1d4353da5d043c5fff7fa15e GIT binary patch literal 659 zcmZ{iPfNov7>A2^>W7f`B%4TCU2k=s^)MU^cNryQT{(o2$i5XN3ndTTc%%RVGzE3 zfJ`WgQ=p_!B}c9#tk)D#^Nm3^nv9bqKBgXQ3R#sZrMD9&7B;b;%dA&}4lIJ5Ad8-M z1UsaCPm2A24t|q7Q#$Xj5mgZwlB+EfE6xrJtv;IJJ=3b_3s4W(pDT2EbW;~c3yugrh`T^>wW@xnRXjZlF Fdw+r_<-h;{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_stencil_texture_lightning.bin b/examples/runtime/shaders/metal/vs_stencil_texture_lightning.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e7362934bb67c248b286ec8d885de3a0cedf436 GIT binary patch literal 1035 zcmaiz!B4_46vmh6X@A8#8Afy&8#lsT6Nw~5E`%&)6s*}=(!CDU=wHskZtF&esJHFq zdwsut-|KvKfBiK%K040v%5hZA_!cMAY%e zZ0gphQoL4&7F6mxcO5o2GOkYuvDJscL3VH=y*ZBseabau# literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_tree.bin b/examples/runtime/shaders/metal/vs_tree.bin new file mode 100644 index 0000000000000000000000000000000000000000..851e55ebc2e5ec3de15a7de85254c3a310a5baf4 GIT binary patch literal 1113 zcmaKrO-{ow5QVc~l~c?LH3&kQRBWp50SSSGV1ug2ZQWv&*p)L*3y2eNQf`6mxT%d= zcFAadzIku_{CIuxQ(t{Y(d|hTsfO_ta8lD|P39D8iliFH4N5gf*j5DZuzGwY3o38; zS|NPK0Lw}cEP#|;$eL8}@+C5AkEp)VHbTf{Rz&vrb)MD)A8Er?P z%33UF^=u2BY=7bpQoPxwEtOh>P;s}RbK#CK4ub=hlr>f*)50}KRwnEqXOZfc3g1vK*Sw?mOMU1cqrA#J2ArI@%GY z#3*f#!Q^yJQ{S`+3_7sXlg>y4XZ@JOtF_kY{#}*ud!=Ub<$)pT#&)nb+%J-Q(D{Ky za@+3zMY;>=X_UXioE)6C_I9~5@dmtg(DbryD}}Ndwpk+r&$6QM*C14m$1|4 d2vN}!IY+z);Ct6UQ9~*zD#@L^`hep&`UMShduIRu literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_update.bin b/examples/runtime/shaders/metal/vs_update.bin new file mode 100644 index 0000000000000000000000000000000000000000..37e19eade16de8e900a4a915974b707412aa9d71 GIT binary patch literal 659 zcmZ{hO-sW-5Qc+z+8-fvl13!7m|Lx9JroPYUP@TD>87siN7&4^QSs&vH(yP&rQVWZ zW}bJSSuLNh&CSze5d2;Rfh&aGfo6&qIZHVxj!aHTf!3u6rDQlqxqN3^ZeMin5WWdO zCJn;}U^F*{Kw&hj*9_5$jYB>fhe