From bba2ef8031f6aca1ed882094414aa281594a7af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sat, 10 May 2014 20:51:44 -0700 Subject: [PATCH] Added predefined uniforms for inverted view/proj/viewproj matrices. shaderc: Added raw shader support. shaderc: Fixed uniform types. --- .../src/glsl/glsl_optimizer.cpp | 6 + .../glsl-optimizer/src/glsl/glsl_optimizer.h | 1 + examples/01-cubes/cubes.cpp | 9 +- examples/02-metaballs/metaballs.cpp | 11 +- examples/02-metaballs/vs_metaballs.bin.h | 170 ++-- examples/03-raymarch/fs_raymarching.sc | 4 +- examples/03-raymarch/raymarch.cpp | 11 +- examples/05-instancing/instancing.cpp | 9 +- examples/06-bump/bump.cpp | 15 +- examples/07-callback/callback.cpp | 9 +- examples/08-update/update.cpp | 9 +- examples/09-hdr/hdr.cpp | 14 +- examples/14-shadowvolumes/shadowvolumes.cpp | 18 +- .../shadowmaps_simple.cpp | 8 +- examples/16-shadowmaps/shadowmaps.cpp | 21 +- examples/17-drawstress/drawstress.cpp | 9 +- examples/17-drawstress/vs_drawstress.bin.h | 141 +-- examples/18-ibl/ibl.cpp | 11 +- examples/19-oit/oit.cpp | 24 +- examples/common/bgfx_utils.cpp | 21 +- examples/common/bgfx_utils.h | 1 + examples/common/font/text_buffer_manager.cpp | 11 +- examples/common/font/vs_font_basic.bin.h | 152 +-- .../common/font/vs_font_distance_field.bin.h | 152 +-- .../vs_font_distance_field_subpixel.bin.h | 152 +-- examples/common/imgui/imgui.cpp | 20 +- examples/common/imgui/vs_imgui_color.bin.h | 140 +-- examples/common/imgui/vs_imgui_texture.bin.h | 153 +-- examples/common/nanovg/fs_nanovg_fill.bin.h | 391 ++++---- examples/common/nanovg/nanovg_bgfx.cpp | 9 +- examples/common/nanovg/vs_nanovg_fill.bin.h | 158 ++-- examples/runtime/shaders/dx11/fs_bump.bin | Bin 4640 -> 4776 bytes .../runtime/shaders/dx11/fs_hdr_bright.bin | Bin 3421 -> 3557 bytes examples/runtime/shaders/dx11/fs_hdr_lum.bin | Bin 3377 -> 3513 bytes .../runtime/shaders/dx11/fs_hdr_lumavg.bin | Bin 3977 -> 4113 bytes examples/runtime/shaders/dx11/fs_hdr_mesh.bin | Bin 2791 -> 2927 bytes .../runtime/shaders/dx11/fs_hdr_skybox.bin | Bin 1722 -> 1858 bytes .../runtime/shaders/dx11/fs_hdr_tonemap.bin | Bin 3578 -> 3714 bytes examples/runtime/shaders/dx11/fs_ibl_mesh.bin | Bin 3823 -> 3959 bytes .../runtime/shaders/dx11/fs_ibl_skybox.bin | Bin 1669 -> 1805 bytes examples/runtime/shaders/dx11/fs_mesh.bin | Bin 2411 -> 2547 bytes examples/runtime/shaders/dx11/fs_oit.bin | Bin 1044 -> 1180 bytes examples/runtime/shaders/dx11/fs_oit_wb.bin | Bin 1452 -> 1588 bytes .../shaders/dx11/fs_oit_wb_separate.bin | Bin 1392 -> 1528 bytes .../runtime/shaders/dx11/fs_raymarching.bin | Bin 10839 -> 10975 bytes .../fs_shadowmaps_color_lightning_esm.bin | Bin 5004 -> 5140 bytes .../fs_shadowmaps_color_lightning_esm_csm.bin | Bin 8196 -> 8332 bytes ..._shadowmaps_color_lightning_esm_linear.bin | Bin 4976 -> 5112 bytes ...dowmaps_color_lightning_esm_linear_csm.bin | Bin 8084 -> 8220 bytes ...owmaps_color_lightning_esm_linear_omni.bin | Bin 6806 -> 6942 bytes ...fs_shadowmaps_color_lightning_esm_omni.bin | Bin 6834 -> 6970 bytes .../fs_shadowmaps_color_lightning_hard.bin | Bin 4888 -> 5024 bytes ...fs_shadowmaps_color_lightning_hard_csm.bin | Bin 7732 -> 7868 bytes ...shadowmaps_color_lightning_hard_linear.bin | Bin 4860 -> 4996 bytes ...owmaps_color_lightning_hard_linear_csm.bin | Bin 7620 -> 7756 bytes ...wmaps_color_lightning_hard_linear_omni.bin | Bin 6690 -> 6826 bytes ...s_shadowmaps_color_lightning_hard_omni.bin | Bin 6718 -> 6854 bytes .../fs_shadowmaps_color_lightning_pcf.bin | Bin 13349 -> 13485 bytes .../fs_shadowmaps_color_lightning_pcf_csm.bin | Bin 41649 -> 41785 bytes ..._shadowmaps_color_lightning_pcf_linear.bin | Bin 12273 -> 12409 bytes ...dowmaps_color_lightning_pcf_linear_csm.bin | Bin 37265 -> 37401 bytes ...owmaps_color_lightning_pcf_linear_omni.bin | Bin 14039 -> 14175 bytes ...fs_shadowmaps_color_lightning_pcf_omni.bin | Bin 15127 -> 15263 bytes .../fs_shadowmaps_color_lightning_vsm.bin | Bin 5180 -> 5316 bytes .../fs_shadowmaps_color_lightning_vsm_csm.bin | Bin 8900 -> 9036 bytes ..._shadowmaps_color_lightning_vsm_linear.bin | Bin 5152 -> 5288 bytes ...dowmaps_color_lightning_vsm_linear_csm.bin | Bin 8788 -> 8924 bytes ...owmaps_color_lightning_vsm_linear_omni.bin | Bin 6982 -> 7118 bytes ...fs_shadowmaps_color_lightning_vsm_omni.bin | Bin 7010 -> 7146 bytes .../dx11/fs_shadowmaps_color_texture.bin | Bin 1456 -> 1592 bytes .../dx11/fs_shadowmaps_unpackdepth.bin | Bin 1342 -> 1478 bytes .../dx11/fs_shadowmaps_unpackdepth_vsm.bin | Bin 1342 -> 1478 bytes .../dx11/fs_shadowvolume_color_lightning.bin | Bin 3696 -> 3832 bytes .../dx11/fs_shadowvolume_color_texture.bin | Bin 1456 -> 1592 bytes .../dx11/fs_shadowvolume_svbackcolor.bin | Bin 1028 -> 1164 bytes .../dx11/fs_shadowvolume_svfrontcolor.bin | Bin 1028 -> 1164 bytes .../dx11/fs_shadowvolume_svsidecolor.bin | Bin 1056 -> 1192 bytes .../dx11/fs_shadowvolume_svsidetex.bin | Bin 1327 -> 1463 bytes .../fs_shadowvolume_texture_lightning.bin | Bin 3954 -> 4090 bytes examples/runtime/shaders/dx11/fs_sms_mesh.bin | Bin 5655 -> 5791 bytes .../runtime/shaders/dx11/fs_sms_mesh_pd.bin | Bin 6471 -> 6607 bytes .../dx11/fs_stencil_color_lightning.bin | Bin 3317 -> 3453 bytes .../shaders/dx11/fs_stencil_color_texture.bin | Bin 1456 -> 1592 bytes .../dx11/fs_stencil_texture_lightning.bin | Bin 3589 -> 3725 bytes examples/runtime/shaders/dx11/fs_tree.bin | Bin 2327 -> 2463 bytes examples/runtime/shaders/dx11/vs_bump.bin | Bin 2806 -> 2942 bytes .../shaders/dx11/vs_bump_instanced.bin | Bin 2880 -> 3016 bytes examples/runtime/shaders/dx11/vs_callback.bin | Bin 1434 -> 1570 bytes examples/runtime/shaders/dx11/vs_cubes.bin | Bin 1232 -> 1368 bytes examples/runtime/shaders/dx11/vs_hdr_blur.bin | Bin 1802 -> 1938 bytes .../runtime/shaders/dx11/vs_hdr_bright.bin | Bin 1240 -> 1376 bytes examples/runtime/shaders/dx11/vs_hdr_lum.bin | Bin 1240 -> 1376 bytes .../runtime/shaders/dx11/vs_hdr_lumavg.bin | Bin 1240 -> 1376 bytes examples/runtime/shaders/dx11/vs_hdr_mesh.bin | Bin 1694 -> 1830 bytes .../runtime/shaders/dx11/vs_hdr_skybox.bin | Bin 1240 -> 1376 bytes .../runtime/shaders/dx11/vs_hdr_tonemap.bin | Bin 1750 -> 1886 bytes examples/runtime/shaders/dx11/vs_ibl_mesh.bin | Bin 1765 -> 1901 bytes .../runtime/shaders/dx11/vs_ibl_skybox.bin | Bin 1424 -> 1560 bytes .../runtime/shaders/dx11/vs_instancing.bin | Bin 1559 -> 1695 bytes examples/runtime/shaders/dx11/vs_mesh.bin | Bin 2183 -> 2319 bytes examples/runtime/shaders/dx11/vs_oit.bin | Bin 1526 -> 1662 bytes examples/runtime/shaders/dx11/vs_oit_blit.bin | Bin 1240 -> 1376 bytes .../runtime/shaders/dx11/vs_raymarching.bin | Bin 1340 -> 1476 bytes .../shaders/dx11/vs_shadowmaps_color.bin | Bin 1128 -> 1264 bytes .../dx11/vs_shadowmaps_color_lightning.bin | Bin 1987 -> 2123 bytes .../vs_shadowmaps_color_lightning_csm.bin | Bin 3096 -> 3232 bytes .../vs_shadowmaps_color_lightning_linear.bin | Bin 2027 -> 2163 bytes ..._shadowmaps_color_lightning_linear_csm.bin | Bin 3256 -> 3392 bytes ...shadowmaps_color_lightning_linear_omni.bin | Bin 3167 -> 3303 bytes .../vs_shadowmaps_color_lightning_omni.bin | Bin 3007 -> 3143 bytes .../dx11/vs_shadowmaps_color_texture.bin | Bin 1240 -> 1376 bytes .../shaders/dx11/vs_shadowmaps_depth.bin | Bin 1128 -> 1264 bytes .../shaders/dx11/vs_shadowmaps_hblur.bin | Bin 1911 -> 2047 bytes .../shaders/dx11/vs_shadowmaps_packdepth.bin | Bin 1216 -> 1352 bytes .../dx11/vs_shadowmaps_packdepth_linear.bin | Bin 1224 -> 1360 bytes .../shaders/dx11/vs_shadowmaps_texture.bin | Bin 1240 -> 1376 bytes .../dx11/vs_shadowmaps_texture_lightning.bin | Bin 1694 -> 1830 bytes .../dx11/vs_shadowmaps_unpackdepth.bin | Bin 1240 -> 1376 bytes .../shaders/dx11/vs_shadowmaps_vblur.bin | Bin 1911 -> 2047 bytes .../dx11/vs_shadowvolume_color_lightning.bin | Bin 1808 -> 1944 bytes .../dx11/vs_shadowvolume_color_texture.bin | Bin 1240 -> 1376 bytes .../shaders/dx11/vs_shadowvolume_svback.bin | Bin 1374 -> 1510 bytes .../shaders/dx11/vs_shadowvolume_svfront.bin | Bin 1128 -> 1264 bytes .../shaders/dx11/vs_shadowvolume_svside.bin | Bin 1542 -> 1678 bytes .../shaders/dx11/vs_shadowvolume_texture.bin | Bin 1240 -> 1376 bytes .../vs_shadowvolume_texture_lightning.bin | Bin 1848 -> 1984 bytes examples/runtime/shaders/dx11/vs_sms_mesh.bin | Bin 1943 -> 2079 bytes .../runtime/shaders/dx11/vs_sms_shadow.bin | Bin 1128 -> 1264 bytes .../runtime/shaders/dx11/vs_sms_shadow_pd.bin | Bin 1216 -> 1352 bytes .../runtime/shaders/dx11/vs_stencil_color.bin | Bin 1128 -> 1264 bytes .../dx11/vs_stencil_color_lightning.bin | Bin 1626 -> 1762 bytes .../shaders/dx11/vs_stencil_color_texture.bin | Bin 1240 -> 1376 bytes .../shaders/dx11/vs_stencil_texture.bin | Bin 1240 -> 1376 bytes .../dx11/vs_stencil_texture_lightning.bin | Bin 1694 -> 1830 bytes examples/runtime/shaders/dx11/vs_tree.bin | Bin 1806 -> 1942 bytes examples/runtime/shaders/dx11/vs_update.bin | Bin 1240 -> 1376 bytes examples/runtime/shaders/dx9/fs_ibl_mesh.bin | Bin 1638 -> 1638 bytes .../runtime/shaders/dx9/fs_raymarching.bin | Bin 47430 -> 47430 bytes .../dx9/fs_shadowmaps_color_lightning_esm.bin | Bin 2719 -> 2719 bytes .../fs_shadowmaps_color_lightning_esm_csm.bin | Bin 4443 -> 4443 bytes ..._shadowmaps_color_lightning_esm_linear.bin | Bin 2715 -> 2715 bytes ...dowmaps_color_lightning_esm_linear_csm.bin | Bin 4407 -> 4407 bytes ...owmaps_color_lightning_esm_linear_omni.bin | Bin 3769 -> 3769 bytes ...fs_shadowmaps_color_lightning_esm_omni.bin | Bin 3773 -> 3773 bytes .../fs_shadowmaps_color_lightning_hard.bin | Bin 2679 -> 2679 bytes ...fs_shadowmaps_color_lightning_hard_csm.bin | Bin 4311 -> 4311 bytes ...shadowmaps_color_lightning_hard_linear.bin | Bin 2675 -> 2675 bytes ...owmaps_color_lightning_hard_linear_csm.bin | Bin 4355 -> 4355 bytes ...wmaps_color_lightning_hard_linear_omni.bin | Bin 3741 -> 3741 bytes ...s_shadowmaps_color_lightning_hard_omni.bin | Bin 3725 -> 3725 bytes .../dx9/fs_shadowmaps_color_lightning_pcf.bin | Bin 7584 -> 7584 bytes .../fs_shadowmaps_color_lightning_pcf_csm.bin | Bin 24432 -> 24432 bytes ..._shadowmaps_color_lightning_pcf_linear.bin | Bin 7260 -> 7260 bytes ...dowmaps_color_lightning_pcf_linear_csm.bin | Bin 22252 -> 22252 bytes ...owmaps_color_lightning_pcf_linear_omni.bin | Bin 7958 -> 7958 bytes ...fs_shadowmaps_color_lightning_pcf_omni.bin | Bin 8662 -> 8662 bytes .../dx9/fs_shadowmaps_color_lightning_vsm.bin | Bin 2799 -> 2799 bytes .../fs_shadowmaps_color_lightning_vsm_csm.bin | Bin 4827 -> 4827 bytes ..._shadowmaps_color_lightning_vsm_linear.bin | Bin 2783 -> 2783 bytes ...dowmaps_color_lightning_vsm_linear_csm.bin | Bin 4763 -> 4763 bytes ...owmaps_color_lightning_vsm_linear_omni.bin | Bin 3869 -> 3869 bytes ...fs_shadowmaps_color_lightning_vsm_omni.bin | Bin 3885 -> 3885 bytes .../dx9/fs_shadowvolume_color_lightning.bin | Bin 1935 -> 1935 bytes .../dx9/fs_shadowvolume_texture_lightning.bin | Bin 2097 -> 2097 bytes .../dx9/fs_stencil_color_lightning.bin | Bin 1992 -> 1992 bytes .../dx9/fs_stencil_texture_lightning.bin | Bin 2168 -> 2168 bytes examples/runtime/shaders/dx9/fs_tree.bin | Bin 982 -> 982 bytes examples/runtime/shaders/dx9/vs_ibl_mesh.bin | Bin 672 -> 672 bytes include/bgfx.h | 14 +- src/bgfx.cpp | 26 +- src/bgfx_p.h | 12 +- src/bgfx_shader.sh | 4 + src/renderer_d3d11.cpp | 49 + src/renderer_d3d9.cpp | 49 + src/renderer_gl.cpp | 600 +++++++----- src/vertexdecl.cpp | 12 +- tools/shaderc/shaderc.cpp | 892 ++++++++++-------- 177 files changed, 1969 insertions(+), 1549 deletions(-) diff --git a/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp b/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp index ee4a3179f..54de830fb 100644 --- a/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp +++ b/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp @@ -384,6 +384,12 @@ glslopt_shader* glslopt_optimize (glslopt_ctx* ctx, glslopt_shader_type type, co shader->shader->Stage = MESA_SHADER_FRAGMENT; printMode = kPrintGlslFragment; break; + case kGlslOptShaderCompute: + shader->shader->Type = GL_COMPUTE_SHADER; + shader->shader->Stage = MESA_SHADER_COMPUTE; + printMode = kPrintGlslFragment; + break; + } if (!shader->shader->Type) { diff --git a/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.h b/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.h index 6f95f4608..88cf56276 100644 --- a/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.h +++ b/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.h @@ -27,6 +27,7 @@ struct glslopt_ctx; enum glslopt_shader_type { kGlslOptShaderVertex = 0, kGlslOptShaderFragment, + kGlslOptShaderCompute, }; // Options flags for glsl_optimize diff --git a/examples/01-cubes/cubes.cpp b/examples/01-cubes/cubes.cpp index 0647091e2..13a131095 100644 --- a/examples/01-cubes/cubes.cpp +++ b/examples/01-cubes/cubes.cpp @@ -15,10 +15,11 @@ struct PosColorVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); }; static bgfx::VertexDecl ms_decl; diff --git a/examples/02-metaballs/metaballs.cpp b/examples/02-metaballs/metaballs.cpp index e9c54080a..6d6ab3be9 100644 --- a/examples/02-metaballs/metaballs.cpp +++ b/examples/02-metaballs/metaballs.cpp @@ -18,11 +18,12 @@ struct PosNormalColorVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Normal, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Normal, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); }; static bgfx::VertexDecl ms_decl; diff --git a/examples/02-metaballs/vs_metaballs.bin.h b/examples/02-metaballs/vs_metaballs.bin.h index 13fe0a008..a695b490a 100644 --- a/examples/02-metaballs/vs_metaballs.bin.h +++ b/examples/02-metaballs/vs_metaballs.bin.h @@ -68,97 +68,105 @@ static const uint8_t vs_metaballs_dx9[457] = 0x01, 0x00, 0xaa, 0x90, 0x00, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, // ................ 0x00, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ......... }; -static const uint8_t vs_metaballs_dx11[1446] = +static const uint8_t vs_metaballs_dx11[1582] = { 0x56, 0x53, 0x48, 0x02, 0x03, 0x2c, 0xf5, 0x3f, 0x02, 0x00, 0x07, 0x75, 0x5f, 0x6d, 0x6f, 0x64, // VSH..,.?...u_mod - 0x65, 0x6c, 0x09, 0x20, 0xa0, 0x00, 0x80, 0x00, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // el. .....u_model - 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x08, 0x04, 0x00, 0x64, 0x05, // ViewProj......d. - 0x44, 0x58, 0x42, 0x43, 0x63, 0xc6, 0xef, 0x25, 0x53, 0xda, 0xbb, 0x1f, 0x63, 0x2c, 0x8e, 0xbd, // DXBCc..%S...c,.. - 0x47, 0x9f, 0x33, 0x6b, 0x01, 0x00, 0x00, 0x00, 0x64, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, // G.3k....d....... - 0x34, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, 0x5c, 0x03, 0x00, 0x00, // 4...x........... - 0xe8, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....RDEF<....... + 0x65, 0x6c, 0x09, 0x20, 0xa0, 0x01, 0x80, 0x00, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // el. .....u_model + 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x09, 0x04, 0x00, 0xec, 0x05, // ViewProj........ + 0x44, 0x58, 0x42, 0x43, 0xfd, 0xa3, 0x14, 0xd0, 0x5d, 0x84, 0x38, 0x2c, 0x7d, 0xf4, 0x1a, 0x2f, // DXBC....].8,}../ + 0xf2, 0xb7, 0xa3, 0x7c, 0x01, 0x00, 0x00, 0x00, 0xec, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, // ...|............ + 0x34, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0xe4, 0x03, 0x00, 0x00, // 4.......p....... + 0x70, 0x05, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // p...RDEF........ 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfe, 0xff, // H............... - 0x00, 0x91, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........<....... + 0x00, 0x91, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........<....... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, // ........$Globals - 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, // ....<.......`... - 0xb0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, // ............P... - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // ....l........... - 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, // ............x... - 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, // ...@........... - 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ........`...@... - 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, // ................ - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ............@... - 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, // ................ - 0xe0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, // ....@........... - 0x00, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ........ ...@... - 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, // ................ - 0x60, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, // `...@........... - 0x00, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, // ............u_vi + 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, // ....<.......`... + 0xb0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, // ................ + 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, // ...@........... + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ........`...@... + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, // ................ + 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, // ....@........... + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ............@... + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, // ................ + 0x20, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, // ...@........... + 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ........`...@... + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, // ............$... + 0xa0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, // ............,... + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ....<.......@... + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, // ............H... + 0xe0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, // ....@........... + 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ....X... ...@... + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, // ............i... + 0x60, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, // `...@........... + 0x00, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // ....u........... + 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, // ............u_vi 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, // ewRect.......... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, // ........u_viewTe 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, // xel.u_view...... - 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, // ............u_vi - 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0xab, // ewProj.u_model.. - 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ ....... - 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, // u_modelView.u_mo - 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, // delViewProj.u_mo - 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, // delViewProjX.u_v - 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, // iewProjX.u_alpha - 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // Ref............. - 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, // ....Microsoft (R - 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, // ) HLSL Shader Co - 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, // mpiler 9.29.952. - 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, // 3111....ISGNh... - 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........P....... - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, // ................ - 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // V............... - 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........]....... - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, // ................ - 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x00, 0x50, 0x4f, 0x53, // COLOR.NORMAL.POS - 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0xab, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, // ITION...OSGNl... - 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........P....... - 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, // ................ - 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ................ - 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ........b....... - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, // ................ - 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, // SV_POSITION.COLO - 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, // R.TEXCOORD..SHDR - 0x84, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x61, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, // ....@...a...Y... - 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, // F. ........._... - 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, // ........_...r... - 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ...._...r....... - 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // g.... .......... - 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // e.... ......e... - 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, // r ......h....... - 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, // 8...........V... - 0x02, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, // ....F. ......... + 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, // ............u_in + 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, // vView.u_proj.u_i + 0x6e, 0x76, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // nvProj.u_viewPro + 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, // j.u_invViewProj. + 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, // u_model......... + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, // .......u_modelV + 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, // iew.u_modelViewP + 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, // roj.u_modelViewP + 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, // rojX.u_viewProjX + 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, // .u_alphaRef..... + 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, // ............Micr + 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, // osoft (R) HLSL S + 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, // hader Compiler 9 + 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, // .29.952.3111.... + 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // ISGNh........... + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // P............... + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........V....... + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, // ................ + 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ]............... + 0x02, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x4e, 0x4f, // ........COLOR.NO + 0x52, 0x4d, 0x41, 0x4c, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0xab, 0xab, // RMAL.POSITION... + 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // OSGNl........... + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // P............... + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, // ................ + 0x62, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // b............... + 0x02, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, // ........SV_POSIT + 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, // ION.COLOR.TEXCOO + 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, 0x84, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, // RD..SHDR....@... + 0x61, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // a...Y...F. ..... + 0xa2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ...._........... + 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, // _...r......._... + 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, // r.......g.... .. + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, // ........e.... .. + 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....e...r ...... + 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, // h.......8....... + 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, // ....V.......F. . + 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, // ........2....... + 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, // ....F. ......... + 0x06, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F....... 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, // 2...........F. . - 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ................ - 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, // F.......2....... - 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, // ....F. ......... - 0xa6, 0x1a, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F....... - 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, // ..... ......F... - 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, // ....F. ......... - 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, // 6.... ......F... - 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....8...r....... - 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // V.......F. ..... - 0x0b, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....2...r....... - 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, // F. ............. - 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, // ....F.......2... - 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // r ......F. ..... - 0x0c, 0x00, 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ............F... - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, // ....>...STATt... - 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // ................ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ................ + 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, // F............ .. + 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, // ....F.......F. . + 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, // ........6.... .. + 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, // ....F.......8... + 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // r.......V....... + 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, // F. .........2... + 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // r.......F. ..... + 0x1a, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ............F... + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....2...r ...... + 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, // F. ............. + 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, // ....F.......>... + 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // STATt........... + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0xb0, 0x09, // ...... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, // ................ + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // .............. }; diff --git a/examples/03-raymarch/fs_raymarching.sc b/examples/03-raymarch/fs_raymarching.sc index e495ce7c7..8b2103bec 100644 --- a/examples/03-raymarch/fs_raymarching.sc +++ b/examples/03-raymarch/fs_raymarching.sc @@ -96,10 +96,10 @@ vec4 lit(float _ndotl, float _rdotv, float _m) void main() { vec4 tmp; - tmp = mul(u_mtx, vec4(v_texcoord0.x, v_texcoord0.y, 0.0, 1.0) ); + tmp = mul(u_mtx, vec4(v_texcoord0.xy, 0.0, 1.0) ); vec3 eye = tmp.xyz/tmp.w; - tmp = mul(u_mtx, vec4(v_texcoord0.x, v_texcoord0.y, 1.0, 1.0) ); + tmp = mul(u_mtx, vec4(v_texcoord0.xy, 1.0, 1.0) ); vec3 at = tmp.xyz/tmp.w; float maxd = length(at - eye); diff --git a/examples/03-raymarch/raymarch.cpp b/examples/03-raymarch/raymarch.cpp index fae4e3029..5e1abb629 100644 --- a/examples/03-raymarch/raymarch.cpp +++ b/examples/03-raymarch/raymarch.cpp @@ -17,11 +17,12 @@ struct PosColorTexCoord0Vertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); } static bgfx::VertexDecl ms_decl; diff --git a/examples/05-instancing/instancing.cpp b/examples/05-instancing/instancing.cpp index b4c755f90..456721903 100644 --- a/examples/05-instancing/instancing.cpp +++ b/examples/05-instancing/instancing.cpp @@ -15,10 +15,11 @@ struct PosColorVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); }; static bgfx::VertexDecl ms_decl; diff --git a/examples/06-bump/bump.cpp b/examples/06-bump/bump.cpp index 374ab2c48..31306f3aa 100644 --- a/examples/06-bump/bump.cpp +++ b/examples/06-bump/bump.cpp @@ -18,12 +18,13 @@ struct PosNormalTangentTexcoordVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true); - ms_decl.add(bgfx::Attrib::Tangent, 4, bgfx::AttribType::Uint8, true, true); - ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Int16, true, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true) + .add(bgfx::Attrib::Tangent, 4, bgfx::AttribType::Uint8, true, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Int16, true, true) + .end(); } static bgfx::VertexDecl ms_decl; @@ -147,7 +148,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::IndexBufferHandle ibh = bgfx::createIndexBuffer(bgfx::makeRef(s_cubeIndices, sizeof(s_cubeIndices) ) ); // Create texture sampler uniforms. - bgfx::UniformHandle u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1iv); + bgfx::UniformHandle u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1iv); bgfx::UniformHandle u_texNormal = bgfx::createUniform("u_texNormal", bgfx::UniformType::Uniform1iv); uint16_t numLights = 4; diff --git a/examples/07-callback/callback.cpp b/examples/07-callback/callback.cpp index 3e8e302b4..a51992254 100644 --- a/examples/07-callback/callback.cpp +++ b/examples/07-callback/callback.cpp @@ -21,10 +21,11 @@ struct PosColorVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); }; static bgfx::VertexDecl ms_decl; diff --git a/examples/08-update/update.cpp b/examples/08-update/update.cpp index 4430d1a0c..9631bd7cc 100644 --- a/examples/08-update/update.cpp +++ b/examples/08-update/update.cpp @@ -22,10 +22,11 @@ struct PosTexcoordVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::TexCoord0, 3, bgfx::AttribType::Float); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::TexCoord0, 3, bgfx::AttribType::Float) + .end(); }; static bgfx::VertexDecl ms_decl; diff --git a/examples/09-hdr/hdr.cpp b/examples/09-hdr/hdr.cpp index 4f825aded..1ed22a9ca 100644 --- a/examples/09-hdr/hdr.cpp +++ b/examples/09-hdr/hdr.cpp @@ -21,11 +21,12 @@ struct PosColorTexCoord0Vertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); } static bgfx::VertexDecl ms_decl; @@ -218,10 +219,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) uint32_t oldHeight = 0; uint32_t oldReset = reset; - entry::MouseState mouseState; - float time = 0.0f; + entry::MouseState mouseState; while (!entry::processEvents(width, height, debug, reset, &mouseState) ) { if (oldWidth != width diff --git a/examples/14-shadowvolumes/shadowvolumes.cpp b/examples/14-shadowvolumes/shadowvolumes.cpp index b836f1e8e..44bc9ed82 100644 --- a/examples/14-shadowvolumes/shadowvolumes.cpp +++ b/examples/14-shadowvolumes/shadowvolumes.cpp @@ -1727,10 +1727,10 @@ void shadowVolumeCreate(ShadowVolume& _shadowVolume } bgfx::VertexDecl decl; - decl.begin(); - decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - decl.end(); + decl.begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); //fill the structure _shadowVolume.m_numVertices = vsideI; @@ -1966,11 +1966,11 @@ int _main_(int /*_argc*/, char** /*_argv*/) free(data); bgfx::VertexDecl PosNormalTexcoordDecl; - PosNormalTexcoordDecl.begin(); - PosNormalTexcoordDecl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - PosNormalTexcoordDecl.add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true); - PosNormalTexcoordDecl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - PosNormalTexcoordDecl.end(); + PosNormalTexcoordDecl.begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); s_uniforms.init(); s_uniforms.submitConstUniforms(); diff --git a/examples/15-shadowmaps-simple/shadowmaps_simple.cpp b/examples/15-shadowmaps-simple/shadowmaps_simple.cpp index 4195b6b66..5eff3bdb0 100644 --- a/examples/15-shadowmaps-simple/shadowmaps_simple.cpp +++ b/examples/15-shadowmaps-simple/shadowmaps_simple.cpp @@ -454,10 +454,10 @@ int _main_(int /*_argc*/, char** /*_argv*/) // Vertex declarations. bgfx::VertexDecl PosNormalDecl; - PosNormalDecl.begin(); - PosNormalDecl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - PosNormalDecl.add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true); - PosNormalDecl.end(); + PosNormalDecl.begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true) + .end(); // Meshes. Mesh bunnyMesh; diff --git a/examples/16-shadowmaps/shadowmaps.cpp b/examples/16-shadowmaps/shadowmaps.cpp index aaa04464f..c8f8b271e 100644 --- a/examples/16-shadowmaps/shadowmaps.cpp +++ b/examples/16-shadowmaps/shadowmaps.cpp @@ -1165,11 +1165,12 @@ struct PosColorTexCoord0Vertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); } static bgfx::VertexDecl ms_decl; @@ -1496,11 +1497,11 @@ int _main_(int /*_argc*/, char** /*_argv*/) // Vertex declarations. bgfx::VertexDecl PosNormalTexcoordDecl; - PosNormalTexcoordDecl.begin(); - PosNormalTexcoordDecl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - PosNormalTexcoordDecl.add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true); - PosNormalTexcoordDecl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - PosNormalTexcoordDecl.end(); + PosNormalTexcoordDecl.begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); bgfx::VertexDecl posDecl; posDecl.begin(); diff --git a/examples/17-drawstress/drawstress.cpp b/examples/17-drawstress/drawstress.cpp index 8cea13a64..388d69e09 100644 --- a/examples/17-drawstress/drawstress.cpp +++ b/examples/17-drawstress/drawstress.cpp @@ -29,10 +29,11 @@ struct PosColorVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); } static bgfx::VertexDecl ms_decl; diff --git a/examples/17-drawstress/vs_drawstress.bin.h b/examples/17-drawstress/vs_drawstress.bin.h index 8f5c8e1ca..976dd8f95 100644 --- a/examples/17-drawstress/vs_drawstress.bin.h +++ b/examples/17-drawstress/vs_drawstress.bin.h @@ -45,83 +45,92 @@ static const uint8_t vs_drawstress_dx9[319] = 0x00, 0x03, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0xa0, 0x01, 0x00, // ................ 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ............... }; -static const uint8_t vs_drawstress_dx11[1232] = +static const uint8_t vs_drawstress_dx11[1368] = { 0x56, 0x53, 0x48, 0x02, 0xa4, 0x8b, 0xef, 0x49, 0x01, 0x00, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, // VSH....I...u_mod - 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x08, 0x04, 0x00, // elViewProj...... - 0x9c, 0x04, 0x44, 0x58, 0x42, 0x43, 0x28, 0xef, 0x2e, 0x21, 0x92, 0x96, 0x19, 0x3a, 0x9c, 0xc4, // ..DXBC(..!...:.. - 0xe5, 0xc7, 0x19, 0xe5, 0xbf, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x9c, 0x04, 0x00, 0x00, 0x05, 0x00, // ................ - 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x1c, 0x03, // ..4...x......... - 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, // .. ...RDEF<..... + 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x09, 0x04, 0x00, // elViewProj...... + 0x24, 0x05, 0x44, 0x58, 0x42, 0x43, 0x86, 0x6d, 0x33, 0x96, 0x17, 0xb3, 0xf4, 0x49, 0xa8, 0x99, // $.DXBC.m3....I.. + 0xe8, 0x55, 0x3a, 0x4f, 0x5c, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x24, 0x05, 0x00, 0x00, 0x05, 0x00, // .U:O......$..... + 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x50, 0x03, 0x00, 0x00, 0xa4, 0x03, // ..4.......P..... + 0x00, 0x00, 0xa8, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, // ......RDEF...... 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, // ..H............. - 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... + 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, // ..........$Globa - 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. - 0x00, 0x00, 0xb0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, // ..............P. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ......l......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, // ..............x. - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // .. ...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, // ................ - 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, // ..............@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, // ................ - 0x00, 0x00, 0xe0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, // ......@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, // .......... ...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x01, // ................ - 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // ..`...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ + 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. + 0x00, 0x00, 0xb0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, // ................ + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, // ................ + 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, // ..............@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, // ................ + 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, // ..............$. + 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, // ..............,. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, // ......<.......@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, // ..............H. + 0x00, 0x00, 0xe0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, // ......X... ...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, // ..............i. + 0x00, 0x00, 0x60, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ..`...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, // ......u......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // viewRect........ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ..........u_view 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, // Texel.u_view.... 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ - 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // viewProj.u_model - 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .......... ..... - 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, // ..u_modelView.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, // modelViewProj.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, // modelViewProjX.u - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, // _viewProjX.u_alp - 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, // haRef........... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, // ......Microsoft - 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, // (R) HLSL Shader - 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, // Compiler 9.29.95 - 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x48, 0x00, // 2.3111....ISGNH. - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........8..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, // ................ - 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..>............. - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, // ..........COLOR. - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x4c, 0x00, // POSITION..OSGNL. - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........8..... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ - 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..D............. - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, // ..........SV_POS - 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0xab, 0xab, 0x53, 0x48, // ITION.COLOR...SH - 0x44, 0x52, 0xfc, 0x00, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x59, 0x00, // DR....@...?...Y. - 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, // ..F. ........._. - 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, // .........._...r. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, // ......g.... .... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, // ......e.... .... - 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, // ..h.......8..... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......V.......F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, // .........2..... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, // ......F. ....... - 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F..... + 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, // invView.u_proj.u + 0x5f, 0x69, 0x6e, 0x76, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, // _invProj.u_viewP + 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // roj.u_invViewPro + 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, // j.u_model....... + 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // .. .......u_mode + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // lView.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // wProj.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // wProjX.u_viewPro + 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, // jX.u_alphaRef... + 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, // ..............Mi + 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, // crosoft (R) HLSL + 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, // Shader Compiler + 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, // 9.29.952.3111.. + 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x48, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, // ..ISGNH......... + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..8............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........>..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, // ................ + 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, // ..COLOR.POSITION + 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x4c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGNL......... + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, // ..8............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........D..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ + 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, // ..SV_POSITION.CO + 0x4c, 0x4f, 0x52, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xfc, 0x00, 0x00, 0x00, 0x40, 0x00, // LOR...SHDR....@. + 0x01, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..?...Y...F. ... + 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, // ......_......... + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x00, // .._...r.......g. + 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, // ... ..........e. + 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, // ... ......h..... + 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, // ..8...........V. + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, // ......F. ....... 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ..2...........F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, 0x01, 0x00, // ............... - 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, // ..F............ - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......F.......F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, // .........6.... - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, // ......F.......>. - 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, // ..STATt......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, // ............... + 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, // ..F.......2..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, // ......F. ....... + 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, // ....... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, // ......F. ....... + 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, // ..6.... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, // ......>...STATt. + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // ................ + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, // ................ - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x09, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // ........ }; diff --git a/examples/18-ibl/ibl.cpp b/examples/18-ibl/ibl.cpp index e2bf8be83..8e15ce741 100644 --- a/examples/18-ibl/ibl.cpp +++ b/examples/18-ibl/ibl.cpp @@ -312,11 +312,12 @@ struct PosColorTexCoord0Vertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); } static bgfx::VertexDecl ms_decl; diff --git a/examples/19-oit/oit.cpp b/examples/19-oit/oit.cpp index cee6273a4..63b5f6289 100644 --- a/examples/19-oit/oit.cpp +++ b/examples/19-oit/oit.cpp @@ -16,10 +16,11 @@ struct PosColorVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); } static bgfx::VertexDecl ms_decl; @@ -38,11 +39,12 @@ struct PosColorTexCoord0Vertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); } static bgfx::VertexDecl ms_decl; @@ -230,8 +232,8 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::destroyFrameBuffer(fbh); } - fbtextures[0] = bgfx::createTexture2D(width, height, 1, bgfx::TextureFormat::RGBA16F, BGFX_TEXTURE_RT), - fbtextures[1] = bgfx::createTexture2D(width, height, 1, bgfx::TextureFormat::R16F, BGFX_TEXTURE_RT), + fbtextures[0] = bgfx::createTexture2D(width, height, 1, bgfx::TextureFormat::RGBA16F, BGFX_TEXTURE_RT); + fbtextures[1] = bgfx::createTexture2D(width, height, 1, bgfx::TextureFormat::R16F, BGFX_TEXTURE_RT); fbh = bgfx::createFrameBuffer(BX_COUNTOF(fbtextures), fbtextures, true); } diff --git a/examples/common/bgfx_utils.cpp b/examples/common/bgfx_utils.cpp index 924a2cf0a..d94946fab 100644 --- a/examples/common/bgfx_utils.cpp +++ b/examples/common/bgfx_utils.cpp @@ -45,7 +45,7 @@ static const bgfx::Memory* loadMem(bx::FileReaderI* _reader, const char* _filePa return NULL; } -static const bgfx::Memory* loadShader(bx::FileReaderI* _reader, const char* _name) +static bgfx::ShaderHandle loadShader(bx::FileReaderI* _reader, const char* _name) { char filePath[512]; @@ -73,22 +73,19 @@ static const bgfx::Memory* loadShader(bx::FileReaderI* _reader, const char* _nam strcat(filePath, _name); strcat(filePath, ".bin"); - return loadMem(_reader, filePath); + return bgfx::createShader(loadMem(_reader, filePath) ); +} + +bgfx::ShaderHandle loadShader(const char* _name) +{ + return loadShader(entry::getFileReader(), _name); } bgfx::ProgramHandle loadProgram(bx::FileReaderI* _reader, const char* _vsName, const char* _fsName) { - const bgfx::Memory* mem; + bgfx::ShaderHandle vsh = loadShader(_reader, _vsName); + bgfx::ShaderHandle fsh = loadShader(_reader, _fsName); - // Load vertex shader. - mem = loadShader(_reader, _vsName); - bgfx::ShaderHandle vsh = bgfx::createShader(mem); - - // Load fragment shader. - mem = loadShader(_reader, _fsName); - bgfx::ShaderHandle fsh = bgfx::createShader(mem); - - // Create program from shaders. return bgfx::createProgram(vsh, fsh, true /* destroy shaders when program is destroyed */); } diff --git a/examples/common/bgfx_utils.h b/examples/common/bgfx_utils.h index d13cb507d..6d906c515 100644 --- a/examples/common/bgfx_utils.h +++ b/examples/common/bgfx_utils.h @@ -9,6 +9,7 @@ #include void* load(const char* _filePath); +bgfx::ShaderHandle loadShader(const char* _name); bgfx::ProgramHandle loadProgram(const char* _vsName, const char* _fsName); bgfx::TextureHandle loadTexture(const char* _name, uint32_t _flags = BGFX_TEXTURE_NONE, uint8_t _skip = 0, bgfx::TextureInfo* _info = NULL); void calcTangents(void* _vertices, uint16_t _numVertices, bgfx::VertexDecl _decl, const uint16_t* _indices, uint32_t _numIndices); diff --git a/examples/common/font/text_buffer_manager.cpp b/examples/common/font/text_buffer_manager.cpp index 745b4eae2..0d5a8bdc0 100644 --- a/examples/common/font/text_buffer_manager.cpp +++ b/examples/common/font/text_buffer_manager.cpp @@ -605,11 +605,12 @@ TextBufferManager::TextBufferManager(FontManager* _fontManager) , true ); - m_vertexDecl.begin(); - m_vertexDecl.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float); - m_vertexDecl.add(bgfx::Attrib::TexCoord0, 4, bgfx::AttribType::Int16, true); - m_vertexDecl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - m_vertexDecl.end(); + m_vertexDecl + .begin() + .add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float) + .add(bgfx::Attrib::TexCoord0, 4, bgfx::AttribType::Int16, true) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1iv); } diff --git a/examples/common/font/vs_font_basic.bin.h b/examples/common/font/vs_font_basic.bin.h index 57aceb25f..a9a4d2ac4 100644 --- a/examples/common/font/vs_font_basic.bin.h +++ b/examples/common/font/vs_font_basic.bin.h @@ -53,88 +53,96 @@ static const uint8_t vs_font_basic_dx9[335] = 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, // ................ 0x00, 0x02, 0x02, 0x00, 0x0f, 0xe0, 0x02, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ............... }; -static const uint8_t vs_font_basic_dx11[1300] = +static const uint8_t vs_font_basic_dx11[1436] = { 0x56, 0x53, 0x48, 0x02, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, // VSH........u_mod - 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x08, 0x04, 0x00, // elViewProj...... - 0xe0, 0x04, 0x44, 0x58, 0x42, 0x43, 0x3e, 0x63, 0x6d, 0xe7, 0x1c, 0x45, 0xb5, 0xff, 0x98, 0x06, // ..DXBC>cm..E.... - 0x5a, 0xa2, 0x6d, 0x6a, 0xd4, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x05, 0x00, // Z.mj............ - 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, 0x5c, 0x03, // ..4...x......... - 0x00, 0x00, 0x64, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, // ..d...RDEF<..... + 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x09, 0x04, 0x00, // elViewProj...... + 0x68, 0x05, 0x44, 0x58, 0x42, 0x43, 0x2e, 0x09, 0x5f, 0x75, 0x0c, 0x13, 0x39, 0x6d, 0x66, 0x8f, // h.DXBC.._u..9mf. + 0x88, 0xb7, 0x16, 0x22, 0x70, 0xb2, 0x01, 0x00, 0x00, 0x00, 0x68, 0x05, 0x00, 0x00, 0x05, 0x00, // ..."p.....h..... + 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0xe4, 0x03, // ..4.......p..... + 0x00, 0x00, 0xec, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, // ......RDEF...... 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, // ..H............. - 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... + 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, // ..........$Globa - 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. - 0x00, 0x00, 0xb0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, // ..............P. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ......l......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, // ..............x. - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // .. ...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, // ................ - 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, // ..............@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, // ................ - 0x00, 0x00, 0xe0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, // ......@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, // .......... ...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x01, // ................ - 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // ..`...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ + 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. + 0x00, 0x00, 0xb0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, // ................ + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, // ................ + 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, // ..............@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, // ................ + 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, // ..............$. + 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, // ..............,. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, // ......<.......@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, // ..............H. + 0x00, 0x00, 0xe0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, // ......X... ...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, // ..............i. + 0x00, 0x00, 0x60, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ..`...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, // ......u......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // viewRect........ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ..........u_view 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, // Texel.u_view.... 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ - 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // viewProj.u_model - 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .......... ..... - 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, // ..u_modelView.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, // modelViewProj.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, // modelViewProjX.u - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, // _viewProjX.u_alp - 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, // haRef........... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, // ......Microsoft - 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, // (R) HLSL Shader - 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, // Compiler 9.29.95 - 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, // 2.3111....ISGNh. - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........P..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, // ................ - 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..V............. - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, // .........._..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x0f, // ................ - 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, // ..COLOR.POSITION - 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, // .TEXCOORD.OSGNl. - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........P..... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ - 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ................ - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........b..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ - 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, // ..SV_POSITION.CO - 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, // LOR.TEXCOORD..SH - 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, // DR....@...@...Y. - 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, // ..F. ........._. - 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, // .........._...2. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x02, 0x00, // ......_......... - 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ..g.... ........ - 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, // ..e.... ......e. - 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, // ... ......h..... - 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, // ..8...........V. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x00, // ......F. ....... - 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ..2...........F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, // ............... - 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, // ..F............ - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......F.......F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, // .........6.... - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, // ......F.......6. - 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x02, 0x00, // ... ......F..... - 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, // ..>...STATt..... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, // invView.u_proj.u + 0x5f, 0x69, 0x6e, 0x76, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, // _invProj.u_viewP + 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // roj.u_invViewPro + 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, // j.u_model....... + 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // .. .......u_mode + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // lView.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // wProj.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // wProjX.u_viewPro + 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, // jX.u_alphaRef... + 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, // ..............Mi + 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, // crosoft (R) HLSL + 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, // Shader Compiler + 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, // 9.29.952.3111.. + 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, // ..ISGNh......... + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..P............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........V..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, // ................ + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .._............. + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, // ..........COLOR. + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, // POSITION.TEXCOOR + 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, // D.OSGNl......... + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, // ..P............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ + 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..b............. + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, // ..........SV_POS + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, // ITION.COLOR.TEXC + 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, // OORD..SHDR....@. + 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..@...Y...F. ... + 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, // ......_......... + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, // .._...2......._. + 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, // ..........g.... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, // ..........e.... + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, // ......e.... .... + 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, // ..h.......8..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......V.......F. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, // .........2..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, // ......F. ....... + 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, // ....... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, // ......F. ....... + 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, // ..6.... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, // ......6.... .... + 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, // ..F.......>...ST + 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ATt............. + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0xb0, 0x09, // .... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, // ................ + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // ............ }; diff --git a/examples/common/font/vs_font_distance_field.bin.h b/examples/common/font/vs_font_distance_field.bin.h index c7548e237..29b9348af 100644 --- a/examples/common/font/vs_font_distance_field.bin.h +++ b/examples/common/font/vs_font_distance_field.bin.h @@ -53,88 +53,96 @@ static const uint8_t vs_font_distance_field_dx9[335] = 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, // ................ 0x00, 0x02, 0x02, 0x00, 0x0f, 0xe0, 0x02, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ............... }; -static const uint8_t vs_font_distance_field_dx11[1300] = +static const uint8_t vs_font_distance_field_dx11[1436] = { 0x56, 0x53, 0x48, 0x02, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, // VSH........u_mod - 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x08, 0x04, 0x00, // elViewProj...... - 0xe0, 0x04, 0x44, 0x58, 0x42, 0x43, 0x3e, 0x63, 0x6d, 0xe7, 0x1c, 0x45, 0xb5, 0xff, 0x98, 0x06, // ..DXBC>cm..E.... - 0x5a, 0xa2, 0x6d, 0x6a, 0xd4, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x05, 0x00, // Z.mj............ - 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, 0x5c, 0x03, // ..4...x......... - 0x00, 0x00, 0x64, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, // ..d...RDEF<..... + 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x09, 0x04, 0x00, // elViewProj...... + 0x68, 0x05, 0x44, 0x58, 0x42, 0x43, 0x2e, 0x09, 0x5f, 0x75, 0x0c, 0x13, 0x39, 0x6d, 0x66, 0x8f, // h.DXBC.._u..9mf. + 0x88, 0xb7, 0x16, 0x22, 0x70, 0xb2, 0x01, 0x00, 0x00, 0x00, 0x68, 0x05, 0x00, 0x00, 0x05, 0x00, // ..."p.....h..... + 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0xe4, 0x03, // ..4.......p..... + 0x00, 0x00, 0xec, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, // ......RDEF...... 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, // ..H............. - 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... + 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, // ..........$Globa - 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. - 0x00, 0x00, 0xb0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, // ..............P. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ......l......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, // ..............x. - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // .. ...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, // ................ - 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, // ..............@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, // ................ - 0x00, 0x00, 0xe0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, // ......@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, // .......... ...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x01, // ................ - 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // ..`...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ + 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. + 0x00, 0x00, 0xb0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, // ................ + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, // ................ + 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, // ..............@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, // ................ + 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, // ..............$. + 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, // ..............,. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, // ......<.......@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, // ..............H. + 0x00, 0x00, 0xe0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, // ......X... ...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, // ..............i. + 0x00, 0x00, 0x60, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ..`...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, // ......u......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // viewRect........ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ..........u_view 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, // Texel.u_view.... 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ - 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // viewProj.u_model - 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .......... ..... - 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, // ..u_modelView.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, // modelViewProj.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, // modelViewProjX.u - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, // _viewProjX.u_alp - 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, // haRef........... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, // ......Microsoft - 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, // (R) HLSL Shader - 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, // Compiler 9.29.95 - 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, // 2.3111....ISGNh. - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........P..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, // ................ - 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..V............. - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, // .........._..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x0f, // ................ - 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, // ..COLOR.POSITION - 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, // .TEXCOORD.OSGNl. - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........P..... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ - 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ................ - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........b..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ - 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, // ..SV_POSITION.CO - 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, // LOR.TEXCOORD..SH - 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, // DR....@...@...Y. - 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, // ..F. ........._. - 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, // .........._...2. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x02, 0x00, // ......_......... - 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ..g.... ........ - 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, // ..e.... ......e. - 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, // ... ......h..... - 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, // ..8...........V. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x00, // ......F. ....... - 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ..2...........F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, // ............... - 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, // ..F............ - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......F.......F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, // .........6.... - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, // ......F.......6. - 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x02, 0x00, // ... ......F..... - 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, // ..>...STATt..... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, // invView.u_proj.u + 0x5f, 0x69, 0x6e, 0x76, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, // _invProj.u_viewP + 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // roj.u_invViewPro + 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, // j.u_model....... + 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // .. .......u_mode + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // lView.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // wProj.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // wProjX.u_viewPro + 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, // jX.u_alphaRef... + 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, // ..............Mi + 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, // crosoft (R) HLSL + 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, // Shader Compiler + 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, // 9.29.952.3111.. + 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, // ..ISGNh......... + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..P............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........V..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, // ................ + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .._............. + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, // ..........COLOR. + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, // POSITION.TEXCOOR + 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, // D.OSGNl......... + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, // ..P............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ + 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..b............. + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, // ..........SV_POS + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, // ITION.COLOR.TEXC + 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, // OORD..SHDR....@. + 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..@...Y...F. ... + 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, // ......_......... + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, // .._...2......._. + 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, // ..........g.... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, // ..........e.... + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, // ......e.... .... + 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, // ..h.......8..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......V.......F. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, // .........2..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, // ......F. ....... + 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, // ....... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, // ......F. ....... + 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, // ..6.... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, // ......6.... .... + 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, // ..F.......>...ST + 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ATt............. + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0xb0, 0x09, // .... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, // ................ + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // ............ }; diff --git a/examples/common/font/vs_font_distance_field_subpixel.bin.h b/examples/common/font/vs_font_distance_field_subpixel.bin.h index 280852509..184fd8773 100644 --- a/examples/common/font/vs_font_distance_field_subpixel.bin.h +++ b/examples/common/font/vs_font_distance_field_subpixel.bin.h @@ -53,88 +53,96 @@ static const uint8_t vs_font_distance_field_subpixel_dx9[335] = 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, // ................ 0x00, 0x02, 0x02, 0x00, 0x0f, 0xe0, 0x02, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ............... }; -static const uint8_t vs_font_distance_field_subpixel_dx11[1300] = +static const uint8_t vs_font_distance_field_subpixel_dx11[1436] = { 0x56, 0x53, 0x48, 0x02, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, // VSH........u_mod - 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x08, 0x04, 0x00, // elViewProj...... - 0xe0, 0x04, 0x44, 0x58, 0x42, 0x43, 0x3e, 0x63, 0x6d, 0xe7, 0x1c, 0x45, 0xb5, 0xff, 0x98, 0x06, // ..DXBC>cm..E.... - 0x5a, 0xa2, 0x6d, 0x6a, 0xd4, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x05, 0x00, // Z.mj............ - 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, 0x5c, 0x03, // ..4...x......... - 0x00, 0x00, 0x64, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, // ..d...RDEF<..... + 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x09, 0x04, 0x00, // elViewProj...... + 0x68, 0x05, 0x44, 0x58, 0x42, 0x43, 0x2e, 0x09, 0x5f, 0x75, 0x0c, 0x13, 0x39, 0x6d, 0x66, 0x8f, // h.DXBC.._u..9mf. + 0x88, 0xb7, 0x16, 0x22, 0x70, 0xb2, 0x01, 0x00, 0x00, 0x00, 0x68, 0x05, 0x00, 0x00, 0x05, 0x00, // ..."p.....h..... + 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0xe4, 0x03, // ..4.......p..... + 0x00, 0x00, 0xec, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, // ......RDEF...... 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, // ..H............. - 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... + 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........<..... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, // ..........$Globa - 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. - 0x00, 0x00, 0xb0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, // ..............P. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ......l......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, // ..............x. - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // .. ...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, // ................ - 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, // ..............@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, // ................ - 0x00, 0x00, 0xe0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, // ......@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, // .......... ...@. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x01, // ................ - 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // ..`...@......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ + 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, // ls....<.......`. + 0x00, 0x00, 0xb0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, // ................ + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, // ................ + 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, // ..............@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, // ................ + 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // .. ...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, // ..........`...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, // ..............$. + 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, // ..............,. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, // ......<.......@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, // ..............H. + 0x00, 0x00, 0xe0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, // ......@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, // ......X... ...@. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, // ..............i. + 0x00, 0x00, 0x60, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, // ..`...@......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, // ......u......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // viewRect........ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ..........u_view 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, // Texel.u_view.... 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_ - 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // viewProj.u_model - 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .......... ..... - 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, // ..u_modelView.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, // modelViewProj.u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, // modelViewProjX.u - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, // _viewProjX.u_alp - 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, // haRef........... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, // ......Microsoft - 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, // (R) HLSL Shader - 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, // Compiler 9.29.95 - 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, // 2.3111....ISGNh. - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........P..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, // ................ - 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..V............. - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, // .........._..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x0f, // ................ - 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, // ..COLOR.POSITION - 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, // .TEXCOORD.OSGNl. - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........P..... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ - 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ................ - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........b..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ - 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, // ..SV_POSITION.CO - 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, // LOR.TEXCOORD..SH - 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, // DR....@...@...Y. - 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, // ..F. ........._. - 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, // .........._...2. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x02, 0x00, // ......_......... - 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ..g.... ........ - 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, // ..e.... ......e. - 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, // ... ......h..... - 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, // ..8...........V. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x00, // ......F. ....... - 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ..2...........F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, // ............... - 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, // ..F............ - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......F.......F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, // .........6.... - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, // ......F.......6. - 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x02, 0x00, // ... ......F..... - 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, // ..>...STATt..... - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, // invView.u_proj.u + 0x5f, 0x69, 0x6e, 0x76, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, // _invProj.u_viewP + 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // roj.u_invViewPro + 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, // j.u_model....... + 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // .. .......u_mode + 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // lView.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // wProj.u_modelVie + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // wProjX.u_viewPro + 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, // jX.u_alphaRef... + 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, // ..............Mi + 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, // crosoft (R) HLSL + 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, // Shader Compiler + 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, // 9.29.952.3111.. + 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, // ..ISGNh......... + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..P............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........V..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, // ................ + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .._............. + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, // ..........COLOR. + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, // POSITION.TEXCOOR + 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, // D.OSGNl......... + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, // ..P............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ + 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..b............. + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, // ..........SV_POS + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, // ITION.COLOR.TEXC + 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, // OORD..SHDR....@. + 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..@...Y...F. ... + 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, // ......_......... + 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, // .._...2......._. + 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, // ..........g.... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, // ..........e.... + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, // ......e.... .... + 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, // ..h.......8..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......V.......F. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, // .........2..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, // ......F. ....... + 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F..... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, // ....... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, // ......F. ....... + 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, // ..6.... ......F. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x02, 0x00, // ......6.... .... + 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, // ..F.......>...ST + 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ATt............. + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0xb0, 0x09, // .... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, // ................ + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // ............ }; diff --git a/examples/common/imgui/imgui.cpp b/examples/common/imgui/imgui.cpp index 0f7bf282f..9767119a3 100644 --- a/examples/common/imgui/imgui.cpp +++ b/examples/common/imgui/imgui.cpp @@ -77,10 +77,11 @@ struct PosColorVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); } static bgfx::VertexDecl ms_decl; @@ -98,11 +99,12 @@ struct PosColorUvVertex static void init() { - ms_decl.begin(); - ms_decl.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - ms_decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true); - ms_decl.end(); + ms_decl + .begin() + .add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true) + .end(); } static bgfx::VertexDecl ms_decl; diff --git a/examples/common/imgui/vs_imgui_color.bin.h b/examples/common/imgui/vs_imgui_color.bin.h index 30ab177e9..69622634b 100644 --- a/examples/common/imgui/vs_imgui_color.bin.h +++ b/examples/common/imgui/vs_imgui_color.bin.h @@ -44,81 +44,89 @@ static const uint8_t vs_imgui_color_dx9[290] = 0xa0, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, // ................ 0x00, 0x00, // .. }; -static const uint8_t vs_imgui_color_dx11[1187] = +static const uint8_t vs_imgui_color_dx11[1323] = { 0x56, 0x53, 0x48, 0x02, 0xa4, 0x8b, 0xef, 0x49, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x76, 0x69, 0x65, // VSH....I...u_vie - 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0x60, 0x00, 0x04, 0x00, 0x74, 0x04, 0x44, 0x58, 0x42, // wProj..`...t.DXB - 0x43, 0xe3, 0x22, 0x0f, 0xd1, 0xff, 0x88, 0xa2, 0x22, 0x16, 0xe2, 0x07, 0x99, 0x95, 0xfb, 0x1a, // C."....."....... - 0x5b, 0x01, 0x00, 0x00, 0x00, 0x74, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // [....t.......4.. - 0x00, 0x78, 0x02, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x1c, 0x03, 0x00, 0x00, 0xf8, 0x03, 0x00, // .x.............. - 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, // .RDEF<.......H.. + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0x20, 0x01, 0x04, 0x00, 0xfc, 0x04, 0x44, 0x58, 0x42, // wProj.. .....DXB + 0x43, 0x80, 0xce, 0xb1, 0xee, 0xf2, 0x9f, 0xa5, 0xa4, 0x49, 0x50, 0x70, 0x5e, 0xd6, 0x6f, 0x2f, // C........IPp^.o/ + 0x2b, 0x01, 0x00, 0x00, 0x00, 0xfc, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // +............4.. + 0x00, 0x00, 0x03, 0x00, 0x00, 0x50, 0x03, 0x00, 0x00, 0xa4, 0x03, 0x00, 0x00, 0x80, 0x04, 0x00, // .....P.......... + 0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, // .RDEF........H.. 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfe, 0xff, 0x00, 0x91, 0x00, // ................ - 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....<.......... + 0x00, 0x90, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....<.......... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x00, 0xab, 0xab, // .....$Globals... - 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xb0, 0x09, 0x00, // .<.......`...... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .........P...... - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .l.............. - 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, // .........x... .. - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .....`...@...... - 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, // ................ - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@...... - 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x08, 0x00, // ................ - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ..... ...@...... - 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0x60, 0x09, 0x00, // .............`.. - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, // .........u_viewR + 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xb0, 0x0a, 0x00, // .<.......`...... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, // ............. .. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, // ................ + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, // ............. .. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0xa0, 0x01, 0x00, // .........$...... + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // .........,...... + 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .<.......@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0xe0, 0x09, 0x00, // .........H...... + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .X... ...@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, 0x60, 0x0a, 0x00, // .........i...`.. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .u.............. + 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, // .........u_viewR 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, // ect............. 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, 0x78, 0x65, 0x6c, // .....u_viewTexel 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, // .u_view......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, // .........u_viewP - 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0xab, 0x03, 0x00, 0x03, // roj.u_model..... - 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, // ..... .......u_m - 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // odelView.u_model - 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // ViewProj.u_model - 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ViewProjX.u_view - 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, // ProjX.u_alphaRef - 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H - 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi - 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, // ler 9.29.952.311 - 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x48, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // 1....ISGNH...... - 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....8.......... - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x3e, 0x00, 0x00, // .............>.. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ - 0x00, 0x03, 0x03, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, // .....COLOR.POSIT - 0x49, 0x4f, 0x4e, 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x4c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ION..OSGNL...... - 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .....8.......... - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, // .............D.. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, // .....SV_POSITION - 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xd4, 0x00, 0x00, // .COLOR...SHDR... - 0x00, 0x40, 0x00, 0x01, 0x00, 0x35, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, // .@...5...Y...F. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, // ........._...... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, // ....._...2...... - 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .g.... ......... - 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, // .e.... ......h.. - 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, // .....8.......... - 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .V.......F. .... - 0x00, 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, // .....2.......... - 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, // .F. ............ - 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....F.......... - 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, // .. ......F...... - 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, // .F. .........6.. - 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, // .. ......F...... - 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, // .>...STATt...... - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, // .........u_invVi + 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x50, // ew.u_proj.u_invP + 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, // roj.u_viewProj.u + 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, // _invViewProj.u_m + 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, // odel......... .. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, // .....u_modelView + 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj + 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj + 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, // X.u_viewProjX.u_ + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, // alphaRef........ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, // .........Microso + 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, // ft (R) HLSL Shad + 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, // er Compiler 9.29 + 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, // .952.3111....ISG + 0x4e, 0x48, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // NH...........8.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....>.......... + 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x43, 0x4f, 0x4c, // .............COL + 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0xab, 0x4f, 0x53, 0x47, // OR.POSITION..OSG + 0x4e, 0x4c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // NL...........8.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....D.......... + 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, // .............SV_ + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0xab, // POSITION.COLOR.. + 0xab, 0x53, 0x48, 0x44, 0x52, 0xd4, 0x00, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x35, 0x00, 0x00, // .SHDR....@...5.. + 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, // .Y...F. ........ + 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, // ._..........._.. + 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, // .2.......g.... . + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, // .........e.... . + 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // .....h.......8.. + 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, // .........V...... + 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, // .F. .........2.. + 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .........F. .... + 0x00, 0x12, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, // .............F.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, // .......... ..... + 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .F.......F. .... + 0x00, 0x15, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, // .....6.... ..... + 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, // .F.......>...STA + 0x54, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Tt.............. + 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0xb0, 0x09, // ... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // ........... }; diff --git a/examples/common/imgui/vs_imgui_texture.bin.h b/examples/common/imgui/vs_imgui_texture.bin.h index cbca7bffc..7a4f9409e 100644 --- a/examples/common/imgui/vs_imgui_texture.bin.h +++ b/examples/common/imgui/vs_imgui_texture.bin.h @@ -52,87 +52,96 @@ static const uint8_t vs_imgui_texture_dx9[326] = 0xe0, 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x03, 0xe0, 0x02, 0x00, 0xe4, // ................ 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ...... }; -static const uint8_t vs_imgui_texture_dx11[1295] = +static const uint8_t vs_imgui_texture_dx11[1431] = { 0x56, 0x53, 0x48, 0x02, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x76, 0x69, 0x65, // VSH........u_vie - 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0x60, 0x00, 0x04, 0x00, 0xe0, 0x04, 0x44, 0x58, 0x42, // wProj..`.....DXB - 0x43, 0xba, 0x64, 0x76, 0xcf, 0xca, 0x9d, 0xf4, 0xd5, 0x85, 0xc5, 0x48, 0xa7, 0x92, 0xde, 0x73, // C.dv.......H...s - 0x7f, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // .............4.. - 0x00, 0x78, 0x02, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, 0x5c, 0x03, 0x00, 0x00, 0x64, 0x04, 0x00, // .x...........d.. - 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, // .RDEF<.......H.. + 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0x20, 0x01, 0x04, 0x00, 0x68, 0x05, 0x44, 0x58, 0x42, // wProj.. ...h.DXB + 0x43, 0xe7, 0x5a, 0x3d, 0x55, 0x75, 0x97, 0x1a, 0xee, 0xbb, 0x62, 0x76, 0xa8, 0xb0, 0x0d, 0x5b, // C.Z=Uu....bv...[ + 0xf0, 0x01, 0x00, 0x00, 0x00, 0x68, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // .....h.......4.. + 0x00, 0x00, 0x03, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0xe4, 0x03, 0x00, 0x00, 0xec, 0x04, 0x00, // .....p.......... + 0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, // .RDEF........H.. 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfe, 0xff, 0x00, 0x91, 0x00, // ................ - 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....<.......... + 0x00, 0x90, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....<.......... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x00, 0xab, 0xab, // .....$Globals... - 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xb0, 0x09, 0x00, // .<.......`...... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .........P...... - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .l.............. - 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, // .........x... .. - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .....`...@...... - 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, // ................ - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@...... - 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x08, 0x00, // ................ - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ..... ...@...... - 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0x60, 0x09, 0x00, // .............`.. - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, // .........u_viewR + 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xb0, 0x0a, 0x00, // .<.......`...... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, // ............. .. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, // ................ + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, // ............. .. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0xa0, 0x01, 0x00, // .........$...... + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // .........,...... + 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .<.......@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0xe0, 0x09, 0x00, // .........H...... + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .X... ...@...... + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, 0x60, 0x0a, 0x00, // .........i...`.. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .u.............. + 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, // .........u_viewR 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, // ect............. 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, 0x78, 0x65, 0x6c, // .....u_viewTexel 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, // .u_view......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, // .........u_viewP - 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0xab, 0x03, 0x00, 0x03, // roj.u_model..... - 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, // ..... .......u_m - 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // odelView.u_model - 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // ViewProj.u_model - 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ViewProjX.u_view - 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, // ProjX.u_alphaRef - 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H - 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi - 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, // ler 9.29.952.311 - 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // 1....ISGNh...... - 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....P.......... - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, // .............V.. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ - 0x00, 0x03, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....._.......... - 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x43, 0x4f, 0x4c, // .............COL - 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, // OR.POSITION.TEXC - 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // OORD.OSGNl...... - 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .....P.......... - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....b.......... - 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x00, 0x00, 0x53, 0x56, 0x5f, // .............SV_ - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, // POSITION.COLOR.T - 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, 0x00, 0x01, 0x00, // EXCOORD..SHDR... - 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, // .@...@...Y...F. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, // ........._...... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, // ....._...2...... - 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, // ._...2.......g.. - 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, // .. ..........e.. - 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0x32, 0x20, 0x10, // .. ......e...2 . - 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // .....h.......8.. - 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, // .........V...... - 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, // .F. .........2.. - 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .........F. .... - 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, // .............F.. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, // .......... ..... - 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .F.......F. .... - 0x00, 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, // .....6.... ..... - 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x32, 0x20, 0x10, // .F.......6...2 . - 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, // .....F.......>.. - 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .STATt.......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, // .........u_invVi + 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x50, // ew.u_proj.u_invP + 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, // roj.u_viewProj.u + 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, // _invViewProj.u_m + 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, // odel......... .. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, // .....u_modelView + 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj + 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj + 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, // X.u_viewProjX.u_ + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, // alphaRef........ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, // .........Microso + 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, // ft (R) HLSL Shad + 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, // er Compiler 9.29 + 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, // .952.3111....ISG + 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, // Nh...........P.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....V.......... + 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, // ............._.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................ + 0x00, 0x03, 0x03, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, // .....COLOR.POSIT + 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, // ION.TEXCOORD.OSG + 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, // Nl...........P.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, // .............b.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................ + 0x00, 0x03, 0x0c, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, // .....SV_POSITION + 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, // .COLOR.TEXCOORD. + 0xab, 0x53, 0x48, 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, // .SHDR....@...@.. + 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, // .Y...F. ........ + 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, // ._..........._.. + 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, // .2......._...2.. + 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, // .....g.... ..... + 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, // .....e.... ..... + 0x00, 0x65, 0x00, 0x00, 0x03, 0x32, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, // .e...2 ......h.. + 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, // .....8.......... + 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .V.......F. .... + 0x00, 0x13, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, // .....2.......... + 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, // .F. ............ + 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....F.......... + 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, // .. ......F...... + 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, // .F. .........6.. + 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, // .. ......F...... + 0x00, 0x36, 0x00, 0x00, 0x05, 0x32, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, // .6...2 ......F.. + 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, // .....>...STATt.. + 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, // ................ + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, // ................ - 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x09, // ............... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // ....... }; diff --git a/examples/common/nanovg/fs_nanovg_fill.bin.h b/examples/common/nanovg/fs_nanovg_fill.bin.h index 73bc3bea4..1caedd1fa 100644 --- a/examples/common/nanovg/fs_nanovg_fill.bin.h +++ b/examples/common/nanovg/fs_nanovg_fill.bin.h @@ -297,23 +297,23 @@ static const uint8_t fs_nanovg_fill_dx9[1531] = 0xff, 0x80, 0x58, 0x00, 0x00, 0x04, 0x00, 0x08, 0x0f, 0x80, 0x02, 0x00, 0xaa, 0x81, 0x03, 0x00, // ..X............. 0xe4, 0x80, 0x01, 0x00, 0xe4, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ........... }; -static const uint8_t fs_nanovg_fill_dx11[3372] = +static const uint8_t fs_nanovg_fill_dx11[3508] = { 0x46, 0x53, 0x48, 0x02, 0xcf, 0xda, 0x1b, 0x94, 0x07, 0x00, 0x0c, 0x75, 0x5f, 0x73, 0x63, 0x69, // FSH........u_sci - 0x73, 0x73, 0x6f, 0x72, 0x4d, 0x61, 0x74, 0x18, 0x00, 0xb0, 0x09, 0x03, 0x00, 0x0a, 0x75, 0x5f, // ssorMat.......u_ - 0x70, 0x61, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x18, 0x00, 0xe0, 0x09, 0x03, 0x00, 0x0a, 0x75, // paintMat.......u - 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x15, 0x00, 0x10, 0x0a, 0x01, 0x00, 0x0a, // _innerCol....... - 0x75, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x15, 0x00, 0x20, 0x0a, 0x01, 0x00, // u_outerCol.. ... + 0x73, 0x73, 0x6f, 0x72, 0x4d, 0x61, 0x74, 0x18, 0x00, 0xb0, 0x0a, 0x03, 0x00, 0x0a, 0x75, 0x5f, // ssorMat.......u_ + 0x70, 0x61, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x18, 0x00, 0xe0, 0x0a, 0x03, 0x00, 0x0a, 0x75, // paintMat.......u + 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x15, 0x00, 0x10, 0x0b, 0x01, 0x00, 0x0a, // _innerCol....... + 0x75, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x15, 0x00, 0x20, 0x0b, 0x01, 0x00, // u_outerCol.. ... 0x11, 0x75, 0x5f, 0x73, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x53, 0x63, 0x61, // .u_scissorExtSca - 0x6c, 0x65, 0x15, 0x00, 0x30, 0x0a, 0x01, 0x00, 0x0e, 0x75, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, // le..0....u_exten - 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x15, 0x00, 0x40, 0x0a, 0x01, 0x00, 0x08, 0x75, 0x5f, // tRadius..@....u_ - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x15, 0x00, 0x50, 0x0a, 0x01, 0x00, 0x8c, 0x0c, 0x44, 0x58, // params..P.....DX - 0x42, 0x43, 0x4a, 0x85, 0xd2, 0x66, 0x3b, 0xfa, 0xb9, 0x35, 0xcc, 0x17, 0x20, 0x80, 0xf6, 0x89, // BCJ..f;..5.. ... - 0x8e, 0x7a, 0x01, 0x00, 0x00, 0x00, 0x8c, 0x0c, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, // .z............4. - 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x50, 0x04, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x10, 0x0c, // ......P......... - 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0xa4, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa0, 0x00, // ..RDEF.......... + 0x6c, 0x65, 0x15, 0x00, 0x30, 0x0b, 0x01, 0x00, 0x0e, 0x75, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, // le..0....u_exten + 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x15, 0x00, 0x40, 0x0b, 0x01, 0x00, 0x08, 0x75, 0x5f, // tRadius..@....u_ + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x15, 0x00, 0x50, 0x0b, 0x01, 0x00, 0x14, 0x0d, 0x44, 0x58, // params..P.....DX + 0x42, 0x43, 0x98, 0x40, 0xdc, 0x0d, 0xeb, 0x0e, 0xdb, 0x64, 0x00, 0x9a, 0xc9, 0x2a, 0x59, 0x1f, // BC.@.....d...*Y. + 0x8a, 0xd2, 0x01, 0x00, 0x00, 0x00, 0x14, 0x0d, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, // ..............4. + 0x00, 0x00, 0x68, 0x04, 0x00, 0x00, 0xd8, 0x04, 0x00, 0x00, 0x0c, 0x05, 0x00, 0x00, 0x98, 0x0c, // ..h............. + 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x2c, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa0, 0x00, // ..RDEF,......... 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0x00, 0x91, // ................ - 0x00, 0x00, 0x73, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ..s...|......... + 0x00, 0x00, 0xfb, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ......|......... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ................ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, // ................ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ................ @@ -321,193 +321,202 @@ static const uint8_t fs_nanovg_fill_dx11[3372] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, // ......s_texSampl 0x65, 0x72, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, // er.s_texTexture. - 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x00, 0xab, 0x96, 0x00, 0x00, 0x00, 0x11, 0x00, // $Globals........ - 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x60, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ......`......... - 0x00, 0x00, 0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ..P............. - 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x10, 0x00, // ..........l..... - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ..x... ...@..... - 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x60, 0x00, // ..............`. - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. - 0x00, 0x00, 0x9b, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0xa4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0xa0, 0x08, // ................ - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. - 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0xe0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........@..... - 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x02, 0x00, 0x00, 0x20, 0x09, // .............. . - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. - 0x00, 0x00, 0xe1, 0x02, 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ......`...@..... - 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x02, 0x00, 0x00, 0xa0, 0x09, // ................ - 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x02, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0xb0, 0x09, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, // ..........,..... - 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x03, 0x00, 0x00, 0xe0, 0x09, // ..........(..... - 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, // ..,............. - 0x00, 0x00, 0x33, 0x03, 0x00, 0x00, 0x10, 0x0a, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, // ..3............. - 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x03, 0x00, 0x00, 0x20, 0x0a, // ..........>... . - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x49, 0x03, 0x00, 0x00, 0x30, 0x0a, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, // ..I...0......... - 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x03, 0x00, 0x00, 0x40, 0x0a, // ..........[...@. - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x6a, 0x03, 0x00, 0x00, 0x50, 0x0a, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, // ..j...P......... - 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ..........u_view + 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x00, 0xab, 0x96, 0x00, 0x00, 0x00, 0x15, 0x00, // $Globals........ + 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x60, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ......`......... + 0x00, 0x00, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x02, 0x00, 0x00, 0x10, 0x00, // ................ + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0xd8, 0x02, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ...... ...@..... + 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x60, 0x00, // ..............`. + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. + 0x00, 0x00, 0xfa, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........@..... + 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0xe0, 0x00, // ................ + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. + 0x00, 0x00, 0x0b, 0x03, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ...... ...@..... + 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x03, 0x00, 0x00, 0x60, 0x01, // ..............`. + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. + 0x00, 0x00, 0x24, 0x03, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // ..$............. + 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x03, 0x00, 0x00, 0xa0, 0x09, // ..,.......<..... + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. + 0x00, 0x00, 0x48, 0x03, 0x00, 0x00, 0xe0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ..H.......@..... + 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x03, 0x00, 0x00, 0x20, 0x0a, // ..........X... . + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, // ..@............. + 0x00, 0x00, 0x69, 0x03, 0x00, 0x00, 0x60, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // ..i...`...@..... + 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x03, 0x00, 0x00, 0xa0, 0x0a, // ..........u..... + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0xb0, 0x0a, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, // ..........,..... + 0x00, 0x00, 0xa0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x03, 0x00, 0x00, 0xe0, 0x0a, // ................ + 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa0, 0x03, 0x00, 0x00, 0x00, 0x00, // ..,............. + 0x00, 0x00, 0xbb, 0x03, 0x00, 0x00, 0x10, 0x0b, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, // ................ + 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x03, 0x00, 0x00, 0x20, 0x0b, // .............. . + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0xd1, 0x03, 0x00, 0x00, 0x30, 0x0b, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, // ......0......... + 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x03, 0x00, 0x00, 0x40, 0x0b, // ..............@. + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0xf2, 0x03, 0x00, 0x00, 0x50, 0x0b, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, // ......P......... + 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ..........u_view 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, // Rect............ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, 0x78, 0x65, // ......u_viewTexe 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, // l.u_view........ - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ..........u_view - 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0xab, 0x03, 0x00, // Proj.u_model.... - 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ...... .......u_ - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // modelView.u_mode - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // lViewProj.u_mode - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, // lViewProjX.u_vie - 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, // wProjX.u_alphaRe - 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // f............... - 0x00, 0x00, 0x75, 0x5f, 0x73, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x4d, 0x61, 0x74, 0x00, 0xab, // ..u_scissorMat.. - 0xab, 0xab, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x00, 0x75, 0x5f, 0x69, // ..u_paintMat.u_i - 0x6e, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x00, 0x75, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x43, // nnerCol.u_outerC - 0x6f, 0x6c, 0x00, 0x75, 0x5f, 0x73, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x53, // ol.u_scissorExtS - 0x63, 0x61, 0x6c, 0x65, 0x00, 0x75, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x64, // cale.u_extentRad - 0x69, 0x75, 0x73, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0x4d, 0x69, 0x63, // ius.u_params.Mic - 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, // rosoft (R) HLSL - 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, // Shader Compiler - 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0x49, 0x53, // 9.29.952.3111.IS - 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, // GNh...........P. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x5c, 0x00, // ................ - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, // ................ - 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // ......SV_POSITIO - 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0xab, 0xab, 0x4f, 0x53, // N.TEXCOORD....OS - 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, // GN,........... . - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, // ......SV_TARGET. - 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x84, 0x07, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x01, // ..SHDR....@..... - 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, // ..Y...F. ....... - 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x18, // ..Z....`......X. - 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, // ...p......UU..b. - 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xc2, 0x10, // ..2.......b..... - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, // ......e.... .... - 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x32, 0x00, // ..h.......8...2. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x80, // ......V.......F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x32, 0x00, // .........2...2. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x00, // ......F. ....... - 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........F..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, // ......2.......F. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x00, // ......F. ....... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, // ......2.......F. - 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x80, 0x20, 0x80, 0x41, 0x00, // ..........F. .A. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x32, 0x20, 0x00, 0x0e, 0x32, 0x00, // ..........2 ..2. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, // ......F...A..... - 0x00, 0x00, 0xe6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x02, 0x40, // .... ..........@ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....?...?...... - 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // ..8............. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, // ..............2. - 0x00, 0x09, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x10, 0x10, 0x00, 0x01, 0x00, // ..".......*..... - 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ...@.....@.@.... - 0x80, 0xbf, 0x00, 0x00, 0x00, 0x08, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // ......"......... - 0x10, 0x80, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ...........@.... - 0x80, 0x3f, 0x38, 0x00, 0x00, 0x08, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // .?8..."......... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, // ........ ....... - 0x00, 0x00, 0x33, 0x00, 0x00, 0x07, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // ..3..."......... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x33, 0x00, // .......@.....?3. - 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x10, 0x10, 0x00, 0x01, 0x00, // ..B.......:..... - 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x38, 0x00, 0x00, 0x07, 0x22, 0x00, // ...@.....?8...". - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // ......*......... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........B..... - 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x40, // ..:. ..........@ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x04, 0x03, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........*..... - 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, // ..8...........V. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, // ........ ....... - 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, // ..2............. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, // ............... - 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc2, 0x00, // ................ - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, // ................ - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x32, 0x00, // .............2. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ .A..... - 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x46, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, // ......F. ....... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, // ................ - 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x10, 0x80, 0x41, 0x00, // ..............A. - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x01, 0x00, // ......4......... - 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..:.......*..... - 0x00, 0x00, 0x33, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, // ..3............. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, // .......@......4. - 0x00, 0x0a, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...@............ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........B..... - 0x00, 0x00, 0xe6, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x0a, 0x10, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x4b, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, // ..K...B.......*. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........B..... - 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, // ..*............. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, // ......B.......*. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, // ......*. .A..... - 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ......2...B..... - 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x40, // .... ..........@ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x20, // .....?*........ - 0x00, 0x08, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..B.......*..... - 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, // .... ........... - 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x80, 0x41, 0x00, // ..........F. .A. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..........F. ... - 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, // ......2......... - 0x00, 0x00, 0xa6, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x01, 0x00, // ..........F..... - 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x38, 0x00, // ..F. .........8. - 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..B............. - 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x82, 0x20, // ..........8.... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, // ......*.......:. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, // ......6...r .... - 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x18, 0x00, // ..F............. + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, // ..........u_invV + 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, // iew.u_proj.u_inv + 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, // Proj.u_viewProj. + 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, // u_invViewProj.u_ + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, // model......... . + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // ......u_modelVie + 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // w.u_modelViewPro + 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // j.u_modelViewPro + 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, // jX.u_viewProjX.u + 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, // _alphaRef....... + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x73, 0x63, 0x69, 0x73, // ..........u_scis + 0x73, 0x6f, 0x72, 0x4d, 0x61, 0x74, 0x00, 0xab, 0xab, 0xab, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, // sorMat.......... + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x69, 0x6e, // ..........u_pain + 0x74, 0x4d, 0x61, 0x74, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x00, // tMat.u_innerCol. + 0x75, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x00, 0x75, 0x5f, 0x73, 0x63, 0x69, // u_outerCol.u_sci + 0x73, 0x73, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x00, 0x75, 0x5f, 0x65, // ssorExtScale.u_e + 0x78, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x00, 0x75, 0x5f, 0x70, 0x61, // xtentRadius.u_pa + 0x72, 0x61, 0x6d, 0x73, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, // rams.Microsoft ( + 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, // R) HLSL Shader C + 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, // ompiler 9.29.952 + 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, // .3111.ISGNh..... + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ......P......... + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, // ................ + 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x53, 0x56, // ..............SV + 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, // _POSITION.TEXCOO + 0x52, 0x44, 0x00, 0xab, 0xab, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, // RD....OSGN,..... + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...... ......... + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, // ..............SV + 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x84, 0x07, // _TARGET...SHDR.. + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, // ..@.......Y...F. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, // .........Z....` + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, // ......X....p.... + 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, // ..UU..b...2..... + 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xc2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, // ..b...........e. + 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x03, 0x00, // ... ......h..... + 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, // ..8...2.......V. + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, // ......F. ....... + 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x80, // ..2...2.......F. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, // ............... + 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x32, 0x00, // ..F...........2. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x80, // ......F.......F. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x32, 0x00, // .............2. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, // ......F......... + 0x00, 0x00, 0x46, 0x80, 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x00, // ..F. .A......... + 0x00, 0x00, 0x32, 0x20, 0x00, 0x0e, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, // ..2 ..2.......F. + 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x8a, 0x20, 0x00, 0x00, 0x00, // ..A......... ... + 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, // .......@.....?.. + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x12, 0x00, // .?........8..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, // ................ + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x09, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, // ......2..."..... + 0x00, 0x00, 0x2a, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ..*........@.... + 0x00, 0x40, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x00, 0x08, 0x22, 0x00, // .@.@..........". + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x80, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x38, 0x00, 0x00, 0x08, 0x22, 0x00, // ...@.....?8...". + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x80, // ................ + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x07, 0x22, 0x00, // .........3...". + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, // ...............@ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x33, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // .....?3...B..... + 0x00, 0x00, 0x3a, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ..:........@.... + 0x80, 0x3f, 0x38, 0x00, 0x00, 0x07, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, // .?8...".......*. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, // ................ 0x00, 0x08, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, // ..B.......:. ... - 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x1f, 0x00, // .......@.....?.. + 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, // .......@........ 0x04, 0x03, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xc2, 0x00, // ..*.......8..... 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x84, // ......V......... - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xc2, 0x00, // .........2..... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, // ........ ....... + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xc2, 0x00, // .........2..... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, // ........ ....... 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, // ................ - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, // ........ ....... - 0x00, 0x00, 0x0e, 0x00, 0x00, 0x08, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, // ................ - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, // ........ ....... - 0x00, 0x00, 0x45, 0x00, 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe6, 0x0a, // ..E............. - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, // ......F~.......` - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........B..... - 0x00, 0x00, 0x2a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x40, // ..*. ..........@ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x12, 0x00, 0x10, 0x00, 0x02, 0x00, // ......6......... - 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x36, 0x00, 0x00, 0x05, 0x82, 0x00, // ...@.....?6..... - 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x37, 0x00, // ..............7. - 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x0a, 0x10, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x10, 0x00, 0x02, 0x00, // ..F............. - 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, // ..8..."......... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // ..............8. - 0x00, 0x07, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, // ... ............ - 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, // ..:.......6...r - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, // ......F......... - 0x00, 0x01, 0x18, 0x00, 0x00, 0x08, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, // ......".......:. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ..........@.... - 0x00, 0x40, 0x1f, 0x00, 0x04, 0x03, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, // .@............6. - 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, // ... .......@.... - 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x12, 0x00, // .?...?...?...?.. - 0x00, 0x01, 0x18, 0x00, 0x00, 0x08, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, // ......".......:. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ..........@.... - 0x40, 0x40, 0x1f, 0x00, 0x04, 0x03, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, // @@............E. - 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe6, 0x1a, 0x10, 0x00, 0x01, 0x00, // ................ - 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ..F~.......`.... - 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x80, // ......".......*. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ..........@.... - 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x12, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, // ..6............@ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x36, 0x00, 0x00, 0x05, 0x82, 0x00, 0x10, 0x00, 0x02, 0x00, // .....?6......... - 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0xf2, 0x00, // ..........7..... - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, // ......V.......F. - 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, // ..............8. - 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x20, // ..:.......8.... - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......F.......F. - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x15, 0x00, // ............... - 0x00, 0x01, 0x15, 0x00, 0x00, 0x01, 0x15, 0x00, 0x00, 0x01, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, // ..........>...ST - 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ATt...C......... - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ......%......... - 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, // ................ + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, // ........ ....... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x8a, // ......2......... + 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x46, 0x80, // .A...........F. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xc2, 0x00, // ............... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x06, 0x04, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x34, 0x00, // ......A.......4. + 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........:..... + 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x07, 0x12, 0x00, // ..*.......3..... + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, // ...............@ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x0a, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, // ......4......... + 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, // ...........@.... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................ + 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x0a, 0x10, 0x00, 0x00, 0x00, // ..B............. + 0x00, 0x00, 0xe6, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x05, 0x42, 0x00, // ..........K...B. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ......*......... + 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..B.......*..... + 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x42, 0x00, // ..............B. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x80, // ......*.......*. + 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x32, 0x00, // .A...........2. + 0x00, 0x0a, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, // ..B......... ... + 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x2a, 0x00, // .......@.....?*. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x20, 0x00, 0x08, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ....... ..B..... + 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, // ..*......... ... + 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, // ................ + 0x00, 0x00, 0x46, 0x8e, 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, // ..F. .A......... + 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x32, 0x00, // ..F. .........2. + 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x0a, 0x10, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..F.......F. ... + 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ......8...B..... + 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, // ..8.... ......*. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, // ......:.......6. + 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, // ..r ......F..... + 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x08, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........B..... + 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x01, 0x40, // ..:. ..........@ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x1f, 0x00, 0x04, 0x03, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, // .....?....*..... + 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, // ..8...........V. + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, // ........ ....... + 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xc2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, // ..2............. + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, // ............... + 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc2, 0x00, // ................ + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, // ................ + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x08, 0xc2, 0x00, // ............... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x84, // ................ + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x09, 0xf2, 0x00, // .........E..... + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe6, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x7e, // ..............F~ + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, // .......`........ + 0x00, 0x08, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x20, 0x00, 0x00, 0x00, // ..B.......*. ... + 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, // .......@......6. + 0x00, 0x05, 0x12, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ...........@.... + 0x80, 0x3f, 0x36, 0x00, 0x00, 0x05, 0x82, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, // .?6............. + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, // ......7......... + 0x00, 0x00, 0xa6, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x01, 0x00, // ..........F..... + 0x00, 0x00, 0x06, 0x0c, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x22, 0x00, // ..........8...". + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // ................ + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, // ......8.... .... + 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, // ..........:..... + 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ..6...r ......F. + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x08, 0x22, 0x00, // ..............". + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, // ......:. ....... + 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1f, 0x00, 0x04, 0x03, 0x1a, 0x00, // ...@.....@...... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, // ......6.... .... + 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, // ...@.....?...?.. + 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x12, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x08, 0x22, 0x00, // .?...?........". + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, // ......:. ....... + 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x1f, 0x00, 0x04, 0x03, 0x1a, 0x00, // ...@....@@...... + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, // ......E......... + 0x00, 0x00, 0xe6, 0x1a, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, // ..........F~.... + 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x22, 0x00, // ...`..........". + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, // ......*. ....... + 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x12, 0x00, // ...@......6..... + 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x36, 0x00, // .......@.....?6. + 0x00, 0x05, 0x82, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, // ................ + 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x56, 0x05, // ..7...........V. + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x0c, // ......F......... + 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x01, 0x00, // ......8......... + 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, // ..........:..... + 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, // ..8.... ......F. + 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, // ......F. ....... + 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x15, 0x00, 0x00, 0x01, 0x15, 0x00, 0x00, 0x01, 0x15, 0x00, // ................ + 0x00, 0x01, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x43, 0x00, // ..>...STATt...C. + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x25, 0x00, // ..............%. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0a, // ..........`. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x60, 0x0b, // ..`. }; diff --git a/examples/common/nanovg/nanovg_bgfx.cpp b/examples/common/nanovg/nanovg_bgfx.cpp index b1eb15ccf..1817243b0 100644 --- a/examples/common/nanovg/nanovg_bgfx.cpp +++ b/examples/common/nanovg/nanovg_bgfx.cpp @@ -267,10 +267,11 @@ namespace gl->viewid = 0; - s_nvgDecl.begin(); - s_nvgDecl.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float); - s_nvgDecl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float); - s_nvgDecl.end(); + s_nvgDecl + .begin() + .add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); int align = 1; gl->fragSize = sizeof(struct GLNVGfragUniforms) + align - sizeof(struct GLNVGfragUniforms) % align; diff --git a/examples/common/nanovg/vs_nanovg_fill.bin.h b/examples/common/nanovg/vs_nanovg_fill.bin.h index e97647ae8..5bb3c5a59 100644 --- a/examples/common/nanovg/vs_nanovg_fill.bin.h +++ b/examples/common/nanovg/vs_nanovg_fill.bin.h @@ -67,91 +67,99 @@ static const uint8_t vs_nanovg_fill_dx9[448] = 0x00, 0x55, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0c, 0xe0, 0x02, 0x00, 0x64, 0xa0, 0x01, // .U...........d.. 0x00, 0x00, 0x02, 0x01, 0x00, 0x03, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ................ }; -static const uint8_t vs_nanovg_fill_dx11[1351] = +static const uint8_t vs_nanovg_fill_dx11[1487] = { 0x56, 0x53, 0x48, 0x02, 0xcf, 0xda, 0x1b, 0x94, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x76, 0x69, 0x65, // VSH........u_vie - 0x77, 0x53, 0x69, 0x7a, 0x65, 0x05, 0x00, 0xa4, 0x09, 0x01, 0x00, 0x18, 0x05, 0x44, 0x58, 0x42, // wSize........DXB - 0x43, 0xff, 0xc7, 0xd1, 0x6f, 0xc5, 0xf6, 0xed, 0x87, 0x21, 0x91, 0xec, 0xfa, 0xeb, 0xe0, 0xd5, // C...o....!...... - 0x89, 0x01, 0x00, 0x00, 0x00, 0x18, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // .............4.. - 0x00, 0xac, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0x9c, 0x04, 0x00, // .........p...... - 0x00, 0x52, 0x44, 0x45, 0x46, 0x70, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, // .RDEFp.......H.. + 0x77, 0x53, 0x69, 0x7a, 0x65, 0x05, 0x00, 0xa4, 0x0a, 0x01, 0x00, 0xa0, 0x05, 0x44, 0x58, 0x42, // wSize........DXB + 0x43, 0xdc, 0xbd, 0xa9, 0x46, 0x90, 0x2d, 0x0b, 0xbc, 0x08, 0x2c, 0x02, 0x81, 0xf3, 0x81, 0xe4, // C...F.-...,..... + 0xd5, 0x01, 0x00, 0x00, 0x00, 0xa0, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // .............4.. + 0x00, 0x34, 0x03, 0x00, 0x00, 0x88, 0x03, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x24, 0x05, 0x00, // .4...........$.. + 0x00, 0x52, 0x44, 0x45, 0x46, 0xf8, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, // .RDEF........H.. 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfe, 0xff, 0x00, 0x91, 0x00, // ................ - 0x00, 0x3c, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .<...<.......... + 0x00, 0xc4, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....<.......... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x00, 0xab, 0xab, // .....$Globals... - 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xb0, 0x09, 0x00, // .<.......`...... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .........h...... - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .........t...... - 0x00, 0x84, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x74, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, // .t........... .. - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0xa8, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@...... - 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, // ................ - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0xcc, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@...... - 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0xe0, 0x08, 0x00, // ................ - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0xe8, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ..... ...@...... - 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x60, 0x09, 0x00, // .............`.. - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. - 0x00, 0x05, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0xa4, 0x09, 0x00, // ......... ...... - 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // .........,...... + 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xb0, 0x0a, 0x00, // .<.......`...... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0xe4, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, // ............. .. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x08, 0x02, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@...... + 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x00, // ................ + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x19, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@...... + 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, // .........#... .. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x2e, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@...... + 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x01, 0x00, // .........<...... + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // .........D...... + 0x00, 0x54, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .T.......@...... + 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0xe0, 0x09, 0x00, // .........`...... + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x70, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .p... ...@...... + 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0x60, 0x0a, 0x00, // .............`.. + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@.............. + 0x00, 0x8d, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x98, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x02, 0x00, 0x00, 0xa4, 0x0a, 0x00, // ................ + 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, // .u_viewRect..... 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, // .............u_v 0x69, 0x65, 0x77, 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, // iewTexel.u_view. 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, // .u_viewProj.u_mo - 0x64, 0x65, 0x6c, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, // del.......... .. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, // .....u_modelView - 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj - 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj - 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, // X.u_viewProjX.u_ - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, // alphaRef........ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x53, // .........u_viewS - 0x69, 0x7a, 0x65, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, // ize............. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, // .....Microsoft ( - 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, // R) HLSL Shader C - 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, // ompiler 9.29.952 - 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x4c, 0x00, 0x00, // .3111....ISGNL.. - 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........8...... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, // ................ - 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // .A.............. - 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // .........POSITIO - 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0xab, 0x4f, 0x53, 0x47, // N.TEXCOORD...OSG - 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, // Nh...........P.. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x00, 0x00, 0x5c, 0x00, 0x00, // ................ - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ - 0x00, 0x0c, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, // .....SV_POSITION - 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0xab, 0xab, 0x53, 0x48, 0x44, // .TEXCOORD....SHD - 0x52, 0x24, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x49, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, // R$...@...I...Y.. - 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, // .F. ........._.. - 0x03, 0x32, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, // .2......._...2.. - 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, // .....g.... ..... - 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0x32, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, // .....e...2 ..... - 0x00, 0x65, 0x00, 0x00, 0x03, 0xc2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, // .e.... ......h.. - 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, // .........2...... - 0x00, 0x46, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // .F.......F...... - 0x00, 0x0e, 0x00, 0x00, 0x08, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, // .....2.......F.. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x85, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, // ....... ........ - 0x00, 0x00, 0x00, 0x00, 0x07, 0x12, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, // ...... ......... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x00, // ......@......... - 0x08, 0x22, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, // ." ..........A.. - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x36, 0x00, 0x00, // ......@.....?6.. - 0x08, 0xc2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // .. .......@..... - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x36, 0x00, 0x00, // ............?6.. - 0x05, 0x32, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // .2 ......F...... - 0x00, 0x36, 0x00, 0x00, 0x05, 0xc2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x14, 0x10, // .6.... ......... - 0x00, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, // .....>...STATt.. - 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, // ................ - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ + 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, // .u_invView.u_pro + 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, // j.u_invProj.u_vi + 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, // ewProj.u_invView + 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, // Proj.u_model.... + 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, // ..... .......u_m + 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // odelView.u_model + 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // ViewProj.u_model + 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, // ViewProjX.u_view + 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, // ProjX.u_alphaRef + 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x00, 0xab, 0x01, 0x00, 0x03, // .u_viewSize..... + 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, // .............Mic + 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, // rosoft (R) HLSL + 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, // Shader Compiler + 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, // 9.29.952.3111... + 0xab, 0x49, 0x53, 0x47, 0x4e, 0x4c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // .ISGNL.......... + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // .8.............. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........A...... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, // ................ + 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, // .POSITION.TEXCOO + 0x52, 0x44, 0x00, 0xab, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // RD...OSGNh...... + 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .....P.......... + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................ + 0x00, 0x03, 0x0c, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, // .............SV_ + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, // POSITION.TEXCOOR + 0x44, 0x00, 0xab, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x24, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, // D....SHDR$...@.. + 0x00, 0x49, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .I...Y...F. .... + 0x00, 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // ....._...2...... + 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, // ._...2.......g.. + 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, // .. ..........e.. + 0x03, 0x32, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xc2, 0x20, 0x10, // .2 ......e.... . + 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....h.......... + 0x07, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, // .2.......F...... + 0x00, 0x46, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x08, 0x32, 0x00, 0x10, // .F...........2.. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x85, 0x20, // .....F......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x12, 0x20, 0x10, // .............. . + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, // ..............@. + 0x00, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x00, 0x08, 0x22, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, // ........." ..... + 0x00, 0x1a, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, // .....A........@. + 0x00, 0x00, 0x00, 0x80, 0x3f, 0x36, 0x00, 0x00, 0x08, 0xc2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, // ....?6.... ..... + 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ..@............. + 0x00, 0x00, 0x00, 0x80, 0x3f, 0x36, 0x00, 0x00, 0x05, 0x32, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, // ....?6...2 ..... + 0x00, 0x46, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xc2, 0x20, 0x10, // .F.......6.... . + 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x14, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, // .............>.. + 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .STATt.......... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, // ................ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x09, // ....... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, // ................ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, // ............... }; diff --git a/examples/runtime/shaders/dx11/fs_bump.bin b/examples/runtime/shaders/dx11/fs_bump.bin index 2a634cbe786016f2752f0dadb1add76b3a8ae3cf..7880e718f0824fe1e48d72d9546f4bba9701342f 100644 GIT binary patch delta 713 zcmZvYKS)AR6vof>e`;k0(I6FA6tpxn)!?JQv`Iol2^thpWJZv+y`>=QV9HYrGaEZ2PuX3ajEMEbiw}e5_lK5gcR|j&%dFEp(Uh<8vg)KLQ6z4+K=%G zqYNz}Mbs9IMqGfGlvMh|o4~{Wa1VGAoNU@cH?)XB!5iwIquoyujPfr-TkwN-+3OcH zz5pKnheyN(;P~rm>_CgyL(l2+_(nR>dDex)d!13_*M_N~mG#)n%F;G%g*G;$t7rgz z?GyvokNT9ZBGJXAHB#Khb^}v*zd6M&__H~{GTdvCQBxK#$de_(a(vkuU|D`^l~IRn zUY1irwo?NPt0RLU#o=Rl?rRFLGd}5*QJF_ P@4~A#_9~mMGsYa>`3Hnf delta 576 zcmZ3Xxmrt6L3F45Ur~NPyJI05Jp0|NjgV85le!_W!Qu0rE9~k_KEL z83^!Tg3tm`eh8GG0;EA==;8%HaRs2b0}z8i1yp?pkWK*d9e@}FVB(X3;tN0m91Qg! zieU~^!y1qT2d0J{K=B7y#7_Xl6*w`~-vo*$U=e=`G9M@o3?MN0z@!gl0fT7+R0B{A zg9wlh0xCfI1CqGKWN~Isp|Z@>@_?fJEQZqf-29Z(9ER1KXE94KF)p6GnRPMa{K?^L z!HlyfuV$+UlG^ObKoNiT`HTxDzh@6-oHN;(qaH{e=1^u_u=zR1aweceKlf^&B5NLd z#)Xrsd4d_|PCn054|P@
2(It%?nDb8y!U?Z^L_7rf9`eseWEZHl|1B51(I4k9NS5Z zk}fm481io|ES?WP?w|3Krsn&Ze*Uf;Fd`^KF6245*GZIsm*F$u8~&x`W*?F08$=L& zlW=kx1{H}ei@C3?2lW)hx-1mS$_^_FO_*-ib!5T*^CxfxT!jm3*!^$FLDVW-Set)< zmr$!jS)`8e3895rg$rvB7~l#HshYIICEPC9gL}bC;51+jD5!cI2gGa;$;P?ZkB~c5@BkSOVL*Xt|uzATN1U$WXQX%NP>{y+T#M7IR zaE4NW#GV#K0$8_JX>faKciB};3x#*7YB)lSJ@Ak-!>)MKdCXs=5uSG)v1^`mowAA< iZ_KEh@z#uYW~}mt`<~VKp|rwk)rQp1keYIiG5Hre4R`ne delta 538 zcmaDVeOGFNSQe)M17~S`Nq$~xZeoEb!v-!!1_fT12q)*5_aPGdBp;CP<{ZEp8%vmV(8*IKyd}2xC0P_KnYZR3y@9#@*RK} z1YqL*K=B120S<aPOD6R?Os1ep&M2L=!r zykXLZF#Z4~HUK3+VFhF|Z~%i11SEj;24Kj5d<+r~n9RcLDO8r3S{_i8pT$rbpPQeO zn!~Vqb31biBjcLMZ&=D1=S)svoz6IW@*mdujB~-{JTN&QOfCSE3&G?fFu8bg4A*wn g)j-otCa>XMHPcnDlauy&mNSyT(Xj$pO;F?a#JPLx4u8)q;Y=ye3E zHIN4n;T*c8ZGHuAb>UU;0-w7_4b;)IUYPqjpQGMS?=TvF3^nit9`bh%DETi- zaseE_K&qcF9U4Y0ffGIoqcrYty^jrCefvu7N!R>zJegjK$M$G34x98`6mCBnbbz{9)Qew*-Mg|6;3 z4j|qGqInn?f?QnPzA!N`fYhx4VxTaC3=lK0{Qu7|k%8e5)5OAQ^+1ITM}YVM7f1>M zo`AFffdGVJ_yFZI08Imlp^NhX#T9_!4nPb7B0xR}r~v5%AngFeAOI8B2Z}EM32-pf zgD3_Is0I&^1P7*u5TN)2EaE9ZaRp9H^`$`Z1T5l>AoGFZEMQw173@bnc5bOYn149PkO+ z+CWH^2U6fV&S5aE@B?t`AD#zK%X8PNfdXo&2gyCv&r$EEXEchx8fxGjT=!NFDEMK`j_qc|7Bh&HGNO+MJ#%JbYlSlvo zwTgo~OJ|o;O~pdtDCIU?At7$<4|h;x?0~i>4(&HBC63sS*-zNB?5FH!>^b&x_6zn) S_AB;0`!)MbZojT5gzpC|GJ4to delta 539 zcmbQJ&?!GbESgh*A%@>2!pS)@n(xKYn%COy>y{dw4ZM@g$iM)UVPIed(k4J`z|6qV z0mOTN_yHdSLy(KB+ZQGV29UZnKnxUSkO5)_mjC}5CNeM_VwzYut)2%ca0G}CaDk*C z;0Z_z5C}jhh7V9a1JE>(7`iwQP+S2h?f}FfAOhrrfC`XK0MZUX3<5B5eW3UPkN^im zJ&0nkfNJmnNpN6l2my*ez#^Uk6j$KHR9^}dPrxGH2r?fi&H}cTfuV=V0K%FBl-K~2 z00kD1$*=-M0KpEBI51=oKAt?4$wR0tGqpURC_js#G(I;!B{hd(^=5JA6h_9?lWSO_ z8RtyC!7`n3_T&QA`HXYHRu^%!wnNA0q??ez zMWv&IgJ1^-hYq5PptDQ;UUQ*Z`oZJ9@AvL5cP}5KUt^~u>!u*vv@@yMS0g^YTnRW9+a0^@_SSM%=_;jTkBLf3ahJk?JS9 z4It)WVPJ3oiU+y4x(NXJAayH%7|3Lh0b&N0|Nj{#GBDg_nwUSSo);)^0EjODb-=(6 zkQN{ifKUu9Ob~_$kOqmNiz@)d6@cOnKnwyJQ1uo-IswRc0Adh;i8}+u7k~sf80tY3 zgAY_g3`l|lQ$q$&`~ep63ZS?GC#L#Npm+in@u?v5f#Sdr0)qui9uUR`pu`5C1URsO z)E*!o1kQlOfgywL<7+_i13+<*K_I0Im?kf0@(?P^Of3&6%FkjbjnB?+NS`@`!S&v)K$Pd9(?b@q1gUU=~_B2@PnB*T8iIS4s9)kqvkq!PVzC;3m9IR74sSZc*sM z>j3e6NT=tf*2rNo@N^!5ZncB zjNl${6C8Kl(>y%aGI9-^_@N-bpEJyaU1mo@7jYMU{~ E4?GE4dH?_b delta 478 zcmX@aw~IH>E!cx8U(U{kk%6@|KDVSolHmXs3&R99mk1~4PlsiftZCY6u;kc8Lk{U5 z%!~{SKp6%GRv>Kx#6HXn3`>Cc1`vw?#e-a2-2^5EN;BPInwU4Ko)@U(01z{9g9r%t z0Wt#!1RxXx3loGP0;EA==;8`MaRs2b0}z9N22{NTkWK*d9e@}FVB*d|@dY3O4u*OV z#ozAOlwg4R zd=HQh0%t(tT$nz-1{6O46n6ls0V&m(yp+jPs4O$JJfJ8)ivbu(`6;P6468S5Fy}Bb guAe-WWjf>9$-1oKjB6&lvg$Lg+g!?ehLMpQ0Jh{krT_o{ diff --git a/examples/runtime/shaders/dx11/fs_hdr_tonemap.bin b/examples/runtime/shaders/dx11/fs_hdr_tonemap.bin index e8afdf29ec20d9f3d19bceb2394a671824f9e746..d7a2d9a3fb904c492dbc9954cbd5e7d8d8326c6a 100644 GIT binary patch delta 618 zcmZvYF-yZx5XbK|3Dty1r4$FP%_LfLmX_zixUYau7ya$8Y>cb3z^w}J_T-p+Xz-7=y#CQ@HT?g<*VRV@HSBe zsaM!Qp#^UvSlxjXxP?pF9opl0@bmy)<^|w1BnM96SuXS8{{P7RbcsUiPeBe`gIjw4 zfaH(h=>hzS7l7lbJ9>p@y(8Dai7y3x1e`|ES;N!wlZFrx#rq1a%;okU9i{dU xi+Ln~q&$_tgJaMYxZPqVTOdEFG=+HZW7@VR>i&Tq7FwNGde3^)ca2;~7{8EiQGoye delta 469 zcmZpY{Utp?Jc)~u;S8@!gp>2R6GnAv3+`Ju*|aQJ|5N2ABLf3ahJk?b349LeIH*R2>9LDS+RF;`q9#E8@#ZVfbo1c=J!?1eu f4dx?^jB7T}WsPQKT)p`x7ds=6V&rLHV&nn8ev^IM){=qQneR6o=IgbI;?I0%0mCCWmK!S9k^IHa0lF$ zOSb3^zYkt)!^pSJ0G_ttF%N}03i6~K@bIZq;G24Z@bD!vax#9^-u^!D6nGM4u>t9W4I$c^%Q+#> zfoH)j83+pMY-IF!WqRRKrF4tj!fb7(iU2ScWDDRr)m>Um&5V~OsqrlGg88*NZ+PrC zJ{w25X9H&+!HycPD?3K++4$l&sNUE?eyMV?AIE&?kT;N{zf1b%;lLM9BZ^7w`2$;0 z@>MlH&vmsG@8=EmC%&K8RmPMPPnj$HN^O}ZxZdcs9y0rCE%6tvYsr3mKP888x6XY{ G=EOhjmV=D| delta 772 zcmZvaO-NKx6vxl;&DVX+#1uMWQ9U6@7r|h)ax>~^Ez2O<$e23MlnG^Q%H4}r(jt|M zvl+F=C?O1lFuPW>hzN-mEm}#;(w$NZ#f|+>^Pb?xfphOYzjN+6_gv2Y_1$X=2}dyn z3z-)$XWOWz0u(M}?A){QnHD0GNfk2r@sad|Z70Y&wjWPtM-!BUJ$Etvw72hQCpYxF zr}(YszH#r$^p83d!9x_pepfU=v;p0QM!^Tu{R0OEk;E-7H8*`R7AuF&C0HFmDH8`z zYE6wp+_S%X_BM85r}+-J1)hS6?0NBoYQwNoP!XSB0CxpM$dQej0Yq+!BXaga61;v6 zPk~$NZ2Tke;dA(q3}iCM05Jp0|NjgV85jhaCl*es=LZTL0AVg50RKv-o!aVQh23d+mPPf5*T*j&uy!N|B~@*d{X OjH@?yu>4_UYvr9F7R|}X5W(gW;pAMmw$abXyTD=Z{@-P%RPP8eGB5yT7#LWAv>~Hkh&E>3>0RN0b&N0|Nj{#GB9*9O)Q*L&kYnf0K%L=0t!xm zv;ctsgkrb?#?6n}t4+yf}C0CczmSU19gNT7HE7V%V|_yV9f3sijplLUm-0F>AO zlmPh*$OQU$awU_8P+4Ybc|cKq7DH)#ZhlH?4#VorznMH38RtxPVL8n>d$R!RA4Wz_ E0No2a`2YX_ diff --git a/examples/runtime/shaders/dx11/fs_mesh.bin b/examples/runtime/shaders/dx11/fs_mesh.bin index 29155357f54bdf28366f6382896727ba200acb44..ff6058ed2a6be7a0e2d714932987c016e06c9ffd 100644 GIT binary patch delta 568 zcmaDY^jUanG+J*YgAU2|&Do3rIl036M%4 z5P(n&SD^eSKpG^5F8%>1t^gEw0AdjM0aecdv^)XGcK~7#fQbtM#TNki4h#(SKnfut z36yvMr zeTx<}OsFa-FE>9WHHTrdAkz#+#?_lwF|#u> NuG+kbZ3h!07XUo_Rx$tp delta 424 zcmew?{90&&NE9a{g9E2agp;#@g20ya0CWBATP{z&?(ugKBLf3ahJk?vhEFa)`{xyiTmdNV0K_0L1FC)nkWK*d9e@}FVB(vB;tN0m91Qg!ieV2_ z!x@kS(B%$bQG|vYK=B7y#9si#6@U&$SN{_zo`6N1l?iA*P@Dy7z5tUrgrxwKSOS#* zG8qIWi!pf$m1U-u2NdOJF_gyV=BK3QFs$A@lW7Jc3??_gr&1ONw| BHrD_E diff --git a/examples/runtime/shaders/dx11/fs_oit.bin b/examples/runtime/shaders/dx11/fs_oit.bin index e3bcf2510c1441cd43e8a8e718644806f992ec2f..998251b09e95f98eaf4a8a2f1b5dffcbc4ff6f8d 100644 GIT binary patch literal 1180 zcmb7@O=}ZT6o$_|@ZEB4R54^eOJonspZtk5a*_EkJ&fWu! zF7%r1FbF$WXpqq;N*j$wh5fHD=RUr;_3M>CQ~&(TI@X9VLv#+~9Y~~zcA*c@56Ci# zrK2e#?yEpN&O($P4(Tn?0CNjmPYCYixK<9rC#_(M;yC8si;xQ)Wbh;7i)_9m>u<6? z!pQ6_{|+v|b%^7q?4QPdT+}+mq4;I+K58A}Q2Z+RA!;4sP<#$tz*A4?m}kM=348&( z&wH32Eih1XILv4M_Hn@vC-4Yd;9T@%_4v8Z!QBb`HFzH!SD3^*)Ew_I4#4@`7^(B@ zHMf0l$MV`;iZx1+cCwOaH0OA`ULbRdQ|L+m(c^D!*I|K?9N%dTt;;0f-N90tqO{0I385 z0SLuV0_C>=X^L0&LS>n$ITo{&OsO>D<8fDWWTFo-h zg=C9pQ;QZoKo20~0|Y^|v+p=}vcd!3ob&z8xqs%?`tJJAhqgk30)At2DfSQ>o1VD6 zA4x?nPOi%zlY$5xA|LV$qqJGQZetjYCcF-DxC_R? zRcxwvXqQicn?3kExXqUcI13DTj&)`xyjNBK^S&w2dn%vKCBohV7ZD+FST_k{2r^e2JLHODdP0dX~svk~7gG$*ng<6ICnXyA+{s$emf; delta 471 zcmdnOvxa+uXcQ+SLj$Wzgp+flMA3vFD`rG*4F1KFJmb_!Mg|6;3GK z4?t|g%)r0`6by24b&CP=LFzn!7(~keF$2s0{|plu7&Ip48`pCK`3XRLfD=eSK?X=A z5C}jhh7u^h1xSO$(8VVJ#T9_!4nPb7Gob2M0O0wd#`&A*wA85w6!)@K!0oefm( o)}#O=85lrpGX@5>CZIt;CootwC;&;I_~dL>W1#x^tWy{{0ZjWqCIA2c diff --git a/examples/runtime/shaders/dx11/fs_oit_wb_separate.bin b/examples/runtime/shaders/dx11/fs_oit_wb_separate.bin index a1f11f6cde3bab9c0b70fa7d2d488abb2d347ffb..6ee7115199343c9b2b278d20750b4b00cdadab10 100644 GIT binary patch delta 573 zcmZvYy-Nc@5XEPc6XJ;|0gHfe2lh5eA#%m4r&tCN5gQjVMMS-z z!+Sgk9YKT&5eDTTH%W8}wV^!VmcPEyOAvA2Cd7FjB5OFLDp9i!#F}{b)>_6{=yWkSy7?}PPE?4jp;)r<~Jc5@*6{JxigF+WxLLBji1#lOK%5OU2 zi{NSu_rN25L`rY);W@UMPyRkf-%kpK?w^9*Py%=HGg8~12VH@yG5i`l0=G>6Ej&j9 zxe3lc$0+{Ma_vd1EEiA1onqmF%KN3W;0OsIuU8?sS(+~6PJ+Y2F}2bOCB#GPJed{Z NzE-y!%&%5M*k5}URgwSz delta 429 zcmeyt{ef$OXcQ+SgA1!mgp)HvwS`gDcfGYX%9#hOd;FI(GB5yT7#M(v!32nBFflNE z0Ad?v28I(X3=Baou5K|vK1iJh5QAtLAZB3s|DRzZ1B1rIeB*jT~u!z3^iYove?f^CgVZl$Jcmfu2R$yo>0Ez z__A--??%r1<`LWn5hT{@l!Dt*`lQ~6g^C~t|CsvWtx&INBnsxDAI{l-E`!V93WCdJ z^?Tqdas|QFIi8H~lF`!Ik-b9Df2Ev+sq3rDwiLR4B3vWyjtFI&KQjr}Hx uq?+}R{!M3=A89c!4GZLy(KB+Zv!4 zNSy}|gVh6R2A2Q-8749?R4`4fH>&3a3M7C;xj+O2%m66`0s#ocumsBA0;EA==;8-} z;tD`<2OtK46HxUxfOG!gcSgkSb`z}5f2B7Z-5#EWWs$A3*>wNit_-) zK;jvb!j!i9*wB^g*2G@E}g9~#*oL1oG+-H=SQk)(Cb`PioN1`%Snt5%P4!vmnHb* zOgTN7=KLS@V(dX8g20CY1%1mW8`V?x;FFKq_vBsJya#^2bAF%i@BDt}o_p`hlP~JV zDtqjV?8!h(i)#ae4IbJ=Y)c0E^oSn!P!5rt3=C+AP&}+fI<*SgEkOMhMAH9RgC259 zQkhheH*)7|z3q&KU7!%z_p28{jH<3rq~Z zksrhyMBD-sBhMd!X9OsvVKGs{*zimUrN=jnf#*zk23)lt&wmFVG~pjbeQ@jFu6XdG z!~V1dVHrZkkRPnBE_X(A#WR@e>PslU=jfEXpJbG>@pF4o&iJ_8K;sEs{E!G7Hc?stQiC zyw}mlW_jAt1pnDl1Ha?wQx>7+a~658+{hMrTJB~`{D<5G?^EhPT9psymyp?vtHnzp z$!I571Hw_`8xXn}r}H{*EbCxP*;LsoV>A4UvjhIQ^OZ7(q9NMw(rG;W9X(keXB0xVx)fv=##4FBp{VXt}GeF=WeonlkGqkNr7e*iTy Bx%L16 diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_esm_csm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_esm_csm.bin index b18dd927799c58ef32cf2da9560ecf1fe9352945..5492c4e8df50ba8deee46e6512cceff07c5cd807 100644 GIT binary patch delta 1439 zcmZvcUr5tY6vxk{N!ycTul=5X1ln}D5xpFn#nofzZiS*Ee zk#Zjtf|6c*(Nd?IAVpBni;z%IU=Mrf!RR3&5TU@n*ZrpR#}1r(?)iMr@7&+Lzq>th zj<-(8U1f|)W1fgF>gyY*muLgIHs5f(n zNMzJah9xVwDdq_UZ}$$i_T3By`Ul6~U8{v8_(Js8Egy@Hj z=!)xN`$jR5sN2F&idYG!!o5A3Bzm3*v(GGEC6I<_Mkgj2TP@5)qmqA6@-K*jsd*aQ z0q%qg+fwRx5xvNraA8@l!8^|&cM`=B4uw((Y2;40u;sUt( zf#86k z=Eb;5b$NINxHAtw1Mbel+rYht{PMw$yCFmlg#&&cd{p6LN7)k^2cO90e75LPbFhEt zS}-t7_<={mcMt&Fnb{DyGF7UStS{UX2vI^){7u7F6PqQ!3k-8usCm>O)}uN8RbS2K z5`XmtYC&fdLap(bTIe(hA#Cz!RIN58A?!)lS@{xrw~sl*5+vp>zGs#BL)pxh_>|m) z@snJQ@sI2`B%x<(liY7^U`ak@zRFVkm)VX{XE_PdU|BnxLS-4gp16T!$_@mpM>?k5 zzh)(#%IdtjqJyOpcPrjAw#aKMJ1`DcJ~Je8mQ8Sbm7TrjEmg8%IfpNEkIjB!0puM1 sWTI$Yfcef-2S%b5c=p9t_$)ds@{d(1_KL@C=P|C?9V!Z delta 1355 zcmZvcOK1~87{|Y9`dk_fwn>xNc2lc(Qj7IP?IE?XDjp22*djs_)1Z+w8`7jb6im^A zqN0s+5v+Zii18rg&_e|UFCIKpiqK;(LM4Y*e1VtxAG7OY-GP~J=J)^4_w7z*bEjj> zJzm#W#i%Ojiv{9=fx-P&TEe;_=?f|mC2plvtg4f~fj}Y@4+kQr12)>wp?({Y^sj5s zN){=tShs`MBz=+arOSzqfs5f#G~rc-L&)1ArKcS2kZV=BCl(4OBZ0W8dm%Y~OG?5M zj)#JYuo68Ljf(w#DgCACJWMN%p1xz9?n3Wc+quc5rysV|w&$Efj0g%*8R7x-v2vnV z1<^eE1@Laq@vf6#!ncN@3b7uYN;fwtO=Qa}Y?-AT0+kR=OJY)NeWk@{QP=(II)Nyd zo{xgNz}@Jg-BkS#5dB!Y(M8kv9Qd>Vm6Q^Jo~avN2%+--4R63#4fqPU3oqvWmE})? zkKld-{#E1$M<}+kVtumU6rV%TznK&KmCA8Qq@Bc0@FfGj7kt%#9|GS1uSO1$$Ah(K zXH#N=qt^=oa0|G2puY=8!CeOYDtLWv%lq;Du38t%qTryL^_ZzylwCWtq#Tp@ggN`ELqx%{p2l@j(OAFNt8nJ198 zZPX>Q(**aKo7qJEy4j=`xJ3vHmaTeWxkd=zYkVcTR6&~%ZrFO6c^0|5uDL`Bn&pMM zRyNCJ`(cc|_GXMD_MkZfP4i@U!QRR;Tz2#{Wx<)7=-`jL?U+{Xz^^85nD)$B&Kb!?=%pa^w3Lz zj^jgQpkNO@m`ztM2tw#3L`oru=w%f2;zK@&^bpwpxH~t;{op&_`F{WJJLjHr?_EFk zw_&Wh*UZQib4R>UZ)o6@Oe@GsV{V@kRH8CvkXd5xkXQ9b1K!|euT1Mjs81%6c2^C^ zWRnt#d=PwJ%pDBexvRE?ZUy{d)ujyiv2K%;n5;PudA}z2MEt&3&>Pis7o?gUNl~4F zsNbgslyG-AEc!iCV&lk76fIXedoQ*hT~^&o<}2SDJCu`Ev(xt&5fq{l#MAJvn0WRQ zjl*5wSDhW5Pr*c8621q12u{YWElLpGF5waOEPfc|6MRY%TGmEHEzFh;^hC>_BMMf` zUxM4g9dKbut$q>FgWLfZmg7s{Q^*}eafH0E3L%5s0T-5Q_yKOmK^)sO&wqn^bohqY zKpea*+wc#$FpCk~RJcxde>wmmvrEV}90#|X3mdZhEVxI9cZdzZ5w^{xO+1K6@Zy{6 zk3(401Or-fSFM7t=!0^HN-mO$c4QS5wEtG&w<;(~F0cF?aIG@+!V+u3__h&D?^qPO8J$CHbri&~vp5JS{b|1->Trur$A5X~8&T zX#knDyqD9cY{iv}&(y4Ko92qO7FDCxE|yMxvwmc3j!%?#VfqBro|W4z&CY_%-O|JbTeye;5jj@~lSix)?o1}$nwo#V|FX*SE( SD$ZeSs2pam_;lqmll}uySm;~; delta 1237 zcmZvbPfQa*6vp3_Lg{u(+TubgB;AB45=|sR#GnbNSTu5|aFBSgU7>2F(7J8KgabrL zJPMf`f21N%6Aof}Foc+xc#uRAIC9d)vj;AsC-ED)C0KTnH}B2wd-LY)?CziXos$#Q zy>>?SR4}gT+F;_GLR(ndQo+7hG^Q(*!%9vC2eo8ak7&`GS{3aSq5di&>Hn;RLM~}C zrqqB}rh?JPgNMn>gZCogp=2O797f$nX>!i%gM7@8d*b1~R8-RqJpjqewKA_wp%CI4 zK2lb5SD`rK4o^q#m8(Ae)cF0bsgW1IdK!*5KOSR5P>4$5n_*oDwqbG^(Yl+cyW^VQ zg|*0AftA2&VPxIgqe-G~Rvu?lqh648SXvTVeyAcB!votJ1wH_t7NDF)g`=dgVO$91M>kA>=S+AST(uv~e-9oq;U7hPaO?i5c<_?^ z`LqpT1w!$Y{Q&=Da0@mSZsI5SmI>bl&zbPQ;5*oNrohc%DSU z!vQ_^i13TW`omFL&UTkRwXnC@uQr>-IfDYNW2&e_GyJ=~j?H9Cq_fO958!{M3QqI9 z&C$f>dBV|xdD&5idDGG7T!L1}S>kPS6I$36V6S+>a}o19&j_34rz_D6c@AxrD0n-ElB(2I~zP*D$i%jiKt5WxrgUiX{Mu>9C0a(Ujk>!-flx%EBr1K>9rX75B7Se6-7C>r7V43Rbo;yd zBr4NQgd_{NG3pNZZ`|xZ8@%TC_4d0$gFeh#qnmhUwnILo${k@}cQoLQsJaW1nU`zL zT8TW!E&Q0)(j`$C`I@bz^IWrL;%cbsiJ|G=!O@?wGuKZuA}B-!h;?wimS_`RT}0Fm zeyQbr>vAEH=v%>1jA(^Z{`NLa5It2w>??~^2&5sJ(upKx3;C&7rq-X-`WvEP**ppE z0C&QLt*HH*h#u5VxUe+W;GL&XJBeZldqOdUBx)yISo#4YxC47|?$AAM1NY?M)!O(3n2zY4GJ7JPw}B!QX?gf$K4cm}d#Ku-_u$(`NI(;AP-3@kW^oZ$NNB z$mWH(N;Nt7VQ^;-ejMDDgExbF_V~r!9d|(p?+Ls74*0Oj#g5V^^Zf3(Bve)jY#A7HSxFi1lcif7e&C zX=O|QN0TM2mI}dGww^5*jY6n5HfIa>B_X_&8d>>U%-uTT5KEBATlkno<_BaGd&{fj zdW>$l65~C&+YpDI?v3+x`2>seDpLnb@F9~OkZ#oWdc%9eSNu{ZpKr46IjI%!ZcmR0zS)y`)47prWT%iwc-wZeX67UUHE tWFnY45BbKJ10&HqJpJPHyuQMYnXgnN*lS*DYsA=Y8)C2cXWJ6f{RcIu^yUBn delta 1355 zcmZvcO-vI(7>2*$zblQ6*p?Pbi)f4o4Y4XjNUTy(gNY4zAY4i}r}veeq>OI+f8cg^;U@#z7qEo@t|`%=0VD zp8_AjJ9YRskslmks}*k5ClgNbDFp4C*}-2b9EU{eN$dt+(%}cdS9SOi@D1=%Y%DiuT+7o4eI_A{n!ad-(J~<{mNjXG?G_=pEe*^#h1|_oU7`d{ z@s!ogrue+I4&$1&2IIE!pfLkY^<;Re+|4q4zPznE3(h=5hkx8^#I$4=el>B!)Mw7} z8rxoYTWkwv;gu9!Qr;=cE9_2|HGs)v5=yo2a8^MC`J!G6%<5I)%yP2ozA%f=bYd9e9!OqyXWq*TU+mM z>vMLlU}TK?dt^-xo!KnWEb8S^e^*!yYZ9eVRYd(EIihGmS=}c~^rHYBmxxS@yUs{t zF~!5uDsX$$uLe(?jO-2_3o6|aU-+DYb2pjd4_t1@4qfi(QM#h4tm(QBl8g73xeO8o zOz~eeD*F!4H8SuIfl9o9u1O=?t;C}rX@vmeD|Xy|h_ zcQ)tG9q<3(E!{5exP}8OEZ}0OTbIu)o?Oo zG88AWl=1iMZmb666+CScTGrB{7iP&O`li=^kOeE`1bE?_dlQ3@(uHN%l6%!3z-No_&*14I z{44km@CuwE&iRE}m_d9V_-PBd72EV5&nI&@F^q!Uv_mCTwm&4dKC&ES5!(~D_v8h*|0X^3C6)Uu)EprwwPM*&(cdjzLZ{>j?FM!D6t9kI<;ix{$X znJ1v-dM5ZMTLYWmR(l7Vq2h<>#BoO}n@s+7%rG{>pI5db z8lC;-WZrQ}KH_w<$NZhsX&%etWBg~8du;+_2a!?3XCpqm-#0vnMC0(>1C8^YRc@So XxN4F;;#OB9V!P`C8|JTFZ<*;o>jeR5 delta 1408 zcmZvcT}TvB6vxla&mCNFKW5!cZ5Jvm2$Vk6(9BG+FEk-~YMpedjolrYb~C6@f}p_2 z?Sf!xt(qErvEV~cJs7?OMOY-!OKjw8;EPcYVgH-6wrz9Z+;i{mf6hH~@67IfzxLqdqXD!YB?1Ahw6C6x5Iy6vXD#U&Liq` z6CG{X-}nMdFE3M!=voec&u;gWg1mw!C84cYugHZJt_12c*29Q`W%B#r zKJYrYu!NC6gV>IB9b8z7zXp#BkWW1#&&`~>(Scmehh`vkETcBw~9aP^tO zb?`!P@j&T~2f%$Md=k9Egg*nXGvRN+TfloV8+?V(Zc^|Iyvu}p@QL*rT%0I%LtDW6 zO?WMM9NakYfz_*Mg^>6wta256#)Nl+&!ux7%W1Zs52)QOx^|ZE*PwN(L3%jt%-xX1 zp71Km5PQJqEnfDJFJXMdWy#APPw$XsbFIU8^6FlnH~Fn+t?T%wC}?B&b}VwlD)$^2`!Z~$!!h?zu@q(Nj~UkV^dslI&L{PV6xF!26)){ zT%JNfHD0ZFv69hsikHe>WYx$`Y-;+dJj>W9Z!T)W7%LjGj;Hk)=T&a+#=9VuL>3(z z;pai$Z~8D2-Gir|<{rQ7_Odu1aTi%9()a{_2|midxSz5+e9*HSu44dQVBTj5;geYWHehpF~kqc>$M4@vAYTzeXVX;IZbmZ^qsL=wdL<#IKV-p@d3HLH9ozvIWSvUTXculiVITkE8+rh%8qTghFX{=cuwLuvHR&Z zgy=3Iw&5YTJvVVfj6VZ!OTk}=3&4@KETk_MkVD|fPwrz7!h$aB!m+WAFH6_6VEf4LLS8&pn85 z_!Gpp;fb8ZOyf8vtQ@e5L1~=dHI=aO@R+HdaX_yThEYa@KJz=p1s zf;tun%hDoall)s@9pVw|h%uaSc$hC)ZR{0avs#VQ34EI87ui^dmls)$GYNc#Uj?7! Xfuaa|$xG!bM7Mm0P4J)cCuaB$nNR`L delta 1423 zcmZvcTSyd97{|Yp*Bunx%dBoHyP(m9Aj!;2RBEP}5t&9CV)t)iC}_6C%Ys{0gwo#LeRIMn7OlJ>efWXh2GH8~sH z9`^cux9@~10=Il>FjTK~s+hMx>K}2PhwL!q#&)$e>{oO{uZQH?k+e{iPgh$*J}p=q z42tnB(6jm3l}FG|LCMNf_X5Ng5V`3$%Ryc{7) z)bKB%Zb82sAxeyY1dj-iN?oF&uf~8iA*AjfunxXz!YL68TlV{{;4LOR7d!%v>R&mM zxV=7=fJ7n0pR5vm$>0YtBz6;*!BZjRxM{<4wd&5gD zgX|UmW^uDwzJdIj%aWVT%@;|_$>~Gbd0Dqd9Ds&+k~NPF%^$VavGg&3>PH^IX^i*S z3fUN6uoWZ!wB;dN?XBrk&|;n`-eWIhQ+&bR$fmi)QH)&SI1J)*ypyNlEW?|M7nO|V zrg^FChUc3xtdvnJeN6`KE7-6aegh!eP{%vgvg>}BK$7s_cISN(F7v4 yjS2n&&Im}%iRasKPNE%iPV(!&m?kgFL}hLE#J(T(w8#nX!!l<3X*{1k3<94+|O?lNgnd%$<9Zs9ur zpxcjK7>VZLdXITF;&9fdLC|Tp5??7_xlmNOz?L0OJjI41E4*c_@(ji=m7~HN)?4*S G5dQ<#E8~9v delta 1208 zcmZvbO=uHQ5Xa}GY4f$Qo78OyDP%#kC<;ZzN)?P+Q$-K4Jy<-LtZCF}(hX^1g&tb8 zcN5-4)SC3eM(Cx|gGiAIUW67>@Y0h84|?gLr(Oi>|JjYybRW#jd%yq8ypLr|9nTKs z+Xftr9JxqZ%V??L;|i@|ZOcVsdQ#6QRK-flMN(Qeo=IrQt6D2<)}g^xBIo~E!wSjH zg0A?%TXK324Pr|NYvJR7)h|=JFJ(of< z)*^2K)&OgVk#&2U3PfM6Jk6eu`9MCyN=~8e3{~V}$UA|K8tb!&g4OfO;3{|!CPvuE zk0M5~4#LE!@dw}~0qis;0%eVY2_e|`7UaRJCcFf$I`-zj1&^BW528P~_3y5@c*D;A zv<_hbLjBFYgMT!*1x2-&*Z^NM;alKU6aE`~6I?Jkw|sdaR0WB<4N5(%j0K%g3g<-_-@* z?>YcK;)=QFpx1Ke_)pgfHpl%^KPz)x>Vhvz9Uv8HNhu?<8}ErPLC$d%o~X==?f|lu z-My^5XxsORu_?aN+za0#zi`hWrPh3gFUf&}MUc}(jtm-!&$9JYg(sSY)iP)Kwj5w3 t9`Ljsd%cT`Icn{q7LP+AixG{hPVt!M9ec(7-ZStwyrXQAfAOv|=O5$Vw|@Wt diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_csm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_csm.bin index 7783cf963216047781a4f108b78bc4638d67d86f..6eb58c2826c839be0441f0bcfcfb8715802b8cd9 100644 GIT binary patch delta 1374 zcmZvcT}YEr7{{M8Kc?Fx&Ao1JvkfGIk`gltEm*mf>Y|Yl-q^P0u*K%qbV`U#ys3*q z$GH)Nl)CW7{Cdqv-%#L<7e;|WT@1Q0y0IG*y0HIo@7x@F;Q9LfpZA>ep1rzs{>_Ck zLx+Y@Y19?=L_ERX28q_utD`P&C=iNBltibCx`LiQU&QYTT=Ph@m4mt@BJIJcUWv-J z@sMN&uZ+3^{_Z<{7lXI`zMej3XuyYc>$UO8YAa;DBDaTq-e|xRQFJGyYF?qPR!ihY zZRRJ`=1z&isK;s?9hX}EOb*5$-r9US^u+e+v+?IRBZ5Lygxm<%sfl*rbtOc4@EeZH zt?R`^Vr~cWRti(OTdk_Uv;gd5zZ$$lWk?}5AX@FB4QxN-sX2)(dz*Jl!#)Zp^P2c#LcArcAJfObUre43PeJgxI~V;f7z6UL8>EpV5q z4RP8uQ6}TT^tLj;Znm;H9x@xsma_N~AGKJI&V!u8|A+{dEzn`p delta 1289 zcmZvbUr5tY6vxl?&)kNik?l9vZ(}o)o+`=8D1%i?iyj;*B)x2Fj#|w9#@vz!nnaL9 znDf2_{qfIq3+y3S;DbhiFGW2F5edEcSQunbLG@tY+kQW*^}BHIIp^~|_niIi?p-+i zxNX$lYhq+d2NI!VsDEIOjg}DCqyu3krX+2&f~Ynf=nthL$!I8cDkRZb8S0aW%>QN$ z*vM+mDmEFsE**$P&z(;l=|3Bd#8ZA{FoL?x=Ipqm4e}OM?oLF)=~yVK>V8O$4M|D) zqRB`&6;G@b*W5Wq+oVd$Z{VL=GS|2I4bU(w;q;2wOK_ji>) z4L*Peb@*3N9~`DMs!RRJic@?9q5R9Xf@oh>+msfuMW?H`@u8i4dx*PbvC>KPw4Q^;6o}G zU!4o?RzMk9k=xal;@sFJ%3Et>`LCzT6?SE%$wVl-R4VOXwU4~k*a&q{W; z7_dC8fN@)2!f>}$&Kc@dk8iVmv`nFK`&EzVPg7i$TG$ltlv=S~mm0CoN?}VLnwFF2 zvb}}nd8fU*p#aXjMEib>w81rQ!T(hd1H}v^>H!JXW z^&PBGY;-KL>Pe(IxLcAqlXtR7zFWRy$$@F@bNsFBZW;$UfOnZhLGc%VyXC=(2aKs@ uPIKAmZkhnmGArS0nKSUU%o!eVy3s4+oMZQStLqTf0oP@AkAHH#V&-42A=AJB diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_linear.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_linear.bin index c889afbe6708705869cabed2c78a4f62b310c0bd..d192c40111a30f45de55afbf127b2fef0319a4b3 100644 GIT binary patch delta 1342 zcmZvbUr19?9LIlGXSUrf=bwv-g^Lh_9+C_!3!2S8ST94v2147KtFCOjxWYKNeJFf9Q%|qRlciDiMkMUE>nj z#grm7gV)EsA^FzrSaO$AAb^~h>4 z5R;Y2KqSJ~`^41Nu@RU&bv>R-uHiMa=lcDL?RnvJ!a&Nv7RhN)g?xVo~8)@+inBf53ePe2X8z zFMcq;U z62ht`RA7nzsAJ&k2K*j)&VWAx-vqZ}55CVddLA!%#j7pn^Wb*yB>zRF2fv5lfKblA zg0~y+4REIc-v)OZaFKteMSi((<5mdKqEO)7;FB8XH`1TbRq&}&&J@!?mmHZGmV*hx zzg<paeWUQ{8U(^Iwpd70l5S#1qwzpM#fS$~Y&CjlfCFk`yOu_)Ep19GBpg8G z#zDy3RA{CAG4UYU12JMW@j_A(d*mdIS3PjTi?MzqTZ3gMdGF2peQ(~(&Sa-OzuIP7 z22G4i=|DnFsHn$`2U(@L zxWfhBlnz8AckiVx#O_4G!zq7!G>pFO(p<*rhI~|$`xD_%I;ti$-4Dsh)q1DVK|#!2 ze7xRu+d&D;i?-guicOJo=1!b3Q-;6DcE&PwqbHT(ExZ~?`5wQ zxu{!%)xug~WGI(uj_9j_C)m>oC&(r&D+z6XD54g_x*zDImY+uyteRf|SHOE>?S_ln?7tDf}ba)nAF&(ad10K}jA4Gp}!{1%;;kEnw z(>8=P2-RQq4g8bFYp|$t6FGw`D=j5}A@{ ojjN!&Cki~#GOW^JnR{$*boSZS*#a-yy5YO+<7}R<+qanX2XN@R82|tP diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_linear_csm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_linear_csm.bin index d88ed093ae4b16c614b7df944e0c6e21c2f001c3..2b597a6a2d67e9b5f75f0fe826443eb22d8769d4 100644 GIT binary patch delta 1366 zcmZvcT}YEr7{{M8Kc?FxP2bIZ)CLkklMpiujas>s@@6EYH?l1qw%FX7n-UTeZ|Wla z;M@dJNd-Y!n#)ZHGRV8U5DE(V8gyfHkr1fR#rhxj&dsq0&hzp6KkswSd-m!|>*~oV zU5|=UdBhoXhur?5Mv2x?D40PeuZ}o<-hnIOGycn7&tTXQ81Z0kgL?Xb-VC`$mb-$UzKG8ql640pJ+D&gl@hs- z8@W|!?3E~p+;YI)bGGfCX*2o#>DGiN-1*H^yF9^&pb(WHHeqR$MB7;PWkionL>KMn z+Sf{nMBh4GIU+DoaVkaAME7F>_JKt)fk;6#qZUcpmWtD{Qm$9z`Xi!X`8)}30k>fZ zTbKK{5nZTlSi&+~fiusbwh=`UvO+n8Bx)O$u*?J1;1;}tZHH$0L2y?AUJpJ4PPhwU zO{j(01;<6$b}BI^y+1i1B=-pE4i~sZmHR-NUjug);5Wnu;PM5~E!4v9AkKs5-`v9} zgtxMwKx5{rXTjGB@Hlv~0Dl9%0j|LeF=rLEu&*NGr_JZTz$?L{;zYR{Z$hv@$mgZ_ zlo|?f1GudKKML+Bz}vuGS$<*nje8*kv%)UF4n8Jx@kW^&x(z;+%lVU%^DW-N;Y(i6 z2;mPr6u622;7Dh~;BqQ=$(29Q@9|MgQTkcImSSJZ{uQy=*eA^+1;XgQIT5V;Q;f}W zYt8Sf1)QOM+#-%bBDeEpy^f!fYS{wsmYU%wr8@YS)K?LQp6QMAI_)tQ=iS;amf+8{ zX88Bo!ytdPua76tslug;4@Wg-fhQ8I5#_l2*|f;?QxB?|^SM z+^vY=!OXTX{=;Bqb3A3xRlLgKuejM{J~R(<0{2)T`jdnPL+x&wHl?XQcv6bdDz=BHu`0cU)-uRumKz>7gJ(4?=rW>A@D%gC6QTX18kGfthdSdEfcI>||!C z^Hs-~qtC*~k`5$7$NN=!*gw1!n}IxrYYMUv4_tUDyrMj7gtiLC#+ zh9t6Evx?LNzB3(&MF%dXjt^dlM&c>IG8{qPHfwg$*$KH`lY0}9a5@%BYPuhib6ZkU zzGyNMPDPdY*?3&+4_dQdThGHZ?(+4WIQe$*cA@xe)3g4e?xXo?dmST!LR5u#2>nJi zQKE)u7TpEj<2%)L22A)qVXz8Sb<+|IL!*G z+VGN9O~dBo^ODT7jr-X&f8KcCmIKqv=lDQV%ic+lqj-=>BozPc_q%S4c)94hbCwt3 qoC49ECd_r`9Ok-nj(=%tL9HFGr|cnr?drg2Y93(^c&2%YS$_fO@7Bx! diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_linear_omni.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_linear_omni.bin index 8e53f4606dafd8e95f7101f12479c93294439739..2d79fc1f7917dc543c6ce10bf6a58be806b55d01 100644 GIT binary patch delta 1482 zcmZvcUr1AN6vxjm|IR6F&bzsioESt!rDaG;F#n`P7&A+JsOD8~wY+mOHw_|Yg-}qS z{3s}qH0UL=rc(!5Aw&@oBvB8()L!bT$jFx6|-o&iS3s_xygpoqI2PQ1QPyu#RSwL5$V@=^+;sU z4|$|5;3mIQb)7r!t8%xwlrEpc)2HCv68+G9Ya!%3O>XK|+Wo5R)pQ3WD<4j`rb^VR zA6hEf43O)0`V^m6KIZYdWwqX`C|web>iJ$~E|4gQ4&%CxYSphuG^gh>Go8U?XehAO zwp7>bR_~ZuSM7Ul5)GFMw0( z@-ht(8PfSjb}vu_@)jP^3oU99(F-#~6aCQYf5?I*^2}5s8@L@V%z#>$4Y?KB4i^^V zJHba$+lc~5YeFf62x>cASZqTjxDA8YSLhnA6Bi`mC&UHdlo{P{3bim*a9#X4(fjEl zgvdG}y5TywEh~OQl-~t!O~N0F3&4?9ET}E!kb~ffPwrg+!ki{-!j{;h{scasgnt2# zB;nt|7s0b}hB#*lwXjt2dEnJ1awE6_JRp8i{KZ=#*dQeGJ>Vrtcr~~^32z2>B;lRl zt!q56I`II6?lobRkAe4VTuc;uLQ~*_N%$M^QSiix7r=uX_%5QK5au=rM9bjw@tl{Y z9jS12^)|bdKEl6`*K+|0z!6>bf@@2yORL?NPb9A?jWgRYRxayR00 zehcwMXk7OpojvB44PT9un6vJxO^i!oUCSHIW`50RWs`iwSdRGFSd94B*q$>3J=QzJ zUAg<&3?IpDVqyL}w;XYYX*)=xX;uoOvjQ(xyzZ=i8zNDd7v&YAt17Rag+n*;UNJVo z8_e~Hx6Q*jA+*E}5Aj2mLiUuOwpene;`kK50v_aJ;L~w@n!g60;NL7^_Joh*S0XOt NUt;6@r1d@1{|6(R{b2wA delta 1404 zcmZvcUr19?9LIkr|L&sT{<@`OgBtk|B&ldcWoC+5VF@8bZnt@<#oU$amPCQpQ$dh& zq984oe@iPSzEux`2t|?-`OrgT+Yd4KTxopV0l?>Xn5bMH1*Hc;A~ z-(+B9hS-9ZKZjPvm#!<8dNnaEn<`t@wUogMGMHmdf7(HDX7IpByDuHTPaWK zQLP2w=7={KIDa90sP$Yx356Tf4h8ELOFjLLgODw8xv@?0M}o2z*Bc-?l9C#(4rq!$ z98g1bp^%vGgI>V*XB9ZD)P}w(;teZdO+KM&t#YtdQc7w3n`J~$h%(TYB7dQ?lu2aILV};F zK2q}vO!#8RG-M%?(pOihhv-HIf6wlBIze6|7bT&sMVIg*^41!<6(9GZ6)crM26uy3 zB1OdF{wcIRj4P2M68tTARDf*i6b*fdPgoK{_T~x8;EOt((y_5&v)>5r)8S6=C^(vb zQIx*6KUILlAf%qG3VbTgw_r-*CXRv6>+sXyi#og+d>K3kYlwA%7>l^tDLT0NRN*Fg z9=Ld*^&8&>ckA#G@M0bQ0=!a(zXNXo?@Zm`D+Hg;gg@YII^2OztSipNi4r%o6TDl8 z9{`Vn#}9loc@-xi#QqCOu7FSJ@DA|#^_=%))R`^?l#T{Xy-4_LP+OEBjZa!Kx2Lh^ ze2<}*jqwG8i;eRis86|7a*E>5&$$D5{+jDJm9P=+F*mYNe%V}(I$_=c^3nX#Itu4ryg>2#q%Joq(I|gnal!S* zQp-jsjn-+#9`OZREvhrWH+K-0#NvZ|Cg0`h2dN-3Xjlk80{VH|jY>3xOgM+Q!S3=z rK@v{9tE6)n{e*LvAGf=(*M!N;yX-^kA@?};p~{Xc>;eDem}Sym^WN?c diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_omni.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_hard_omni.bin index 0a9329d49a73c5f8c8c400703b1b216f30d05a9f..82a23396c6958aed7576d0ddb9080b5089b869b0 100644 GIT binary patch delta 1500 zcmZvcUr1AN6vxl6bUD{x|E_Z-?Mg*ZP}v`nELf(Fh(a==pxSPBsnwmc+h#$;Ob~h~ za{OLOiPl4JS<|V*v={^t5hT$|FR@;FDk!KR3heuHcWtg6IOqJ%=X-v?-_E_`KHK(U z`;hx+EhBR*(5vW5_~I6c=1?z-1-c_zM3*RsYI!UWR-&pNQndYwL|@C$X^F_Pxa*=s zHcKKRtps<*0$S+I+323|sgT+e?TlPfaqebI;-1F~*=5LGy=r$%Q*=Y`gyi8PCQp?_ zK}+I$;|c&rED%+rx^gh0hZW7Qt7?x#Nekb^>KY_Up~JqYqg9Kk5@ju1Va}773=Pem zwxg|kU*E9DekFhUe-Gz&T^?AaG9oBM)yUi6{U#!98Br2GTTgVTt-YfSO!TGTOW_T0 zs+ymt1d+|e-?HI&Bgjj5&LXtD<=WB>d42~xSb;wf7l0!zSjt#rkyGI1PwrJ5Le>zLU`ydqzXPAEz(0WJ zD)3L>U%{8-3~|nP)WWL7-vh6-_4FMHsh0>}A3bso37|8->H{~HMwd~ABd1l3(l@HtEM?F5Sj`A~!Vj3eY=(ys zXZcOUr|D7i8xwoTuiAcF$1!KefGozPaXx6@%EtM$eFx$<`)WkV(QTcAR_K}HO%5l& z?U30NpLTSy48P`da@n~Ct9Iu)(6Dnx%3#M%yjbzNYx`wHq72{d@}ld6%g-|D2d?Lg zjqy;OA91X1#F|D+;gU2z=Ju|A4AM+w)^U*dEd0DBBN9!(3!M}EuG`B}{Hfb*oh;## c{3G}nXZ0EOh)>tIApWSo!bbT8&ueD+3lP@<>;M1& delta 1376 zcmZvcT}V@57{{MCKX-JYJNra!MoC>1Nh&H)shMI$tc38&dD25Iww-a@lD<&tCLzf2 zQWvSY{3RjFVbq1#|LA5q&jZi%ywC6dyq`Plb;XPFK3j`{ zks;&`NUG%P+-;#4>a38vUGXZah2p4kLvEiGlvR)9JuF#iE(LX1iG;OXofgUy!iuE; zTnxFro>QlTwZ4-c*&lQ%T{6}!6~aS~{gBNGxj7)WhrE)S&|Q!mE0Pkd_o#Av(4+X9 z{C;hI8}tIcH>;q?LII3TA$L#?s?t$K^-11FRhIo$iU@ocvldz@ijMp>9d+K2Y^7;| zOH6FFQVb1IdwomYftj2uJqw#2PyQ(XS#sVyV`oHAh%%7N;eRlg%_OpCp$0!*f3V>> z*is+#G+mk{*lNzh8BM0M9=Xe^9@*Dn80LJDepEkSZdBif;qI3H`oaj7T&FPabHD cd+biE+-rZrZu45l9>hzI3v7`8b-ZK3KPi!$6uh?vwW7ekR01i1(yXwm;TcODLN;CzqY|NFjkpO3o7<>7*k zY)Z2H7LV0yb@u87vWz^#Z|QV9++Kl%km>vur`2ck%2vlot3cKhP?tc6c579yK=QOB zZlM@_yWirF?cKg6=SA7(@|oTJHq5Qjjyx!8guFwQ+dZ~Uzr*TPbu*-*sO0vUWUsB$ zC%av3E*I~YpcgY;dhvOIco66NExpcmtJC9bDGC3>58#g?Gu-eGIbXU|@T~Yb;qyr$gwPft+)xfKX2&;#`9W|g32){H zfWvJrvl>Y76X1zYu4e$koGNJ05_!}<@Z}`@DtIUf9|T_q*I@>qGm4zAhuq`UCh|$} zJn#X2Mezr}g&;ym^gW!n?QQia|NW#y8538Kt z=@7e~+SVYu`p(I=euDqr>+XRAFo&Z)a5Yq`)XeGbvN?$IE%ma7zEmz`*lEr<2Cm%{ z`CRfsSA8QdM;A?e;J!My==Fi96wewUx(&4>3F(3~k;P|GzDmXIkXRT$_L8?C5= zU98vxyI#?mGYc(JGs~n(1D$1~mF+ahepJ@MidFkSj#s@Ff~ai3Tj$?Gc0hzBB*+S@ zOHox{-AaQ>pn9ItNoJ~Pg&nH7cUnP7WH^uO@xOW15iOeVsEGbNtY>kZ|BM^AL|8(m zu_HCpETAtfn*hP2%}RVj(aM>)${F^iwiH*fT02jlu`&H2*j4=%I?g%_i&Xm`%CaF< delta 1396 zcmZvbOH5Ni6ozNo@@S=|B860lT*U`!i_jV{iV+n-ql-#SByQT;Hc)7Lo6-si3kVt$ zHww;9K+3ZiVuIckQ4VN8G_StC1{Vo)vR?#DEwvk|bt1F=x;n^+o*dzzugkSxH0Qd_r_PquPwb zpz9Njh2Z;R&VawEIeIC0&+iLG?P9wRb<1^qL#ArTd9v&X`#iCLJ0k0LNTy9mjMn-i zK2OvyhOUP~Jm013`*Y|Hf^uWdwxGiu3TN^Nr)G`q4sK>fdy!x>a&JDrq8=f2>Jkv>)_-js5b@% zd2W{H)#y1(=hwgm@ERCzb~)aK-i3J$jJFhT1&?!(O}cnTqH@ARE@bac=mk$I@Hn`j z-5viL+@-+Z^ZMYL^;L0j^~U;S8NxJ#^pkxBpOv`^NvWIo4ZfhjSHY7Cd<}dBJO?#+ zog8@wMO}P=t4|kBfE&R1hPE$U2`(t`I`DD@eiyt(frr5D;9cnpJb>U*NEieUEAScc zZUsIM-YavQVe{r<&ij5}djmdpGDV4+t!ZqzoY*5`3&D>ldVK*hCADUBsOU@STUHa* z4>Z0SqVqXWS$ z9W|Duj|X>>MM+<>t*X?0Y`w;8salmWfNkt$u2Ti<%gKNHMlh@E5#R~o<65>*p3hWf z6CGhi<|_Ex<`Vc0vqwJxJrz5_ewl4_f)!aDG{M4_D)>puagYVeTVn!|=kWOa>2=)# zJRu1dFDpjWY*{@`NZF_7C>>_=<@NA+75(~Agrtg(vUe55M~6Vp5~7Wu5WYXM`c!}? zWDJ&y9D8Ohrg0`%3oPT?Fdri|o2TL-Nu5gW<&zFGuXT>TV5PS6@LpRd9b`${Jk|XN DFc|)8 diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_pcf_csm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_pcf_csm.bin index e8939d6167524461119f1139a553db5ceec3dae1..4116d3152493d6c5fbf00ee81ede0ea8efab5a0c 100644 GIT binary patch delta 2038 zcmZvcZ)}rA9LMiE+17Ro4O=s@(bj;$7gLBu0U=UcT^%H&GIWau+tM{#-P1m$Yc~)` z7yPps3EOxyTUKP9k`R+3+a6p?OmvB;Zrzn5c8v1y;fo|kIGgXd|lEfg}b^Fdm@L!p=iP@_lL0V7W3%j`dtXu>*2Oo zD43K2aXs!uXuSx@33oUi3MRsGv?Us4^Zn-0<)_<`v@YrEjkE2?xaI5oIY4v;2k)cOS3EfDR_Sw-w2<9Cpa}LTQO$E&Af5-I>qM`F9L-} z0>ue_c!z2AgrYwJ?=Ry|vIoHH7eIzEW@Q}xG<@mJeVIaFUJn?M$gesJzgWi4!57N- z@8R#k*I*5{&H~1)++sa`+EV`)yahhRcC`Az_YrU)Q0gly30~^|`zPRCW&HE--ZH)k z-oN7aiW46~Ahr?^{uul~8GjmnMEC5Z*Od7+EiZ?oeQ$+B{RDsbxcnYE2yc=4;C0lq z^if3a3`s<_RsL$ASJma}uW0QhEcnM62V0lq)eEL2BfX>?t#{JAnynwJL+5_>xS3|v zd1nu$*|V)S)$^jH)Ag4)wQuKidk3ekot*yO#i{=lPXF%aG`NS;+9pn8Zcg@QP8U6# zHn(uf?R~w1W@lU3-V|4lONLK?1pL*Uo}f%by}FTN>obGyJ?hrr!$3;g9Bf%^{$ zy!oy`pI_kJfIvAY@ImK6Y?WPLSGSk%aVgB=s;g&^o8KkPc%#DnBWuQgM3{jZYW8X#5Ubca!Hd_ z=~zNlS`@c-S8ZJqn>Jgs>A=ZVicFXw{&@&&ScZF;tSC%;T19j(f_~4KK#j8M}bGQDE#y z&p}V0B5?3L@!*m&%nFj-Ke6>==lri{TRDZ zMKOF4z97VAmKGhmqF?Z(2yA}%g74wiP5f~Q!hfZE91=55q80w8iGKoq-NZiyzX87$bBK9*FcxJnEdWPf9SFcT!ix?4ci|Yk z%fz3C-)rK}!MjcT3cMFSQoX=61pFo!+=7=){O|A?6JLu5Z&vr>PD6^Tu7CTtP6dGSzKVjru;y4x0hSv_Sf@`gMT@11dpe0E8Fe9M}Z=g-;O_$9U7KHr3{ynAvB zUwCpgb3@{~ip@uXznPzT}NPQsC=3GeSGoOp)tpJxfD-Gti?5YBfKIu8<-JcN7t z2v_?FyAJi$=$kA)?-iSLk2%zBUM)f3{9!`p0AXp6aLM)<-@gg?Ga z=<^Z&>L-jJCwvejOos=J{oWrH`&Hdz)5f-cIU({?Zmr~XWBN_P`f0+mGlVzQ(ihnFoY3+LPTvQj?Z zfwnfg6YcJ7uwex;BWFcf$hPqnrJNn$CB>Cea+*F9#C9zyI?*?|IM8epvom z`?FhAlw|rX9-G(Z>^vfn733LyORL-A_6j77OyjpWZ9cnKvN_J!1hSTZ+5|$>+p9VS zqEipJ1wD9{-{O$kullN;mnFN)XLfhnF}F-T@HqDbLKT=z69}*IyKf2m9TAOQ*BR=JYruSG#%hE&>TcI9giUQgibAss6)n z3chR%U;AZIeR_6*5(0&gG#=p}v9YETG6Y{JA>>?bUHt>*p!$?6Y3we27}$%VW%!61 zi(ebk+VcT3NC`1;M}H^`Xxjwaub|el)nWZL2e=>fDjWtKnNo@!MQ~n zK7)(6nrV~9_$s(H3IELx;ICq5q~RZOZkkl^%=kHx^GObb@HQdRU<4Oc@eL7v4BVQ8 z*YN|u5jM@NY^;b=;E8XpBLHDZ5mL|+ebqkjl_dNocsL2a1HJ~X!3;iU2syW>JmRNK z6&dLpy^fs=p=j2O~4gWGJUI%x9>;I%YV4b;Z!C zore~!nP(m4Hg&xj0Mky5DKgCQ}Yi%6%?@&5@LS}@=%&n*g!+F zwQ!QsX{IY`z}iyuNGqcxI$Itr&ZCn|EY8->#^G6Zwj?iq3Z#;dOfTl+TOjNAMXZF( h!J`A_ST80_v(e($bb>ibj$<7yxlYH~!P0kB{U3L}ATa;{ delta 1377 zcmZvbUr19?9LLX@nr_Tk=B%+|3o$pbIaD&r2Q&W^MGSpt`LeBfvE}|Tw+tdSvIl#q z$$5#)Tuxn~kaae@Ij*opF%342OmsC2u1oHy)&Kn!ukEq`Fy{>-#O>r?XUBX zBYw=Tq(m8U1YIGQud7l^=CRI=INSkmAfzQrSg9ippDQecJTC85R}opsKhyt`rD2 zctV0Z>hcA>9)E{z`x06bgD`Gsu-9Me{%W7j7H%$F zuUz=?<#5X?B?Jl~Imp!**DzVcP#+@13f|Jt*rZ`zs#ko=W{>Ifs1BxCjD!k7dW=~+ z6OFVkm)5n&oMrOM;70H|4F1?8zZ2PsbsYwO(!3Kq!9gC0@%Q!s;T!1;mpZhRKpD8rk;tunj~yiSJu!ENBt%nf=VIAsb3z=JY; z3Opvm=fL9<#~pUxT*PtLBXqam$4XXU;tZeIx$N z?V{GT;`a)b*C3%XgH+Y)SeL`X}{iLWk(wIS}3-^;L@xk%> z{~j@>-`gXuo)lLNdn@AVq}X5Fj*9ms+uO{X-pC)qftnr~`MJmtn=P%PLu|9O2C>>y zjA%Ex^GBhjJ)>;aR7FSGrm2;tn9W>+*lR8YnJ|CQrrt<8 diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_pcf_linear_csm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_pcf_linear_csm.bin index 2b01ececeac68e336904fa474a4a01d5631116bd..4b2cf906285d7e10bac5bc18bf36c6d6528b03e7 100644 GIT binary patch delta 1834 zcmZvbUrbw79LLY;HYjZ|4O=rOQ@V^rmf<7=9nKl+=s@--t3tL$nQbkV-L3yDEn~{k zW)dl&rR4fBquI#DgAbrxyU`lw(gYs%zypbUSmGY~U<^hdn%FEn`aQqi0;@gAIiLIc z{C?-0o_l+yZ>zqYRmFE&HJsIiY<@?;;Tb$+U@M5LLpG<+?F$%K4v{Wo^EiU8faGwW zbQoB^O!XTW(>_}@XkdEnw9ilvzddAgO9K~z?|43zT;8C?ciDw?TeQB63KD5?wD20c9vkKZkM2P||51B)Q> zC~meM>-cbSbWs{R{UGaUiv9X`eULMT3}f5CHgsJzV{7QmYR0Va@0*WzuE=g)&u^rn z{5Kwc5k*YJ*o;;@6kBF%k$NRwQsPITaOFM+Z-h6Yi?*uNuYq>NCUntCUWH#bgV@Aa z7}!YEAdy3CLKm$xVLQALM>CP#@GrsJEBI#k8SyG`YSG#di)I$SX7f75{h0-c+%t*d z1UtM@vw1?%e+qA};IE1e;FTA^qKHMi4kqBs-`uS*5?LjoLSgAu&%v)$@C)#{3jP6n z9$tqv#5&7}MSCKMPh0N)g4e@`#V^{t@lzy>NR<1kDuzGx|NRT_rV9QbyrqKgfVXe> z6YD2FkA#0CvF@+HM=JQQ;NyxHCtZ@W+q#cP-l4OS>oUWI5BM$u5SHT85WMoJR4I|i z*Y9$(RDIQB75_O^Q2)+r=ds|QF{4`g8oa!NDdI^nZ3Gs7>#eNSz zp#7fjBRP7WkpGC#XD2*#5ZauCnSO%q6T5|dp#om!h*zy~rCC#awQ*+C{Aw@}jE*01vMsEeG=C_r#1l?d!KzvFM}x^oLJlf} z!8UfMPKDbTv;RM9+{qmF`M9$K{sGOe$Y;lrFGSDCkyz3fpNL@JZu|VT_TvaYXoQE= zNJvwH2_x=9sQuqiJn4}Wkx){O#|C0CaeV;s4t=w!<25H!F>lrU>3h}v>ld6cL>Su(9!0;@$e7y1SP^|I$JlAl$v&^H z@DAQq&hj7mWIK|Wg|Q{Om{i+nLzNC=9X8fUP`G-ZftTRj=%Qtf`~@(8wHsZunlHdF z31MZE0&LZ|U|j^P_g-)dzGC9H;U(L>`M<*lO#EH3KRi%vd#m-C1Mh1Mf%+$V7=FX> zcuB1GCJw@HnfSx-6%+pq{2lma>>>8?U@h9nq?q8<*9U^|4tQ}x|1BJYmrVQx_-+$_ z8QyK;SKxi{a(#iD2n0+n_!(X`@qfT)Ond|WczMH%Ck^XT<3Q^>a%94nh@WFPdGT;W zVV{=^joTLfSvhU{g|{ps@wYii1W5t0xK8enQeqs01_|E`5e~jY$e$wo?IVnxCj2x^aKA!WeU-3pv{%&gy-xL( z-XPihCL!e~>;?$FGlcaJ;qeIJ%3A_oj?qGq3ESrg9)++LB|H)*WYrHXDCZcba)Bht zO^x81AQV#s$Ge2|dBW{9VdMf~W0KJI9%11kq2UrieV?%N0l}L+z+0B_>-Jrg#E;CD z_0&`kU)EQrdNJ-!9l&Uv4z;WxR?At@Q`0?sMPHpB=B3LsoxG$=Gmk-dXKp%6NVMaa zh$C&!NEjI_>HB6ymTR`3m&%#h?>PTd_ssQUoSpmlwI(x20Kya9?WZ**DHxg%MgAl}VFpcAe3i+;E$$ zqF{=k?8BHX=aVgHH<_P&$$I-TotuF{kuqiwK}49@mwxaC_CYE*LH{SYw|Q9}IL~vQ z-~T!1$vOAt{uKK)KG!yBXJku-60$DGrh6sIA#Y5DBATk{66KNYNrhr^QqiNb`hqOc zy()BCB63t#O-tl-%xh8y_`Xy~jh=Ze`CROks1i>GwHXEb_BiH0-v2D*hfH}Qp+r)u ztebie(*7MuOAbeMC6bJ4@#FEhSRaPo!EZNoJR(s7^VU>oIyNE45^6MlCRjL&M6(X= zWl~zAB~;*dB$cEtpV0J}tiGhEsx~8021-kX;#X6OL|JfW1s_*%&>Zm9f#FI2^V@fS z8EW&rb?E%D+wAXg`!Qx4h}1@+rN%u(PeT|V9tjLL@b6iBowI@e&KA-K zQ1%^0-T`M?ephkgH1j{q{9i=Ds(I6HA~(1XLzok}FgIct(T5?-;$7fN$bCdHOZvl6Lr^PQSZ`=vN4WXKQzaLiPcH=s)mWIp<^b#|NYFvnQj<4B=y? zYp){!1dFq?;O5ktnkc7ty=Ewaz~t2P(=n!gW!jeiRN4c~yjZfx29 zu4h+`J9{IHeP;MuK0)AP-Cjf5cT13u9{yI4srIjoQ*HhdF{aw@mon&UMy_+DikyG6 zlB^n|hXSP<fyc2AlFL;l_|KNQBj9v7;9>ltP1M(>fE zj9uZ|y`%8Y^er|UD6uv-_*S3m;FloBh-^AG5+A1R58UuXD;QSg3h(N79n64OmE!+k jRj!s*uJU-l3%xG%-(+9#@qr=u3j=TC3E7{z#T@?w&T&q6 delta 1543 zcmZvce@IhN6vxjkr|pq3v&}4G%YGu|R=SFcFf*ke#8L<=aC_Oy7H^w8w?-6Ags31& zyU-tIIkjf=3*l9e1r36T3iFR3=${7lUl9Hg6-3bY=3DA|7w$Rte7@(NvwPoVAH(lM zT_sIcM%I|WP1fX4`&v7VAufpdTOw*ivr`7q?3h0!M-?q7tGi?ejpv}l4kBrKR=b^S zQg_6@5WG0%SA(rbqgz9Vf=W2*i^LVw^+?@)rB2B647ssQX^E+_X6QahrF?TiX`Y<| zQunvT3jpTE{OzGeIn<^G!>zu*KiEzk5_dCu!a>Q2W>F=o$$KJNNLKeNsv3zqXc$US z%s)k`QDcgO(%`mfyg|Wf#(+KE+NPRqch96ci#7&I;>T;#YU|l$j0g&m1-=UNCl;Uc ziRKr~CVBwUP`kbEsfE8~3uc_N@Gq<6w!4Iiz>tbn;j~=&YH{(VNSr*LbMEU0ye-qw1i3qP$5o2p79`wyH}kFR%VpIDlKL z>vW0BqXFJiQOO4QXvKQieD@OAa(7E%3R*TN#e3Y9EX7CNjckaQdDg=o@T>so^gQtn zA#)?1lXy&0hYOZSu(b#~jdw3}G0L+#*VfdtA$?@cbH@7l>B@T87nN5F2a%L*JIKRT zPS(dSR+SXqn8I)H5wCMu5@Z9BRYPgKAo_mE1xs`jGh5*%|Bed%+~IxBuJaGxO|Xu2 MC-Jo|uY1F!Kh6s#r2qf` diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_pcf_omni.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_pcf_omni.bin index e7dc08bdf9afde7c293b7dbee887ab28aaa0578b..2f07dbf0146c7186939e76f9bef39376718a51a0 100644 GIT binary patch delta 1712 zcmZvcUu;uV9LIlWquaVN>6kYICfh|AMhySjjcy}^I_s7pG0jE@Mq_swSLnF6x4COq zqsBHSF1#3l^I((*#sd%CiB`b*C5 zcYdGm?|05U_uqTt=ToPfkJK}ACnIsiRP-^QM2pC4laUcaGfau{$W|vKx{^@MsG>cm zNc5l#9g~PWrB!1Rc|B(gsRg_#8PTH0Pb8k!k4Dv4B5b5oth>u|=KT8okRP?>p}0Dd z)D+X!!;sc5OGY9THPw+s)QAnlVxoT-dJA8uY1t@I9P_ow$e2E)=y5F?J04y-i$oa@ z-^rx3M3bn%btKe;sXT9(x}v?HYMPOfC<~>rMCsL%szh_(-V#2j;-HJb|8$3r^gh%2 z;-BpU2lpu*x3|yt-#_^pBZ5NYLhQiE)DUU4M3c3viQa%P7<#rZRKve!8>+lD{6702 zy$NMsV&pw=w&kk}6R(~BX6OGR3RceRRuReIK@4GD>4ST_594@#-S9qV;paMT6HUOu(Lc>eQg=vDji`OaaPp?AAmk5Q1Q{Zxa zaYKQ>4?bLhUlbdFBP?0gp3EU;!OQR5oiv0wTc|>dbF04tU#!4?2G3XE_rM>3<2jR9 z=P%^KR*6>ukG7mQf_uT!;);qlZiOI2DCaxCcU9oM;K2&~FnG8EKM6j(!qdwqej7r3 zMOfw+z%v#24ESlAi<3HcZXSFRy!^yJfM*}#PZ9kNVeTP;=s)nqV$Kh^2702g@xxIy zMfh2n#wY?nxG)WawJV@1Sj zmG_r)d~XHXM@u@su~JXQO2`-1?ycY^bw--5C-EJ9am-hG|?(-&-;~(KH|Q z`Pnp|@CD#+_%_4e^^G*lLUU?n`Jms=X8DAFh~@Z?{s8>ijwe8RI<8AORQBLq6K`OB zMusQK@%qj-RBh|*XF1F4yv5kZd{3Ys{>{L-1`8$5;uhc9)zQ#r#&QJDpCD#ZulR9-8pyvDC~wPCM?u3PLXKij<*exdtyc7-44`HFe|2Vf{l AsQ>@~ delta 1544 zcmZvce@IhN6vxk1r|yw5%grBUTUhjiGIKMhMVXnAMJxrWf1FQy)a1>rxw)WVqrVD@ zk_!cuxvVs_LV8e8QBwZ|MTyiu_K#4|A3;b&L{Rj-`Brni1NWSFKHqcCefPf08;oA) zJ6E*d%*Y(^2IY|K@2#@ZB=Veyw=19qLROkVwjkp5%V8ztlhxg_jb_u(K^u`YzpB?t z7O6jAT@1b`;#GZz4u`k-JAFz|*b|5<=vyiE50=;=7wU3rQ0a=Oa!A)bkV^RGoRTan zbx8eRmz4r6jCgzft+GF;`g#s|{=Bf2;u2ratT7uU<`xSp;gGyH5c13F0Yy~MZi2O;GCKVcSp#(+~67B>H1UjW`=z{|iB z;0S+gRo2}40InI zd2(C86X5!WoBtlgJ_zIgguh$?pD^H2@X1upM@_pH_W6{kClu%={1XBP6_v)cb=k`^ z*&W_uzQhLjXS1D+@_fn8#&`w%Exs52w$>xPGqIamvt@*_%i5QMk0MMj+M0pTUYaSw z(&ChiFD-tn)s%IMvN;`ON;|sDpGF?7NFiFq>iIpMXd5cxn1RXn`9OKDcBHaVG`P2+ zh~*98*qTl_#OcuxpRRJUA)fE7fp2n_!*@Ho@`j-$Yliu>)5(T;zN?ju@J?3^{6*JF zkf*MP)g!2^!+jFBNs2q*i3F=cdP2YWLKn6ssq?$lJK2c#qxu`0n3+_mWA!0eyKLaR2}S diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm.bin index f7abee91b38ea65981186306860a696b78e2aa74..fb0e32ca8bfbd318f77d63964a65fd9413abe9a2 100644 GIT binary patch delta 1366 zcmZvbQAkr!7{|Y>Q`_z)(=|#mb|WNvlMF2FVdhkkE~_kHL4{l9b0J?Gy0y7Ar7 zseSzhf%Gv~*c0&tM~+!(4Ruw_<&^_+#7Y@d#+WPUiTWabPvES_N*hIJ&`Kok?i#U@ zSxm^*1K^gJE8rix5^WD&^7}$jr#$Avx=mu@LES0HdsVqN?DNI~o`|YDA=Tw1IqL97 zeBP*E4)ugWe7;*uY#tgw(~QN@f4bwt-*bOHS3dqFJ@uxqGsmPr1cj&q`8fP52JT9t zX?Q*Oc}Hj03>fcA!pq_HaMEpWQ-bJn1q%!J;s-(A!{BtB!)NmEbqQGbQ+K@C|Sy*5K<*qvrOAXS~{Cz5s3pkMk!g-1rRy2|_Xd z1m0AF{{Xj_;9KC%5?th;X`Y|Sowxx)I4|UQJNUTD`H8d}x&S^^$eFC`Y4wLjFZz9B zgugu^4!Q>?GX)-Vrp zf=D01Li}}ZO-hJFOK`1oiOr%j38Ho49pyTg3p$tC_Zl1a+OAQA7fh*bL;PKPLwL?) I%SS={53%CxwEzGB delta 1224 zcmZvbT}TvB6vxli^<&4GTz6V!Sz!kvN(&OLj0`k2E$U&=7l~+hS{K_|oo(IC$OpxO z9(qW*L6Dl;`U$-lK15Uy)I*?DUtMlR&L?{8CTeRw z*WyAf^5$W=uyPnVwzp}7=!=8L*wX<{WLHU4K;Oeu53UC*= zIMD9KC&4uv-U41_!!Lt3*zg{39XyiV;2wma&4zLCm<@joK4@{A_1_IGfe-KI{IlbN z`*tMUr^n43gkQ|;3`gn3LR;RQ95%PGSfJ*xF}~`ogZD`${6i@Ozb^UVi;LEkG|IOO zX`&0Id68Vh(!5@-h3}IOz>mryWd>R%XNDIkHEf30EA4ESbEOu3Q8@(iLwR#z7MZ7U zzj!kw4QlX2f>k3NvOWZ%i&2@;`L}(oY0lG1W22*mgi?!I z1Zrm!1SJu*(8|2NK*%6>N*Dz_3>t8u;UXbW!G-;gbH~RpAAGOh|GVehbLKHuxllEb zQJ=ynIoR0l4!B!8iX~b^Zwxjz`F;L?L?Lvk!Nyj1rzhZb`)b@0tw*6|iO6(#szV}+ zY0xjp;Az1|pSR_D=egEvUQb)6)8FmEx<#hJXITp5bX~4(_cR54?trd4A!Tu^G0P~C z3$@G(jBZ8xgLyQOtQ37%aJk?0F1usk@dSNHJ zR8d*Am`Eh%RuPhsv*8rKvqOVKPc=XL!g_NAG7t@!L=m>>_;9x9{hZ!^MHVcYhrm^E z2VB^yKEH+RLhpbJi*N(pc?i9Os26EpNQMwX?|=)7Jdg&i;tY;my3cdLT`_ne_z*bZ zE`*h!7gixSF2b?fiFLyJlM_PdkPx15fvYJ89|-fC;I0__j@STPzW{oGUf5&gQSj)S zd)^D-gDw~_7`f^Z@WmK>5BQKJC2R;Z>eR7X=Xp-J#!P{ zidkVJn(>HcKr>?z@}@<|Emk4VTZO!4ofYzMx{z1Wqva*(sF2q(gq)ulC387z+d76b zR^3&_QAyMld^R_OpRr}KF?F^VPqIl~C)ctmJ}fJU^Kw4O zKY1p53X>`LP{kKBrB6j9608_4|76a@@N#xFo6-t$J~H->|IMvNELEPEHB3eJ(D-jf zVQ=}4l3^Y{z{j~_SB{T@oWdVX0QJ)p!&)Ulnd+a^z KHQ%%^Fw=h=It}mu delta 1456 zcma)+OH5Ni6o$`GUM&;~+Cp1MThzG15bzaYQKg`Um=JJ5+_be+td?HVhb%}eF)oY? zq0WYcDsO616HM;H1tyqiq9!azj0rnP+~^8SltfwJKlWZ9^)8rX&YAiCbLPxUr+2mU zb;o#3pPrFE;T`fv{e!V)Gp%7>lJEwkuoN}ZCT8Uc@1Q>(jE4N-F29Ag^H9Hq$nbAe z%uFUjN;2EQ4x0APT2Zb(nQ)8GAmpFS2L4jvxFk|<;xPD{20sSAsliWzZ-bX(4Y7^~ zbI~p*#Q;~IFZjVt;9^667mk2CHTZ4tCJp`&+^xYE!Mnke`306C_%sqefDdW#FW{pJ z7bjA0s1Q$YT!SaPw?e_;9=vqQGScz-;+ASbx}(w!!oN`J4~8i#-!EP-U{BqpjfJu9mkdswH-l__?(%45cQCWlXd)gF#X4EORNNG7% zy&@7@%py@T?>{kMsT7H^T9LR^yYECkXWccXywS)}ZJH<;)r0 zRqtRKezX2O%gA#5D^@gvFe_iOS$N9P$Y%J8W70SWrk0=M15U@0DUj3nd_=LJc!@h> zPFQ?r(ACI!o<-y|h#INGSdCo3SdCoZTTTaRRl1(D$NY_}6;{_U!XEKt!zwfU1X_>z Ae*gdg diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_linear.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_linear.bin index 5f466add391cb2aa0f2bfa041d6d58ef516e8e62..bfe98f7205a018b1ad7769b127a36eb824ca02ca 100644 GIT binary patch delta 1382 zcmZvbUr1AN6vxk9Gu`ecn`_zn!xkahLm(Dt8Z>h%CgI2^p@(hFW!JXdF*g?!&3dSZ ziX1;5q6PZUgAZlX*%k;P^b!(b6!g%`D5yt$5PJ#i`*U}0jvYAX{Lbfl&hK}B_ii&y zv&SdvhqMA|qOOo9> zg?-+LBnSI~K|b#m6B|dbqUnywF?6oWk}>wKv|LC(d9*a=jkO&Vh@cQvA)kVO!@|9n zXbMi?7aiR_&%k(J3cd$^7*6V~ElLnwuVNwLdHe{-NBE4$wY*L6UYH@D=&@42K<2ER z&w|^)?Qm`>rGFXOjoJ?9R^Th(GpOxEaipT~1wszB9nP&V@B`e2i`chmk^csFSKu4` z0DkeB{J=ld+;nPiP3b=Q^XUMD+%6$M&;)MNmJa0kX>fN1-pvmHN7^>0vT!4(z{}s< zXdJ?_BB(G@c-0Z`)e8JBc&-9}0KN{c!ybH}Db(Cv@{CVg&ga1m;Bo#$r3b%-VKN>G$zm}7m z+BM?>9;4^JjXw?XwSx^9_OpAUMOa`-u@&*FcntBc=+$SS7kV>nM0Zliu%vEK$g(wE zD`KO*5oAEWWX__q9q*n0R<#p0M4~LS)>_eZwzgNurXSXR5QKTwZ|Fs2hNM1?mcr&~ z)?u_Zya8z=(uA=Q|E!x&ZHPpR@IvPziyN&%icK5qPrNPRe2v)}K8vqMJt`$DSDk0S Xj9FohCF?p6zt`OsUb8{dCqeuV!O!Zf delta 1268 zcmZvbUr19?9LIlWPUo(7xwdAE3A-^Wg&ssBLwm5&Y3ajK0x4*_%~8wg9dk>;he`FG z!2>RAZnJKpy@)2F`iATbzn3~Y_03vbynA!?#M0%i<{Cx>g{TzqG^`8BI!rDj8UgQaZS&hP z7j+A;5?D2i%sV@jA^K+KarP+f2KfNXN@FQKvH8W17N?0#@b6YH{Ek(F*QD^V3AC&ys&MG9M$%)`m?Czg z3I1E!v`r)P-%|vjX}(#}z^1uRZiK%s`{2`Z*fs~PP&3Cj8s`rQ5S#Ghi@-1Ue`Dc4Oyyx)aE6?^d7x`Iy+X=J~ zKcC;ENBw|PdEF{>@oKjpD)2-zu)+anxW(Z;o&`at-AY{NUga$ELgg&)ba-)!e#a7f T!hOzW_@Hx?P4chKRVMud_@}|? diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_linear_csm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_linear_csm.bin index f66a3c3a732583d47f3df878765feca16869eb48..41fad66e26fede7575fec52bfe78f46bbd35ad42 100644 GIT binary patch delta 1455 zcmZvcOK4L;6o${FwrTT_)b=({b8it5@l~{-*iE#lqJjnsB0gwh8fql**0fPnB&9AC z6#AHrC}?rx!dLCpq#&rE;KHH>1qEGX*NU62+CmrgpXSE2@gA6S=Kub4XEJk>d<*_+ z8+0DGFsey+bVpK=WY2bqCZWygj;NYYQxfH&Z0U|yI)(iy1S7w~D0GCu70dDm3j6|i*nnRX8-VK>{{6)w^_+R6An{(o9u9Ol(~HS-nufp78HB8F|j8B6r!N$e-*W z+8?`Sf_UH%_FIRrx77;!mP?Swt^s~!b-i|MjjzkZnphK4?dCkiX&od35h)Q;i2 z`}!4eY!dSzKjL@t&u$kR<5TXP$g*c0a;qn5&%!VEX1V6s!LoeH)6R0d#VaG9^lkvT z?tSgcq0@pFEWV_cJ_VUbuk8eNAX|H|n8GFGq{{6@w{rBt|x{7;fT$N?^ zoDaxO`^#ngC4a8S>qkL$;ZG-peJU`Y9Z-;oUSSkhc*W4e8?Umb K{6^yhv;GB~=MWqK delta 1416 zcmZvcUr19?9LImh|6W~N)|UGt_s)`fDMb563a*@5^pI$f_%hcVwV1myw|oeiNDt9N zYUiOq%Rf^W7$gh|vIi-Mz#fDOgd&7q3W6-MARp{|^4_d<51ilcoX_|7=bp2>`?leg zcW_5rA)~^$uiGE>clA_RX%YMUxG$iF)u@%0u`7=Iy8N+VG~^GT^xJ4919jSnq<^D& ztYndfRI3wwTih28ojV^p+I2P*jKrGN-XQ8$N<*XeTFBcqxwShOh==`AO>c%||0Ag} zZzviJ#6oK1L?j~eJEWm+?sf$2aeLd2)z3cr>ZhyD%wdeVvAgY-yFfWC^=KSwv%!SZs{8oDFZ$_MO^3 z1}|79?*muBJ(yx#)#7i#cVO?q6hr4p@G$`jC?Oo((-IyFq2T|7=iti*dXRf z?IxGZ#p!n?uFWu~H6tu-wwX8Oy3!08RR;JId)PFAmW}<2=u8v5#!<~Cxav3rn{w=g zU2p_U)6n#oXXDPYMv*JVK=jCLto6t#to6t#o={};8dV;$JN%5h29~=ovD@5S{(?!r E06oL`dH?_b diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_linear_omni.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_linear_omni.bin index ee94d1c1eb165632877f1149b566fd64682de423..829dde52789c163eb62f034527103ade0e08482f 100644 GIT binary patch delta 1502 zcmZvcO=uHA6vy9aTARi|KDx%OA4yRW6x6C%v6oo;fr=7T#Dkcuanb0e8`q>&L{bI8 zgGIxfw1^SZi&oR7w)jbkA|j$iym*nE1i`O^3W8GqV>Tv@dGOww_xrz@*_jM^y5?oe zdC#tTM%F|yrWi`}$V!POP|rvN!@8y$66I0NOa!A!Ts0z!wpo$rYX#aT5!t489g)ak zOX<=aaCai8MfM+vuaEAHsNL~^-m7BW6}Hr6*$cVBl()y!a6(fIQx8Cr`9Q5~ktk$K zeQRn2a3z9qHEt+dbt9^1U52W5OO&?pnlh|=&UGSRm7j?Q*4(U*ZwhtGwR zWpa{IM2=einq5pbfjoofZ9*$pUi88og+w3C`WLcbmAuYEtr@F#~-Kd3Wf?LbiDeO;2 zA>^kBg$ZZCef8xN3j6|is0zO(HULNZYZ-HpL(YI#-rVyfgq$f%!<6DxzX6}9!ry`C ztMK>WU%_W$4YAHQ)WR&{dElq5Fg07svBVU_!g^|-RDun z2fQEgVRq2^s+Qg4CmdeHOAZ~;?hGRyb_$Ymez6bZ{GF$K;u>g}_q$fHVLt9^LHy}j zfH=<`wvR$9_Kfm=_bN8Z$KBi67?&Da5Vtfe21zvB$GBN?BX&q$L{;iyW7$FJF=Ipg zu%`?0u4llWEn6j8( aD-3a~JjQPEak&-ow|txp@?(uJnC%Z>N(f*8 delta 1430 zcmZvcT}TvB6vxjkzjnxQot@Q5WtUR&p%3Z%J2gwTEUX}Wa(B|9HfDEh+RcXoEeHw% zT`u%cR-2_pUu^hLR1X_L2&GBngFOk^Ll2QJMLmf9Z|<6HbKsnF@9%%ky>su(?#Ra1 z8@h{{9E==Mf174$p;K!V8pS*}>TfX((^6;xvqe#VNQ>xJP&4*vZkozKt!^Ue->Opz z6-Y5tDFK(Gej|A7c%&wDG^mFojb^)!b*rS^ar4q@a?%JWeT-nTp0C7^oXS$Fs+bg)LXh9c2iv9tC_phO$k&u|EZ`o zqPm-s64#jA?50r^JXPzOYIiLjH$Hr9NG|<6G~D}RylWLBfJspU@KQKs&CF1Y=wdd1&#rcqfegVXB%#e(r>KP$%qF^=n)e_JmdWpe zd%>&W!V;b@GHCE?sFYx z1Kg>|JmD(GXw0=7blUY?89>Jtym0ZlrA{v*(EuM-JgEAr)U$!X_3l@U-QvHB>Je*- zujSuHNqUpp{7bQ?;wA_V;;^s~el+x>%Zo^K2cE9H!&j;v7U%obqWr#jypNv*zr|zf W6Ly39mTX15u;dK8&RNM@CjAC_pZQ_{ diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_omni.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_lightning_vsm_omni.bin index 92d8baaed3f975775c903aa4f1bde581b5114fd5..82e14d86f33c8f296c66c9d05b596e11193faa64 100644 GIT binary patch delta 1506 zcmZvcUr19?9LIkr|2w74d7am!P5MU#rX@-Gvdol-Vq}O9(!A-VR(DS3ra{Q8D0)b6 z9C|2;?4gG!YdUq56^alUK@#=QgRy!DiXtC;4D5T{ozA%*{C>al`+R@roO{l_-0uf} zRS#NPavA0Lon4Aoad+>RXdZQz-`VcbJYI>SsPgv6tAv3Ajy0vQ%;wt z%@ABFD*-6*JAJCptDN+B-HO)eRn<<3h7EilD=L*JgbvfXjylb+N;GZY3NxR<$Au#mbEdq?bz^hdV@3ppCu5Qt;Da18~ZYO=v|eOcOjOah=%y zbO}Oqoe-OF6Wo@YI3dRGfVZXK55)%HNGlf72h+$Q@Z_6&7l1IW3!5+{e$}7A=Tq>n z;L#NP2lyg*9@Y@+ETI;bEyGA{?ONWtsC?J0OOxFZF> z2;R2F1FI*#4xwvJSmh7E`*ki(6u+Ty@WB-P4frs4@`=BIhc@uNM1LSmZxD! zugo}BvM?YAKk zMYtka(RD>?WRdWkG|Sj1AFwncezpwdhtU#WJk0xwt?U`US8T~2PvGNx20X;Sflnmx d37#QavCa-T!k+R4xfW3_xy(lR?UMJ*@E^7Z2O|Ig delta 1440 zcmZvcPfQa*6vp2O1-gKt-R?^HlQvPK2NOX=P@@7O1T_XEF^ZUM;*`3+;d)eoG z-CLThjI3c#o1!bN?RzAe!8kqa@o51~muMcNtgxq538}hY37k-5T1-MMGLf*})h8(njR#(-aOc8051bnePCd-GiJbk)Sy+)J60_ZSfrA`9BR$lvHJq!Hz&6E%UK zu0B@t63p;LktxUmB&9AdQxDM%3;)ROcNT)YLCy27m>5l(5?8m53RwH`9p9w zcm>jkXxtw|>&3VNX+(m*1&2fWRMJMoEi#kuiDi4)od z-fhAUgGa#QFMNFUC>kI{{|l>J1&^8V4)B?^ocCDj?3ev&N4>6HB>XjKEoy)!ryOb9 zQrHu|-`dM2_$RB2P4b_pkGLeb*yE{E;X|6G4^O_CE14qq+EcmP=4O4o(x#z4wfRsb zy9>3{{v&$`&YJ6PRH7kXES9h#u8L)-{o+>CSE4U_3|hi7#)};#Y>capMmEl;9c8FX zjvXLQ>4h{7=K)-@am7NH8;+bKGh(pW z_5qM`BCC#t@I#?rcigB%BglkvgxA3t0ZBMHq)$ diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_color_texture.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_color_texture.bin index cc814a6bdd7d864d910a38715b7469bd14f9678a..2793e4b89f7df6914df46ebe34d1543070dceabd 100644 GIT binary patch delta 567 zcmZvZF-XHe6o%g=Q8WgvpqoO#)v<#(omwS0iHHaaX0Su0+9EVg(xu?q8gR}i*rDKH zopk8xq+`J@f`bk&+CixQ>s_o$fB1R#fA22Iz0^kPPI+?M7UT@3wicI~ANLQVrKk4G z+s*WAa(q<~p+hu)nuJRxQ4>yBL}kGB)bfgl%=@Y^mNW&E)#*@$Xu_=I&x>OK4fxLH zmeQ=DYC`8Zojp`$|M>>E3oc>Sj^3X|^^qmaig^GYAxoknO0RK(MhjWOtoXnwxQlzp zF75F%aK8_az$3o*kUDUI%&IdV{{0;Ferll6`qNMc9>HBqMymMpLC@fRAN~#=f#Vl+ z^@YrGF#H-gPmWPM(Ly+5EX-#PgUw9(m2#3WOK0gSFgziu O;jQ^8F2if9E$naYB2WeZ delta 424 zcmdnNvw?epXf!7yLkp`*gp)I~zeD6lum2WH4p#kHZFt~0BLf3ahJgWy7)*fp4-*4J z2r~mi2M}`r1%q5%-3|c7KJvUI`2oN9O1W7@_ z8ITqr5P(n&H=z6%KpG^5F8&25t^gEw0AdjM169uhv^@dHcK~7#fQgF(#TS4CI2h_d z6oUd#00ay`5*(NsY=Ghqu!#Er#T9@KcL3`~SP%;oPrxFc2^3!d6lZ~|FJY2^uv&l; z8-NlZp8=UbA5X4f@(?P^Of3&6%FkjbjnB==NJxc%p diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_unpackdepth.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_unpackdepth.bin index 6ed3ac92eff8163fd9343f51ed2bf27d4bd93a8c..26b9ed9fb919b838ab02548fd49c3b052b69151d 100644 GIT binary patch delta 567 zcmdnTb&Pw0cr+Iy!wgoJ2q))ND=mLs{ODp({wHDo^XFe(7#SFVG7Jnr#9#u%9n1_2 z4}e&Ng@Hi^C>Z48>gEIFgVb#RVjz=228bD0{{Lr~$iN`QJh5n2JwH(31P~wK0!cxD z0TYB4fbwmid>VXtO zq7f+Z0LXU$Vi167=mv@_0R7I6*GxXj Oyqj_LQEQ} delta 424 zcmX@cy^m{xcr+&?g8-{bgp;$~?SnO2`vvn}Z=CyNOXC%1Mg|6;3xC7V}AOYlqKq8P%z#^Ut6kh-o2Zjz9R4_?E7#%=~ z4L}Ky&p>9}VVvB=<|fHMsx) diff --git a/examples/runtime/shaders/dx11/fs_shadowmaps_unpackdepth_vsm.bin b/examples/runtime/shaders/dx11/fs_shadowmaps_unpackdepth_vsm.bin index 4c9934b65bfb829cfff137bea65618becce240ae..2bfb9ad11692271c3056a5b77bb1904cfe7f23ef 100644 GIT binary patch delta 567 zcmdnTb&Pw0cr+Iy!wgoJ2q)(==k8vf?rOC3<67UoYx5rcW@KOh$}lhh5rYX3cQ7+B zJOE-576t|xpkR=TtD6sy4^p=Qh=EK786ak0`Tw6`A_IdI^TeWA_547A6F_``3nT>r z222oI0Lr(4@_m3bNDN&(0w}Hk6n6k(5J-TkF96aBK)wSIg8)pt3Mjq+$ai31s0UIA ziAJEr10df4h(Q3Rp&KZ!0Q83gSQH^X4Je*~MSKZRd;!Sc91sm_fP4_x0}|&%HV0xq z!wI0o0~85}h8sX}1z^ZHK)7%Ry#$IUU=jZc6kh-o2Sxz|fC3!|1c3Agpg1VxfJzu( zAzC_FlgZI4Gp{TxGqs$dG`^rHKMP0!1p*+fGN3q=2~`E<<>sfP<}hroVe(*PTr>G7 P^KQn~lN(v~FmeF^d7@B@ delta 424 zcmX@cy^m{xcr+&?g8-{bgp>1ptChP`9tFyDH|s8b=>O7|k%0jy!@vMU3?@L#z|6o9 z0mMB(JcWgUA;`tm?FbVC14!Klh%|!?NFB@n{|plu7$z}IESgo%4HP&5#0NM*QV?(f zqy-2BAQZzLDE|$R28p4I{{V_B0L2}E7z}{6f`9;!P5{ylKnw;@acLmE03^V{P!ASY zfl8QwBsefNH~_^TU=a@hiYove?f^CgNC5dDkO-s`u!!dZ#TNj@fuREi6-*KkMh8%0 z15g6wGmsf~7$-L|c?gwdrj`d3gzq~oY1U1-0r3*!RC_+G`8bP8)v3O`nrHUY%wArL9Nj7A=>A_%v z2T{BzPf*Z<;Gs(VNE1sh9&*!@nnN=j&%igbI-p@fiHWFwsSbBK(<;C>l9`p$sPas&EH< z3{Jz_+w_oV7PX?y1txx!-7g(P@(CXH2xM7%$clbj|FyLjD+LoSP?wK_%g|xC;Igd=3+oPC0+;b!;SSy93*fNj~nr<8KMS&-%{h*SzXI53{umM6M8afnc5(=5PL0kE}zL8A!;KUK>NHl zXJz7sYNqv^p3_VmL=vNZOHJleAqrw2wA75AN-s?3&1gKKTPRT^R{F=IsoAMqPBWq* z8bx_oo|w6KDfZYk_BHa(J>L0oVKMaQ1|vd-s2~1}kejFhb)W(8=)~p89T$lBzOfJKi0LgF8hAE zg2W~g`(Jhqyy3uaf;YhfI7ZB#Ml9?$e9M6^fwvvbS)LJ%`1<`9uY(62_;YZ@fxiYH z{h#w+uBjshT`Nu-`CDYE*?dCFP<^Z5ZZr0br#wYgA zt#j|8H`s4uUE{^Tb$Jz)p8IzF6aG0MYJLYEu_}Kchvh1==kD0qs<@tils_o$fB1R#fA22Iz0^kPPI+?M7UT@3wicI~ANLQVrKk4G z+s*WAa(q<~p+hu)nuJRxQ4>yBL}kGB)bfgl%=@Y^mNW&E)#*@$Xu_=I&x>OK4fxLH zmeQ=DYC`8Zojp`$|M>>E3oc>Sj^3X|^^qmaig^GYAxoknO0RK(MhjWOtoXnwxQlzp zF75F%aK8_az$3o*kUDUI%&IdV{{0;Ferll6`qNMc9>HBqMymMpLC@fRAN~#=f#Vl+ z^@YrGF#H-gPmWPM(Ly+5EX-#PgUw9(m2#3WOK0gSFgziu O;jQ^8F2if9E$naYB2WeZ delta 424 zcmdnNvw?epXf!7yLkp`*gp)I~zeD6lum2WH4p#kHZFt~0BLf3ahJgWy7)*fp4-*4J z2r~mi2M}`r1%q5%-3|c7KJvUI`2oN9O1W7@_ z8ITqr5P(n&H=z6%KpG^5F8&25t^gEw0AdjM169uhv^@dHcK~7#fQgF(#TS4CI2h_d z6oUd#00ay`5*(NsY=Ghqu!#Er#T9@KcL3`~SP%;oPrxFc2^3!d6lZ~|FJY2^uv&l; z8-NlZp8=UbA5X4f@(?P^Of3&6%FkjbjnB==NJxc%p diff --git a/examples/runtime/shaders/dx11/fs_shadowvolume_svbackcolor.bin b/examples/runtime/shaders/dx11/fs_shadowvolume_svbackcolor.bin index c83f54cdce1ad162a760931437057ddd3b4aa5a1..83953115e8f9d4e23c99abb62dc1cec6d0a35a5d 100644 GIT binary patch literal 1164 zcmZ{j&r2IY6vy8-Nwon{1P_HC2JE3l2}EllAnjUXetl#<^?{^Nzbwb#}=2ea;<)Ea)hShq50kc}&GWRouhK>?Z#M zF2Hq&?VrjY#(FHoI>Z+7aqtde9b$|4eee^+I>Z+7NpOLldO)vu3f$_$=fOL?hT*Uv zicc;RcffIkfgK`d`--s(&ilqF+Rt`nw_(3A z>{^R_jbfx-RuYAC(tc|@$|paDocMn^jn})YXn~BT=f1)KP!2tAtz4C*qHVX1o>4D> z^{}-o0ax8F{p&S6$MKq4P~=yg=2q3PH_?T^K^=b3Gr02fvQhKg9e1-O9vP2CVcA?3 z=2o?Cdt%YuZZ;e^nbb@sm6@AK&8E|7zMDlezcP&;(J>16Y#ifP2#oKpxmqcg%%Uuo zR;Vl#<^?{^Nzbwb#}=2ea;<)Ea)hShq50kc}&GWRouhK>?Z#M zF2Hq&?VrjY#(FHoI>Z+7aqtde9b$|4eee^+I>Z+7NpOLldO)vu3f$_$=fOL?hT*Uv zicc;RcffIkfgK`d`--s(&ilqF+Rt`nw_(3A z>{^R_jbfx-RuYAC(tc|@$|paDocMn^jn})YXn~BT=f1)KP!2tAtz4C*qHVX1o>4D> z^{}-o0ax8F{p&S6$MKq4P~=yg=2q3PH_?T^K^=b3Gr02fvQhKg9e1-O9vP2CVcA?3 z=2o?Cdt%YuZZ;e^nbb@sm6@AK&8E|7zMDlezcP&;(J>16Y#ifP2#oKpxmqcg%%Uuo zR;VTqf*;#5>bT)e>!DQbeyb`h$7fMCheF@r;( z4uuYmI{F8Q;?|+7;OHXtd%cTQ=?7oleZTkaE?jIUxtp0oN6)wC8e0dW@=nzezF2Sxv6vDSKf$w;w%|V8U=eA(3b1-FxLuwIqTft&;8d<@Q4n9Ut zJPGA>p=Xl^sLcNJ4{#S;!mLj-Z{u=>EMZp43*a%bBx<6J8?$KiktNJZHx$8L94be2 z%oo7b1ilI$^H11%gNMx8W1jncj=rB18vQ>Fy&(j5@iJ1!pC7scR}=U(cnpr$AE}MZ zN>IDt{Bn%a7p+APVr|(!tMB`j2Gx$j^Pq|XP}ZwDxLKMhlTL%<$_e!f87ahFv}+Yb KCu&%UaJ~Tvz*0s4 delta 422 zcmZ3%xqxGWXcQ+S!xv_k2q$Nb%CmQtrIzr!9W+YRh-E&)$iM)UVPIed(k4JWgNcFR z1rW;s#VUX}$i>wy2FM4g^8jKHEd#_1EdT#AOk`ltn3!)|&kf`!0Pz7%AOQs#AeBHM z0HGL4p!^mf4H82ap8ynB0E#;RF$m0ns$T)56M%dNAO-=L_-3H^0+0X)Lp_LM*aOvY z1|-3Oso@4t`~ep67eH|Zpu-)&rXVc%2^3GjBF+j7jRin)7N~jwCUFQ$0VuHnC;{>r zkjYRoS)9pJs4O$JJfJ8)i=i|=H$Npchhg>RSxgR$jB_U6W>#jLJ^4TL3Pw%DN diff --git a/examples/runtime/shaders/dx11/fs_shadowvolume_svsidetex.bin b/examples/runtime/shaders/dx11/fs_shadowvolume_svsidetex.bin index 462047b991c3c6279826d3e4bb9b3463ede53a2b..e367da3c11b8b0070f1b063109eb6c35e925e6ca 100644 GIT binary patch delta 575 zcmZ3_wViu{L>w0*LkFu%gp>3ADR1T#N54EeM`4eD=9gIrwQo-i>mfYf;aF^HA{Vg{D~{~0DSFl+|O*-XC3B0jNKqMjcpo&dxL zxPSx{oB-(n0s#oca0SYL0;EA==;9xM;tD`<2OtK4A5iriK#LN9dh+ZUYow0CEHeM1u>E4+0?| zaZY4&AoepP03{xvNI*0c0L2x6A>#ny!X4BI6i>h+-U}3802F6|s-FSmgTM+Py#Xi= z3OSGvEJRBuA7XU0%FHVZ%SD%FhB)K!E@Vs|+X(WkOX!dAa#1sW}XrMVT@f U8P`m%W6oz>z4;xp10y3B0A2}JM*si- delta 431 zcmdnay`F1=L>wn00|To|gp>1Ew(Zgj_rCDk`sJpcU~9ZLP#h=&MhqrE<_snV1_5RU z1{WZ1VPRkha&dKw0g8dtc>pnpmH}c0mjC}5CNeN+1LbTc2eOJ!?3JkJ28t&D@c~XC z0RKgF?kA=Wu}$~6y;|zl*Z@gr=;dEtlm7ADT9%5&SW;0e8$CF~Xd#Cdv=R&&s|5v#t>|f!m`%EpY+}-l7a>x- z31S$*gP=tb3aQ#QV)5fp#e;%{{0TYKgPQ8|yb#Y8{j>()G?aKYp{e?;pX#PgYN?b_RQ=R|-j0F1ddbMd3rcZD(=}Z! zVw7BrdJQF&OZ&;^s@&Q!4d64BjFz66jiwWmx~>+YehLEbABbEyc6|Na-4_dQ`vRX& zzaAStx|(1_aEN+QM-eib_lTc}MK4h_a$;hm@@to~)gszjdB3$Am+m^ zG}fB3n~l%XF-zxB1ruRIwD>h}89Iy*{D!sv4r&ZKj1a5E?}N`nhl$E4TgGD;4d^gJ ztk%FYa9RAwCf(w%z++wb2XO&7In04Nv{((no$cqC_tRGxjsFaD;19SgwGWuwgYOvY z!gqqtgQGOpUaJ{JT>|g?a-lMewJydf@H)5~$Jh{4)?yBE`&f;?l#Z}! zZBshQSe1v|t89^Py3cv4c=1CmO#l3zG!@*YgqYJ+{n0 IdKZ}MFDNIX0RR91 delta 850 zcmZwDO=uHA6bJA(O=>oqj|OWJ{J`#^;GsQ4X)h{RwN`VpkwOJwo0?6!l5Em!ww_9h z=t+?-b5UD0X%&Qe5P~-k0r4U^RM4AZP|=ej;-#MaPqG22J23O+{oc&%&ionpb#P_$ zqMwm$spdi{T}~IwC^Z0nOHCJMb6XseTF^la8LwHURK@4<$WcG=3O%c?o28@i#H z*h(^^UQ5jub5V-O_U+gdAY!R`JvUcLu4cyy+>@h z_*eK(=bZLJXZ;UxW5Uz#{ICbV7;$kwTygPz@Wj8)liuX+1zo#(zFfRQmRcxgv^;Ir zn_j7hJ>u_nJ!I>==8N-Nz943IeM1;u`8L^leO~&^Sd~x78yL6c0rr6J4IE+{{AA!5 zTdgk!&N68gzkLMv=gYwu{}jB(*7#!RLP+q$H3cKlef}X-XEknz}gVe(%Reu%jM diff --git a/examples/runtime/shaders/dx11/fs_sms_mesh.bin b/examples/runtime/shaders/dx11/fs_sms_mesh.bin index f16671b34a06bc2db3d1a4240b59d3da9cf72e7e..b3888f1076c5036cf058c8e1abf34af8c1ef2572 100644 GIT binary patch delta 586 zcmbQPGhcUtL^Ky8LxGq}gp>2-yDaRCC1%^}&OSHL+#>Oak%0jy!@$4_q)mXhg_(gt zfQ5m<1&F_hGB5D%FhB)K!E@Vs|+X(WkOX!dAa#1sW}XrE17B-8P`ny h#=M<(HPBqQCIukLz_5DqE*4|P)tle3Xb3WL0RZf!QPBVZ delta 443 zcmbQQJ6&gjL^LNO!wXTD2q)*I-6t&^vz^y{o4Dx_XV48FMg|6;3UIDq22!^Mh=IZkGC<70^8Y`>LbZdeM}YVMCrAnc z&VaN4fdGVJxB=zA0MZ~abn!1haRs2b0}zA2AExC2->!h%?!cmfvjOrZDzpg0RueF>8Ugw+C+ z*Z`CO`3%Se`gn3ZlZQ}QW@>prQGOOfX?$*eN@@dlPIHH?gNCfBiS=ba5y=+>kF WBpDcHPj+H8W}Lmbj8#LBkrMz4Z9vxm diff --git a/examples/runtime/shaders/dx11/fs_sms_mesh_pd.bin b/examples/runtime/shaders/dx11/fs_sms_mesh_pd.bin index b7cd2fa02c1287f99c0bab85725d59751e688650..a28e34a0e831e57c855274b1b50eb19394917313 100644 GIT binary patch delta 586 zcmX?Zbl!M^L^Ky8!vaZ{2q)(wJ043ta?+~bedA(EkI1VDj0_Aw83qPcAZ-G~EzArI z0xS#+EVXtO zq82Fe0LXU$Vi167Xa|Zb0R70T?iZ8yUe0)DyDiXPzl-xJBLf3ahJk?!r`2-<1&#pm0Zxz< z1e^hB0RjOC#c%`4e*vUHV(8*ufZ_^3aR(pn$Fqji;fSVzokNuOV+ zX+||Ylh@6vs!&Mzi_`P7Q{{4@l2#QBxEoGpZcN^J`uoeL&Oz+>PEIB$Kz0k#3nK@)H`m%jvWAWsn0AxDMRC|Jl7a5lH010KVV zB>MD-e+17B;9c+r|M&^J;VW{s@5}?o&#~{P9tze!1-pSTt61=OgUwHa=LYZ#;0cv{Ulf1PvK zCR76txP=|r^-NvY%gfVx;Xaw!dlh350-)KeWpHQd>~gXtBVQ;{XVm*chz~NVd^_31 z1*wNIzK6EtzH(7C<*-j8wtbU`KYeqeEi?Wrh>!hOMZ2@(Zwb+o3jr>41FIt~w2l!4 zD;OCMb6T<0J@$>P1xLku`69SF!q>&|*1VS=J>`k?XX)o?`p zWM)%U84*%M67(Xx6(O3463xIr#fkE{t5Y>FQFje4bR166tu1;&q$8K%$M=u%1MG19 zAQA<5s3P?3w`hS4_k^NDy~7Apu>ZLRu7T@tQF=-QSQ=V@>TqG(JPRHQ5Tm*fy54WN zB@(f{4K{dt0KX5eDSPW5ffokwXJS4$Hr2IosP}zpA<;rYybQ;k7k|KI4IJz4@{b}3 z`wZO}z`udF2h8~n-WkCEbXS7a8yG5PC-8HGjYExHe3GAyOdq=ISoe&ocbfup!7E!8 zT3%g={ABDcUy{C@Yoc$ep^0`{f}h8N8~vZfbU_y{pI+3&ftvjFKF*pvEoTuQ$R!r? zwtNOL5xc;`RXw)C*h}6~N=k_GOBlm=sE%=8wZXrtDfXQIRZp@vd?Nl3Bi_YR>;+$s Pdx)9DGUAWKQ>Oj{?zM;% diff --git a/examples/runtime/shaders/dx11/fs_stencil_color_texture.bin b/examples/runtime/shaders/dx11/fs_stencil_color_texture.bin index cc814a6bdd7d864d910a38715b7469bd14f9678a..2793e4b89f7df6914df46ebe34d1543070dceabd 100644 GIT binary patch delta 567 zcmZvZF-XHe6o%g=Q8WgvpqoO#)v<#(omwS0iHHaaX0Su0+9EVg(xu?q8gR}i*rDKH zopk8xq+`J@f`bk&+CixQ>s_o$fB1R#fA22Iz0^kPPI+?M7UT@3wicI~ANLQVrKk4G z+s*WAa(q<~p+hu)nuJRxQ4>yBL}kGB)bfgl%=@Y^mNW&E)#*@$Xu_=I&x>OK4fxLH zmeQ=DYC`8Zojp`$|M>>E3oc>Sj^3X|^^qmaig^GYAxoknO0RK(MhjWOtoXnwxQlzp zF75F%aK8_az$3o*kUDUI%&IdV{{0;Ferll6`qNMc9>HBqMymMpLC@fRAN~#=f#Vl+ z^@YrGF#H-gPmWPM(Ly+5EX-#PgUw9(m2#3WOK0gSFgziu O;jQ^8F2if9E$naYB2WeZ delta 424 zcmdnNvw?epXf!7yLkp`*gp)I~zeD6lum2WH4p#kHZFt~0BLf3ahJgWy7)*fp4-*4J z2r~mi2M}`r1%q5%-3|c7KJvUI`2oN9O1W7@_ z8ITqr5P(n&H=z6%KpG^5F8&25t^gEw0AdjM169uhv^@dHcK~7#fQgF(#TS4CI2h_d z6oUd#00ay`5*(NsY=Ghqu!#Er#T9@KcL3`~SP%;oPrxFc2^3!d6lZ~|FJY2^uv&l; z8-NlZp8=UbA5X4f@(?P^Of3&6%FkjbjnB==NJxc%p diff --git a/examples/runtime/shaders/dx11/fs_stencil_texture_lightning.bin b/examples/runtime/shaders/dx11/fs_stencil_texture_lightning.bin index cda7b9eb559377eb7b9c2ee7fb085ebced1f49b0..371a439ee7ff5fabd65d680c1975cbdfd744eb8a 100644 GIT binary patch delta 931 zcmZvZF=!J}7{|YtUM-8BE?IZT-($1F64T3DFg-S zphD$2ICO}DI3(IYa1n7Gnq&a~P)BcFyFK#9+G^h0)QVfL zzOAp{`T3aX5_@~}jOYTqMZx(?^*BGq z7Hb;RCuCj062`|^uo(#TTByIH3idzW1kZx&NOAPHSP;9Yc~l)KqQ{f?tU9z#R6{v1 zR2W@o9Vw#Ma1uO=-=y!;1AYcPAHgq*0pbnPLBkbj5#xgQ9lj@+PZKb@M~tAM1fG=- zHw4@V&qweFVgNXvc|V>&i&#Nzfs2=mA$u?Sx(1^IqdzoSVM7OXBZ7Yc??zno6?{8_ z{}T7%uQkH^cZ5cy@r4Gs+%qx>ekneF)pizc+SYyY%}Uk1ivnN-y9MxY8=eZ)oLjQW z)P5XK#Mp=SvJ_`(10%*BX2m3G@_KTRHFzhYSz?X$n(~IRcf6uLXUbnW#HLpO delta 814 zcmZvYF=!KE6vyA!yCj!OqtzzWp``~7*100mDYUgzrz1Fs2-h^ZHYe#_x$9|%VxlNr z6kEP*iF$)lP{BY3!6~4FgF~SX1v_ML6*@T7LF)f&(jx6Wc<=wc-+SNt_};UjCxdGj z%5g?<-^eY@TBf};K&?(*u;%7`&m5plzH@rnN@0W6};T0|0vQ5uR z(=JMVzEQH~i%YuWWpf3~_tFtkBS$zpKYQJ_O*fm4=)gCVlefliPdrzz{QmT??*4u7 zaVxX-`3ECHi6{cS3{S~K0sK3ByO$_Cd2MQ2A`*S?;W*MDoaFs|S|@r9up&6mo$BYO z*-H5gvM=yJMd;d{p3b4Kn-{zJGE}hR{4ux&o`H+jry{`W&>3h3F6@wRfCmC7R2D*w z?uC{pC?_v`18;}$9dIpvvi}$OObGuY=7VEf2PR9M_bG+FG*A#fLk}JPcnG`&j@2IU z5#++ILN`PBICwi`&JFP05N=!&1F?D?A|758IjjQJ|KnAOuS?Ts?^))3-F5DgZ!92D@7-YRCErU{nfebV C$%%vj diff --git a/examples/runtime/shaders/dx11/fs_tree.bin b/examples/runtime/shaders/dx11/fs_tree.bin index ff0a7195014fbebc400b1663891808ee54e3b434..64b8dbf87b4cdad86bcbe52076d24a098eabf149 100644 GIT binary patch delta 613 zcmZvZy-UMT6vgjLYl%Uyv^ofaSzM%x(5W~?t!{!ih)xD+hl*MeTgT=ouz|A1*zvIuLPk7Ztgq3d*4UiyNun&%k$Z3s%e7E@$}Bh>P!E% z^=muHp8NgWf3RAD2o<6+4@%#4FIY@ zQc(Crp#yIqSi=cl;5rUzcr@TY;N}Rf;x8R=!i}(^@GPAujB7e2^2d23Vz2D zxQ?3%Cir{<+#JDoc>{2~hNlcX>kPRDK7ldLOqS#Y`$kz#<&KNnx$HR=_D)Xo2S@;$ z{-_8phq6n$qkJZNNN!KL6XM>z3SS6Ow-+LFGj%M#h(C|XXG&Q*2vObLk317^j8yqeXPR>$)ceuuv9y^yP8va?@>#!js0|QWofq@lBn*ebI zGXsMR3j;#{5XS(;gIrwQY=B}Qbs|6lq)rBi8Cd@RXPC&qzyXxo1LQJKF60!RIQL0C zH;|(PRJef?qzVE|m>{$OkODCsp!@(J4H5%k5P*rt0L2wRd>{sa6sY4+$(&aw_ diff --git a/examples/runtime/shaders/dx11/vs_bump.bin b/examples/runtime/shaders/dx11/vs_bump.bin index 1d428860c0324d6b7796578af9fb015a5b2e892c..3f541693fd0d9e64f8481cebaae3c636e6251f57 100644 GIT binary patch delta 625 zcmZvZ%S!@L6voe;oJ@u2rIq%WKx`8f)y8Nsl!*~Rv8f8SOy_&Ybi8&SNh3zBoT!Iq$r}EM!eZ;)#{$x=qnp zmc|`{@YM8PX?1t5e177SPY--a{{tgJg-8|=P7Opy@Er@$wVh}&FcZAbCp|2eKOD<6 zqd|igP^no#tbnx`fo@D)LKN&TFM})KDqMnB%>HLY4O)c@tMPYm9a<&IAbb}XrYq1Y zTv%omM8#sXk6a;{b z00IFB#SjDK=KyJt7`k``P+S2h?f}F<%NQD<>L&o{1R&o5h>^u-1H~5r#TYmk>cJ9A zpc=M-Bsd@%K=Lqy4gkd;U=hCn6juN`+ySH*2w>_T0>u-sh`$Ay4-{vCC};S=I9ZO# zL#Qk>wLG9GKZ^kxx(ur~FJLlYV&t2Ak!3w2_vA)aaYnAmGg;Lcc_trZ)o0|L{E=0j zk$titn>ZueWKA}8MvlpWZ2F9xlN;Hhf$Hx9#knSb1&Z@*mStCGl;j55XT-q3RRjz= ZU@S1WH7S5yz%@CR1Ei>x;|CKXCjeN3OAG)2 diff --git a/examples/runtime/shaders/dx11/vs_bump_instanced.bin b/examples/runtime/shaders/dx11/vs_bump_instanced.bin index 1b25c01c28d476024cc1b6ba5cac18a8ff93f7f0..4db0aca190aeab4278040410dad5a1224fb07444 100644 GIT binary patch delta 574 zcmZvZy-UMT6vfYrv1kfXtVRTf3Uqs;{lE(+_nqIp_dQqRwOYUI45B!^}$*hJaVr9y)r z6`|~8q~e4then4!3N^}AP3j+(cON5hieUpj#OU7#~A=b)mpX+WPWMp6f$}ljn0%;Qt_P}PNC4suoInB! z0zfK(KmbB9#6bBuKpG^5E?xl?R{)AT05Q-$h6bqm2|zjl$aer@WbxTR@dZFJ1`dXL z5XGP z$pTCsLS>n$2gtYhqEuK_Hpt= zaTl61Xtd#;i7il1J_Ut`f%-xIgecj6{tBJ|w_qtR=>I^pkz26Th<|~*$StBK!nnZr zG7q^0ON}msz!SJ+`E<CW zJr_`A0uXQD1QJjX05S>)1RxYc43wV(q(Nfn;uSz~1)#VC5Q9JiRQ&`XodD!J05J%_ z#AgG=7k~sf80r~-j$v2=)vyI5!GWpa08sn^R2-xpX3zzoxB}4O4nQ#wfQdf@iYH(Z ze+x1nC=Lt_F!;eZS&Yd;s05To87qW;m_D!D1qRu#B p@=g|g#)*?(vKTXRPnKmBXXKh}%Bs%DGdY%3pOJTRFY6RWP5>!!NNWH9 diff --git a/examples/runtime/shaders/dx11/vs_cubes.bin b/examples/runtime/shaders/dx11/vs_cubes.bin index a5d0145eed86b590e9ea2ef8af329c5bdb0b54cb..b1f1f463e1c53dc6303d820d87d03ab2aa7525a3 100644 GIT binary patch delta 538 zcmZvYF-XHe6o%g=DVPZ2WP~DQD0C4VbSgy-tx_k8padeA!445?RcIaS=4KZT+gTd}9y4wxa&W zZfSczWJKr?;h`0nbfOyk2uB9dPGw{Bx##6`U5%(L&J4SEJ>QwZpbrl$yp#s=Drhz> z^rZ3&s$~E92;2eZuvDz(KT&;T4oi*s4|s^oi8?4*gW=0!WDZM>7pB1-Eb)Y9d=A{7 zzzg6ZI8CJsi^x)C$<4p__z9;f8nJ4~*;p<^E`ozU!;_Tp0NkIzTi_u$es`ivO+>6( z3QpR4LH&YS2dC%FBNTvIdTN8Kqnc8w(LAgl(@@h~#vX*Hd+biU>o&U;uX>S%;#*&0 K_o8S-%=!f}f>VY7 delta 405 zcmcb?b%Aq&tQ`jn!yFcu2q$Na_j-zxrb$}OIr8+lgzq~li(gW^+yYNWGPef^#40n$f<-zpc-;EkjqdR!N8y4VT!p8ZuQ_UxCf43 z9_mCBkE}FjAJjMP$`QF+wL@nY1z;_D)xp(MO{r9Mb}IYS8P%Q{yB42`b9N=R^&Gnt T$NCiWgs&Hv-}%sIHJ14W*0NI< delta 402 zcmbQl-^DjU-;RTY;Ru^cgp>1H8_!cKVv}CiTOMAYw8`iRBLf3ahJk?fM53Mxs4@YFH*f+8CRiXjHd z&jHdPF%Slt0T-_TiYoy54nPb74N&zHfOG=&hUeAvJ{htP+4Yb zc|cKq7DH)#ZhlH?4#VorbC?b=GESNt%hJu*KUt7foUv~*Bda>&gvpw$`iv7dN3vQl HF>(R`sG>Tc diff --git a/examples/runtime/shaders/dx11/vs_hdr_bright.bin b/examples/runtime/shaders/dx11/vs_hdr_bright.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_hdr_lum.bin b/examples/runtime/shaders/dx11/vs_hdr_lum.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_hdr_lumavg.bin b/examples/runtime/shaders/dx11/vs_hdr_lumavg.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_hdr_mesh.bin b/examples/runtime/shaders/dx11/vs_hdr_mesh.bin index 07b83cf6a01067cab0ff55c22f9f9c24cdc31a13..4f13dc317b287903290008f8b21b1fa9c4df128e 100644 GIT binary patch delta 651 zcmZvaze@sP7{{MC??i>Nf-tG!Ai*UPq9MZJEOiSaB!UQU(816YLu-?0X$g{7D75Sh zi#GeQ2X6fVEp9h7G)9wS-`6{n!Y@4c-1qZ5_r5Rpy!Fxhv2$jYYa>b{x`+h$W;hZx%9$Ct zH9{2RA-kvCoG!W1sUaR+cvyN9OF`piqIb)GAPe@Ne}OCDDnh7h^*gYU2CpK7`g{^x zhgXS8NP~hG1p{712=zah16Q!9+M@%$0Im(;L2z9h!eM?8h8Kzn?ljjCsLRa#NrN-~ z6ng!X16S~8RMY+*=onlZ!q32UaLMYwgco{1ZVurE-eIAY)P7M6ms+ex~z+6krX0C!Kg}*ng48^=!>8da8&c fQI&^eKfB^7IlyYXEqhp%KlMll=&LF@f4q+((C6*vdOg3cl6e@#;JOeZ)7*=oI!Zd}EanfW@mSV>K z$$MGE8T%$*Wl?9GF!?WwKI6p6x~$EN-IF)6iZgaiKFO-i*faSft3FUfkqsnb$p#Wh PWYcHtojj3k3L_@~*hf?? diff --git a/examples/runtime/shaders/dx11/vs_hdr_skybox.bin b/examples/runtime/shaders/dx11/vs_hdr_skybox.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_hdr_tonemap.bin b/examples/runtime/shaders/dx11/vs_hdr_tonemap.bin index 4c415290f14a2cbb0b37ba7eedc28a1d2e9cdc6c..e1dec4db9f87cad08a0c8241ac8a863c8166023b 100644 GIT binary patch delta 543 zcmZvYy-UMT6vgjLUt?RfbPy}JWDpb-x;T|0L8}y8L`1q7!48prsE~?KsH5Q0@&*^t zRB+Ov&`m@fI=VPioFxB%;Hs17C9l?@2Ttxgzxy%dZTutNNG(MR_|SU{G_NFM!v$MQMl(C}14&U$hg$|D%~Gp3&g+y=LX za0lE4$8Yy_s)+}dOWWn@wp}ZztwDpmFhMe0mw&y3xOUg(@% Yi(Q^%SK@@vGFP;CinThgoNFxh3s?eGga7~l delta 402 zcmcb|ca3*~z8wb(!vr>$2q)(XPb0lGTNNx+T{RN#&%FPKk%0jy!@$4_q)mXhf{B6Q z3=p?4Gcbq%#e-a2-E1c2O0#kR1#KoXvWrh#B2mu;RG9$88#sXk6a;{b0s;XD#SjDK z=KyJt7zhK+fQwfE#T9^j2OtK42B`W8Kso`)cK~7#fQioriZ1{Oa4^(^D263a4O>7G z9GDso0L33b#X%Os47vamR{%QP0b~dez{DQ{#S^fIzXh2O6lZ}bXZXQ5S&GR+s4O$J zJfJ8)i=i|=H$Npchhg>RIZOu_87EDSW$9+@pDf5K&e%7ZkyV{>!emWWea4BKBUxFP G7&!qmoj9}r diff --git a/examples/runtime/shaders/dx11/vs_ibl_mesh.bin b/examples/runtime/shaders/dx11/vs_ibl_mesh.bin index aead4063ae99baebdf48734ace51a4396e0d0b2e..73bfffee8047ee5fb4acccb6535f911032765028 100644 GIT binary patch delta 695 zcmZvaPbdUo7{;G(&8*$Yzm!;iYRkcml2URQEIBxALgKI^B*JdkbzI89h1k!*iBWqH zisI<#;NU3dIdD``YEO8+*_lY5dglG!-}`>wH_f~+<*yZcHCeHN%5-8WIWxOBHb1)_ zUr8>6;e<7W(uwJ*rFe2xN8S)Z|A}jxtou`#i-G`CjeFeov}l?1lXbr zv>gP7WBmh#0HFE?X}6yd+UFPcfjf=GZn+t(-M_5MRKfIgV zRxc3(xI|1ns1e1(zt1V&4~qrIE2v)o;uMo8zl^DNQ$F7$xBlTf34ITW-+;1C2-eHY(bssrCW@BGep-o4!W*7xEl4drQ{`g75AW-Y$4 zn2PU4HZ$uMYH2cQx#;RjI+EE^sb*nRQA0~p(~V+kbolN$(Wcvvz4xa&BSMErL7srl zC87?L?ICi5&xdBhS=7Qe3yC}ek^J>dWukzLW`Ga$y2=fA-iAgDy0Bm|A}K}?&TgV@ zqdq_u>^Cog>)=61#IfN&Lyn;iLLyAw1g{F9QJ!!Zx-tgtMML{L@Ce>AxbT}ldIi^U z@F187lYfH8{^1IStKf3iPEN_y{nF8>p`&pU$lx2^&W8u6sork(Gl9g8#FSGL-#m{V9S6$4? VovI*{s-HP{QXOL_{77vv%MWmxS&;w$ diff --git a/examples/runtime/shaders/dx11/vs_ibl_skybox.bin b/examples/runtime/shaders/dx11/vs_ibl_skybox.bin index 46f8914fb4d1e461c7140c65a074af417e7eb4f0..cd06be3df318e4acc0ef5ab2e730c631d15c182a 100644 GIT binary patch delta 640 zcmZvZ!Ak;B5XR@}3c3YW5GE)r1bHipPT^rITRKKX1qN=Q2PIRawQge92$a{slWn)4 z5}|)W=vaqtdFT(YO9Vmoz4k3eIPABx-*0B#EW5Rl#%L{?3n=8XQu*W40JT+xUVMqY zl~v11z8YK6_i8@&F*$A=Fd|flaM26*n0jF@YF!53%ppC@c+!lu__;U9u6R%hu_o_(W6b6;WsY6*T_qX5!@dO~wIu(Wai)O~ O-SS8D-19HxlBqw$EMpV^ delta 496 zcmbQiGl6@8Y!(L#18Zq~Zb=0v!v;T z~pyEKs!wq@?6juN`+yP_=5Wp<> z2^3GjBF+lbyZ|T;3?wiRU=oKg6o3*Npc=pyOx9-d6e`P1Ee|Nl&td>ZNq$Od4#Vor z>zGm)8RtzFW{GC(pPbJk&e%7(okg8-!sPWV`iv7N-)D)IoC7q{h=GBt2pUdqO$uO3 SW={@g)n}YLxtVneBPRfhDoO?b diff --git a/examples/runtime/shaders/dx11/vs_instancing.bin b/examples/runtime/shaders/dx11/vs_instancing.bin index 7bd4847fa4e545ba8937d8cb26404ccc5042f3e3..a3b76d7242551346cd90be2cbfb58803d270d934 100644 GIT binary patch delta 563 zcmZvZJ4*vW6ot!{DuJ70ZjTFg)neO#SP$va6P%QdJ_WFIfqg{MZx&^L=C92m+&r4t9CM3 z876nBMwE-LhMHiF1cob}Z|REtO-#%+(s7+lSXdpu5FCr6*6z>FGVB^2-fdB5A?aMXAP|613^7oC4v+?kp^H}l#T9_!4nPb74N&zHfOGRNP+{?paVeh2Ux@}0L2x64tD^Xg0SErP&@&P_*;yd>AC0ZD=uQ47VwfLN%cI5mo;1kr$CPB2156A31PG(iis5e;i0 zK2Jy?rtpb{SP6ny+nYjcL=h`X|GkHz_`}@X|IOU)-tI2fthv{H6D~VdrK7XS$=J+D zJeD0wC8u3f29?s$`S@(iPDPo~wKEjy?YnKf8o$rIypGm(-VK%_EsO{iqDtfrM7@n@ z2H~|6Dd6Ey|3JBrtE)V&APVvZr>Ai0%~zpQMV!cZn7R`~LDfd02h%?x3-*`4gZsf1 zgwUti@5DqZyn+z2xEox9SBUaRKLsBOWq1W4WPQ*C?#G~tPJehCxcUzdf@@+C_-&yO zywI@VE@K>lKAAB;sc_|A1-+lpIJR8ZCcMxga?#`hSv<|3 zSxF68|90@=iJ>D|rEij;UC*bruLg!r-7mSton=Q+Z&Zq2;jP3J;fbH@R I#|D$X0M@;8#sB~S delta 545 zcmeAdY8RX!naIJyz+W1lo1c=J6PB4;9#E8@#mVphD9TnEUy_-d%EGXOlaaxM!zIGW z`Ji&7nyt0!#C(0f<2WCcYUcz5pb^!B7vP81_IloB>Gyz2E>813D6};RaCr0T%HWKyd}2 z!$Imn0A|5Ypm+inaaN$A3xMJ*5akR4OyUrh0#ITJR03qNz+^inPoXks6fi)egkkmO zgG^f(8D~!}V<~5xwfP;(eMZLq$>-R_8T%$bV^e3GFqw~CpK;=3JN9VFZlEzn3=CYG vpuy$Vp#Zk4Yw{*`b;h2_x7hXJYKmZLnqX>_I6!K=IP@8NCs%PyVdMk=iB?y) diff --git a/examples/runtime/shaders/dx11/vs_oit.bin b/examples/runtime/shaders/dx11/vs_oit.bin index bd43d3bdc302a7fe434b04b93fe6d6058cd19d9d..357bfd81d975d4b6062f0134c510f90d26c64042 100644 GIT binary patch delta 570 zcmZvZze_?<6vyxJ-F~PM(JxE;@dm*qaL6edE@k3SSPfy5FUY|#tw5tmX)aLiKkypc z1cw?z2pS^@3Zluit*N0w`d;7Fe$avM`=0YT=iK{v@59>~s07zc;;gTb+RyK%vu@L- zGK=&^lS|7FttWruDt7Vud>WC7Y?By6hp`^z5HsM=8FUS}8C{9pRSyGHsh-c51~Fhk zH4h#-YU&8YkYnsd*Y|M6{_+=a6I?(psQn7?cW?_XAQc_{32vhnjFn*D4Z?O4wSZJ~ z7QEmlmIN5mE+0o>X%5`wL2w(K^*i%(Y6-EZxcle%R-3ap8qHq~hbO^Jd>P@C-3v0{ z)<3)eZi90@Uv|j`#TPQU;#MYo%nGT4qx>EWVBN`z;5yY)x@!MtR-bSQq8YhuBq$&s p4IlaCtr4Or`DTP^T2As=8j(BPN5gW1hiFuu@Gyt5c)u!JTRKh7ojZNsy_zG8 z3=BXS1_mHvFahEUCLkY(S(q6Z41j_`F0O7i6APsoIVScR*K+|?BmnUSP9OmV0U#rQ zKmbB9#6bBuKpG^5E?xl?R{)AT05Q-ah6bqm2|zjl$aer@WbxTR@dZFJ1`dXLu*4Fm zhAkio4u}SjJj|d2K=B7y#4iBF6@U(R04W9nnEHo6@dPa5Z$ah*#aSTA8GbNMmSge| zD$7hQ4=BpdVt|G&!|Kfom>d`x`6fSP_GjdtY{(+c$TiuMMV*mnav_U8Bk$yeEb@%( clMe#L*(TovigQe6WYuTn+-%6|!^p@90N|oPng9R* diff --git a/examples/runtime/shaders/dx11/vs_oit_blit.bin b/examples/runtime/shaders/dx11/vs_oit_blit.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_raymarching.bin b/examples/runtime/shaders/dx11/vs_raymarching.bin index 50ce0bfa8f6d78aabac087a5eddb1125809d4e86..32a4483efcff7ee3f854f2d0a3cf0f047c11e13d 100644 GIT binary patch delta 538 zcmZvYKTE?<6vgjLU%{qe9mI+vWDvRtIygy@heqw@pFs)^MrenKwMA(i<3~t+iy+wO z)Un_sWN_%{2XKtw=peW`d0z5LM0&`{edl-YeT0POFz+v{=Q#OUySlNt|2?;}(mQ!6 z)EfO~TYNGibcpcKDoh!o7W@HE10L90+r#eBeAYLJ%JQ8TyEn7mBnBOLVB)1UP**`y zNuf~ZS5(FR^EYq{T);|^p8rC1kOizX;y>U4vLNzM(gwqqMaTkH8ZG3(Ei8$crhEq6 z8N(OB18|y17M75e%8KXy-s8laDriKyp=Kks3{?><{239al)K>07~TdCz`35kHe{bw z*4*>XpYh^E delta 401 zcmX@Yy@zXptQ`jn0|%>1gp+f`hT7R)%6AQOw`$#+_OV@`k%0jy!@vMU3?@Ka!NkDu z0*GUn85nw47#M;#2Yw)1QY~-i~<4y2*nTs z<>vrtkQlmn1yEc8DDD8nAkY9+KLJQ50Qn9;3<5Cm*+B6HAOQ}BdJx611gc>RNP+`X z!vUc91E@IA@on!?=6DPB??qTEv E04EGOhX4Qo diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_color.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_color.bin index f6ca907f07b7ed8789b178fdac54addd6f094d95..e8c32354d42ec908598862eb12ea44158c2a2ee0 100644 GIT binary patch delta 556 zcmZvZJ4nM&6o$`DQfN|;PCigEg5aPah?54n*ascOK?)9LuxLcB2(5!d+y!a9E-o5% zaV$8R(ZRt@2gi(#MK>q^o7@tS{%~^c|D8v|&1bf2w#JuDgF>TNT`4#(xyhyNnX{`> z{`=`Y^cfKc4-1nJ0#9RvqoE0)U7?Tyh)OCxdwGltq1!~OsoT|~#iL#ZQILHQ(6 zsQfFkWdHdGxDCz`QjzNKBD?S$A=TqQ-~l`*@{!U4!Xy+A%dY50C1*NC2zJsR^!*s!O^3`c`d^9yM)@u{$xL7e;Qda-PWgQa_-4ZpSaV T7AN{N3&g!X$8N=&e#xv~*eFvw delta 419 zcmeys`GRADtQ`jng9(dEgp+e#vdX~}`!~kdB@7SUo44o_BLf3ahJk?AqL9N z0n#8bbnyzHxB^hz0f<4M0jhoikWK*d9e@}FVB)iZ;tN0m91Qg!ieU*RE+!d9#z~WxGdoN61C<&vFmQc>`rEBf0j#-iGBb-h>xxn{sg=T?-1pYZVO=) z%J2?CR6Fnj+(vV!LT`B#Jbn)!1TTV<&pj{qH-FpNDJZ^uQfh+%0sO+Z&aNGL7 z@dkMO9{wJ@2#&|Es01%MK`vGI3#$FtnJlhQkSCSGC0m}}=c(~284kh(U_OulWKyu2 zst%0{Ya;|#87VqSdJdE-v883z9?xk(waaT-t19xb7E=5COMBhCg+5P-tPHx!BSq(J ze2F#@2Jw>qkZ1J=YMU4Jkov-3^{o2DZAMUiZ L-{CgzimLw$^38hD delta 631 zcmZvZzb`{k6vxl4-uL<%i60Tw0iBeAh8PS6X=xaQ7(_y}5=# zkNgp2z|;S5!jQ}Odq4qr@E=|Zo&>jkok~<`@no|GG*YGj>CeGF6d7=JW5wefva}V> znh!_jL(<9FljTr|ByU7%g5FR^mY$p|o5F98)+5-oQP*giqB7k7qIIbflab+7TNEME0-8#s@mXoyQ zW-1{e4v1c90dt9vETmAve+fNuK%9C&>LrIB;MxNc7sB`LzS*od8><&ante0h%$xVU zU%On)MYHdIc{3sLjmm2CLamXsx{;2I8LzxjyONY{a#+TF$k}%Dt)%P%O>R_L)pm7t zEftfk(Fn8F>eUO)D+|@u!ur({Ns%$9uOCe%#Xg9plhQeeP9^0I(EDSVrPDLpx#!;4 zIo+%N{?`-ll<&Q?6A?i~B!>2R+CylEMJxby;DyX=_6uOl%R$*5gUax~dvaZ51F@Is zhX`{iPoHTt->f#)q}S^)_c7=)RF3fDiXC;^3FFTj{~TIkLA(y!0&YVoEtB6tyA0ok zQWXCHco)76r6_(K_%3`KN>TgZ^W^MHf%y# z{|`93A^4xbtx+vF?H zS>SdE{u=O32wr3T5PYL@8TX)2JHIZyhzv=@V~jK8#7ecRwT7{!H-wzwzMPe}FY_uP zqlLSJ1^{o7>0(TiWjyCPqLN$7!rUmnYv{NAeK->RC0}*g)kdpcEz~Ze3g^HLcg4HJ zNNTKHs;}ef!t~$S69GRJ@Y4Z*N)}emx0`Fti|f`ih2vIkzBq3c@if%h)=YD?wbFnw zJ(-@KoIaVJoJyrqxL|X|GmE^Z+;bd7dBLUUe7VJx@wmvVuIYS+&Jzyy72yyZnhZ5J-BTiMEITT_%*NW4p zu;qKDxSoCDBR-rt6yoF%2cKfO;?2#>wKTgllg}42Qp{xvHVW8a_7TXvj^VQ(TIh*0 z4XvP5d%}H*)aD#6A@70Z;`D3GgReGYoD*@{H zsEq)ZabG1$PddNst2-C=C9iVKjB(9kqTGOzqsFra{}}j)ju&|CqX8eRDKtO6SP^VqDj? zZ;se6#&o~@d3|#XVzTvp8_~&eZE3GY~EYIJw5~0=N9rjK7sY&9Sp9|*T4qx`3CVY zKHI<_hR?UiJB$zCfgqpnfDPjF1L9$Pz6bs=e11gUVSM-&1^N60Y!IKH5f9^Y8~9;- z5c1Cb4(!AD@I53Siry1ECJrAxhu(V_@`gD5{BMZ9hvrO@x7N|~>D(`U4^1BGB=k+z qH$?M!zh1%5TCsGhv<~|?l=qN=zg*7$UdO?Q_ws*{y}kajNB#o>h=OVW delta 1029 zcmZ{i&ubGw6vyA>=We!Q75ottv*00zB5OncfJI}eNU>Cs$wkm|Y;D|azHoSEoPkM&=> zaabpcIJvE~TPOQ}n$W4>(8Z-4gBYAQlIM;bjlKLdwb6Ir*87t`5AFVb;fx}}3Q-V! zkBt39D`=$vQ6oZhDtWBe#9X{SH0k%FQDEZ_EfRh6-BF2rCqPOlD!I`R6(MU9Uz_va z=!N~uH6M`)Zlg(bVlH8#PocNbBwXGFUKXHHp2Y2u4yih6hi9o48n8 zk`baYIf_`|_KE5*F%MkdtA!b>a#p>mG$xMZz81P2b)4HMs4;-+>oA z_(w@xZ(ZP+|M<@9cx&>qsQJ>UwpQ^ceX7o1g4O74Y?{FKKbk+Hcisdcn&)aLt`_)h z$Wn{^D>SHPI3M1liku0@)hyo)TWXo#gmcju*lq>+w{C?ZpVq{j)GRf}H7ypES0UyL zcduy^1b{!o>|jH;)HdD+^B$;I&9YOo!pktLj`^UCdEYS~a#zGsj~w$!8}qSaKIK<1 uYmT|v#$4fpMqEAP6NaUp^P~~mI(ybV(Ugf?q9U)soaGNN=h*02QpR6LR;bhf diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_color_lightning_linear.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_color_lightning_linear.bin index 8479690b4b2cbf1275429587b1e0ee641dfddaae..a8846b064ae9fd55f482d32f4b9571f75da7f109 100644 GIT binary patch delta 750 zcmZvaO-NKx6vxjQ-^aY?kmDjpH}X~vv}mwgrHiMHqb-7nkf2~jXsC&Clo?0e7&N9fbV@6QhVm{jznh3({xpAWMMyL5PKr|#} zJ5qk%T?&Jz5Y(~jcV*p(az)-6G2WA}#;x9M^tnLf=FwFj zDY4{XCE7w*BoECld0>WkM^?-jAIfX9z%S&y72)TSu%f&#IV;8ovTKd;ww$peyd}TE Pccjmb@gteA*SP%;3h#O} delta 631 zcmZvZODKd<6vxjUbHB%=7|EDIQ(|nG$il)x9)mI^3n_~kMIOzdd0;n^EEtb*ER@$Q zB&9TEYhh!htgK~WMKV#={?~jgaO&K1&hMQ6z2E)rd+~G8mOE+KsVEVQ%#4nO2Peno z`=c{cCOv>U62b7~_(VJqUoa_a+R01=XGfwVkyxXooGEBo?;L9Hh&P&n(O9JSy!ySO zucW(15TQdP5u4$cHlo4;qFuNFKG50aUj$QgJw)kUrwpKMWvAgvUzaBf!9#Fzs3mWU zY8Y0W50tX%eMH56^HXpScpF?<)|$UU454m=EBod*;28xBN~%D2mf%q}jJyCJ`6I}I zKm5Z9Lmu<*0Z#DHKfDq=18)C1m8j0<%V#ZUWGw;GpMyJ4VuP!sS8TCg`b3)ND6D0Wl#^)Gp_60P!+^lB+& zCk}pg7!mtwl4$}-rp%;61Th)Y*Jfnm43nho za#|F`h0v|7I)VgY5Mr%bwQ83xT)I%)WYL8SUD$=-#`t~r-Sg(nY(%6fRrQ`jieCcmU;(Z{+xQmnR2;5`-2z+zt4C)~7t!zlEM|!0vP>efdVhi3muVQ^^^@7va!70CS zhNT2X4Yh+009KJ5VqMF!JyVXz2w+eHd8n@&pPFq<0{H?zC82GBc=@{M2`5b`6bSkB!JK7@^eRL z<#?_zvoMpJmmKolM2xxEeng{@ALN7oGeK)XJ`DH`7}6RePF+K2#C7+GvnfsvjTrB> z;_TD-<$I;L-hJZzA)Fi^KJ33l>T?aJ!Mo-7IQt%X=&R2d*F>B?^{7wn>c>Mq*Fl_lsC^Y%#~e7% zroam7CX-Vfc>lfBO$8^voPzICvZ2PjF+G##sXKLUn4Lv^bs zd%w?%xd?C@+f8EZN#loh^Vh<$)K!ezIW9OP$|W>v)Ogn7?*Z@E`C|UqDBfl8wgzm@ zE*?UX1x72r<(O{^ztm4Hh$Jp_%|Sk6lel^sd){(zCJCMs<9`oz&Z+0su||8Rbd5YO z#&usi)`;_BOwTLK>sX`Zfojf+cZKH_=D!b&dUQ{__xuq%&lO$!+YS(sgJ{8?C);|M zho)z92!62Vy?zXkna}X-o-6-Rfcx#wXNX6wdmDJ5XP^DK0$!jeyg$0%UHkJn_^<)3 zQQg0oOE|D2^!C&J1>#Y2p0amr`?zlcA(g@vOF8}Oe-<2yma Vzl8Fz@%$gY8~=;#?sld<@E_^}iFN=0 delta 1033 zcmZ{i&ubG=5Xa}`=WaG?6-CyH-CGVl#D<^;FF|9YheAjFp$MTKJxk-{V=_O-d+ zKos^r*IYyvcnmJqg}s=Cm_&@h#T?!XUKXHHjzk-k2P`fLZL>g-Q!t24qYY1jTllas zDTX=v3GieaJ`G+5#}~3~#+BP#EFn=xLMFrV-^3Mc*4i{$6;WX8i@pJmwc+o<^KJM? zdE>R#1oya4?z)D%CO3wkT91!D4*EM zr?#@jM~sBI+CjO(B_pJsLD|ipjNR%v|A5+=KjTbw(?UH_flmkR`GfZS!9`{K1p~va Ag8%>k diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_color_lightning_linear_omni.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_color_lightning_linear_omni.bin index 901b57e252f9784efe3f79fa7eb519323312d593..5802401e8194642920390023158e480197a3fbce 100644 GIT binary patch delta 1145 zcmZ{jO=uHQ5Xa}G$#!=Wu!pE!Y+wswRFKjSQHzHqrbWS`7Bqr|B+_6jtqp0DdQ0h1 zPz<97(~1$H2ntqPzpDoEBqDfI51NCZ=t1mVLiHfyo2ke!PfxT@*y9 z5P1+g;GgOc-9#q9O)pVzxU0MQI-nHph0E9kC-0{7(;HsrB(PD@B(s+D2uRI$e~a|Zo#EhHcWw= zxQAuaMLq)_tHI~N3-aD-dBXy7X|E*L%6%kCy2|I%TV$nW1zS&Fz)gMS!N0&`HMj?} zEr8>D*w%ntnu$0IE+;1su1s`m7KNhINERwL-Yz%dYg!0Pc^9}2**SPBBVRb-UE`4>0LbT#l~g%PN9APp|AOWMbzzq%@^Q~KafLtBZ{TKS zqbP8<(ju;MMmc6o;R0<$dJ1=!U!;4|#4k~vzbZjx8mk$dzbor_TfJZ0;86W2U(!2x zm*V4hx}P<*N!;R1YP)e8QrYNdrO`PP1Y_mbIQFdS6L&bT2E`mdS0lzIYTzBU}BLLwdw`vWj}4s(#Av^`LmhE^lPn0I+e%08-wdnC85T2hn7da0?N zq}tjr9*SQLt&Jbm8W0a6LQXvd?0+EUCX{;cXwlZ^-6p1(49w2X@7bAmW_Q1PzqQSJ zPpA&slZlQb2L^{PCI-j*Qpsx?RY0{&bTpodkEGk3RMZ6Nndorh>d;v4*iDT}TJFOB ztZvn&hvEat@!t3-ly;3mjkH6f$wu0VHlTTT_|mD<>mT&B)lWZRi&Y2NCp4<} diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_color_lightning_omni.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_color_lightning_omni.bin index 9066db861ca4c112ac4c1a7e66870a83e910d554..a2c6e916f88d160f0401222936c51d03da5552fe 100644 GIT binary patch literal 3143 zcmb7GOKe+36uoic_>-uP5Nr^Ow?L?X6tF`PK?q)n<0euZSGKW&RLL=|TN^ppa_qM3 zLM0@`0;yYCz_5srOd&w|7w8Ta-L;EKEXX1YHb^K)NNfn_yf^p7c3!IFO5?e6?wLDh z-prk(kedsn-ne!(EMx8BO8rc^R;ZRQM5GfLkysCMvRQvMBAY-X?P8KD?b2EZpHB4c~dctq^IXd)tOd(kQ61^U)la_PmH zCsIe#w@-ca_@CQ<-}>v9-)|3zAR-b({}kHRF!~V@3&1$=Y;rdBF);Gx(AYnOCL{mt z$Yqf>V$X5xW8~5vK2fW`QmU;=x7#K6ezavY8Rw5{cEIf?%y_|!PoXC^h*yAHz-=^I z!|>P8FJo+@(G-6hcn4z}ji&fz;F}oRXf(yI0JpFK+d+5nb>PcB_;uhNZaC~txPdY4 z7I7S*4WE$azl*`95B>*mE4p{xe}OOi;6Z%<4saZqV-pzDEc6?|`Q5m#e$U5%-!yrM ztDa+=hx4}4_2RR@Z6Ew4;A=j3nfZP2cJVw4BU?V*lJ1ZU%aErScgTt5%NNTv<4boK zoRL0G^|kY?Eif7=CUgK;R%VKE4aPQO%ZR7%--YuPC~#JGuia< z1v#0?&FAMci;_XUEyS3M?N>A!`CdNwcL*Bu@?pYnz>wB4;?xyGBd%YMIGf_+(1`I~ zE6y>EJ>M(E_3jfN?ZL^R5vPU_^yCUfZ*OL=`PrqJOeUL@+*~rdg-JG)y$*3NWBJrO z7G~m3qZN^=IpMxU>T?h0z}vQ5oZ~Wi7^}}1_e7jN^{7wn>IZv#?t?ht>p&CCxJRuU*xZ>{vABAq}NgZ+L`tdr5uRqw&0~Dran$Fd{9|A+3Skvf9 z-RJTGHUj*NyG;Td$=c7m&D{&xvAzMrn^zz?G9Yw-5d#hO%I-@reNuJ6G2)AcRz zgXsDmy!~|XeNbILz(0(xAHnz2bp!Z8bo~V0e!BQpsV)?_uP%Kfyf@3I&M{T`>RjI} zQ>)akd6ehWxxQJ3hcsb*H?_`{{~m(R<4;d6e>~rU{|FjufrfvJu>KmSBCWR4klHlXi=-A0 zQf+M*5A_!ft*t+5YS3Fj%tZu2kKTlM5`+E&qSf!)CMB2*%+Ai|yEAXz+xNctt#_tn zzurKbQjvI~uYc(DVEk7#te%K2|Z#s23yI{LsvaAh9k%6y1X#1LFrh3^5+DxgzZ1qzl6!b;HB3lypp z^dKqL;Zbm(QM45mkJsT}RKr5GAiM0xny!@Z8_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_depth.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_depth.bin index f6ca907f07b7ed8789b178fdac54addd6f094d95..e8c32354d42ec908598862eb12ea44158c2a2ee0 100644 GIT binary patch delta 556 zcmZvZJ4nM&6o$`DQfN|;PCigEg5aPah?54n*ascOK?)9LuxLcB2(5!d+y!a9E-o5% zaV$8R(ZRt@2gi(#MK>q^o7@tS{%~^c|D8v|&1bf2w#JuDgF>TNT`4#(xyhyNnX{`> z{`=`Y^cfKc4-1nJ0#9RvqoE0)U7?Tyh)OCxdwGltq1!~OsoT|~#iL#ZQILHQ(6 zsQfFkWdHdGxDCz`QjzNKBD?S$A=TqQ-~l`*@{!U4!Xy+A%dY50C1*NC2zJsR^!*s!O^3`c`d^9yM)@u{$xL7e;Qda-PWgQa_-4ZpSaV T7AN{N3&g!X$8N=&e#xv~*eFvw delta 419 zcmeys`GRADtQ`jng9(dEgp+e#vdX~}`!~kdB@7SUo44o_BLf3ahJk?AqL9N z0n#8bbnyzHxB^hz0f<4M0jhoikWK*d9e@}FVB)iZ;tN0m91Qg!ieU*RE+!d9#z~WxGdoN61C<&vFmQc>`rEBf0j#-iGBb-hbd}=>sMCcI7s3ACDC)$KV5|JN#Iueb&+KBkv1k7s}OwxCi@rHqV+~hCetZ#@QbIo$@`g>0Oe$vq>iw2*y zE>0t;_%a&b4Ox5(TyMg6!A)@diJA_OxeBP~;Qzl|#;CB-p~Px-E)id+%wl>il|%uU zs;{!(VkxFXT1hR%m#GxB-7|J(bVxhCBiu7Uq*TOzi|wiWYC1G7q#kA(&r*;b8y U6^%)`7talOh80V9a)B}B2NODCU;qFB delta 490 zcmey*|DA7wJ|o9O1Bp0JMg|FXmk1~4)8>;GU*}WvbujjouzDA`j*)=@D8swy1;_`f^8jKHEd#_1EdTy9Ok`j%2Flq?UdS#!aj!%@ zH&8qQh!1cA2`I<_=>P%&2*pqW<+lK7kQfL9&47zf0E#OB`3^t~0yCiMR{-e*Am0Iq zK>#Mc87RI0B*4K?526_MKsB5JNpN6lxB(P@02K#W3^V8jP+S4%a0iefKmZf}2^3Gj zBF+lbyZ|W90#VK&z$6Y~DF7ul043l)o9xBpDO8r3S{_i8pT$rbpPQeOn!~Vq^I4_~ zjEr+8&tvJ9><4N!VqoC<1Pv#*J_WF0eUqJ7)fp#D&SKSPoH%(Ft2N{7$=6u5fg}@K OFyrjaVQecH894zkC`SDN diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_packdepth.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_packdepth.bin index 833434090ca0103b3daf52e7432576d2fc1f178a..474b222a3e29e2a6ff312f6a861b20bb5fc5c8a0 100644 GIT binary patch delta 556 zcmX@Wd4g+#tQ{u{g9xijgp>0HpSVpDrL#Hf9E?O?Mp+$WWMBZwFfafSg9#8bFav2I z?g8Q%EDQ`mF0O7zCPquMPGDkSu$i35B0h1FL_Hr+VFD0u-~tj*umNNg5C}jhhCNXJ z86XW3Ll?gR6juO>I{+~VJbSW_`wmlbKoeFmeF^5b;s^ delta 419 zcmX@Xb%1k%tQ`jnLl28fgp>2+uT6$uZ)iuqy&_!l>Pu4qBLf3ahJk?#xnP+S4%a0iefKmfDgAy7O4i}+iR`9N`CXn?^F#>pH^9ztcAspSDh z`B@C5@wxdasW}X*H+L~PFfvY>e45!`vLC3_h=GCY6V%^seF|XBeUpt@)EOsCj%Lwk MoH)6gWe+1K00N~w7ytkO diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_packdepth_linear.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_packdepth_linear.bin index 8319066dd07ce004d14356974c38363438af3d23..fb278dfd75825c9009734386af57fe65b2045c74 100644 GIT binary patch delta 560 zcmX@Xd4X$!tQ{u{gAA)ngp+go1zmI7^?`Lur;BpT^jma}k%0jy!@vMU3?@L#zzn2; zxCMw8urM$LxwyI=nHVk2I)RCS!DezIi}>U|7LJLt1nT*KiW7i%0~e5hf(;I3OByfP4_J0f}=Wo09+*XYc?@ zJb+4o)II=d27(A6M*$cz4qzTaJQFCMfJM9%D82wF4h(WIXkePWg3-e&Gp{TxGqs$d zG`^rHKMP0!1p*+fGN3q=2~`E<<>sfP<}hq#VzOXlTr}C5*l3?ml+*RE8r delta 419 zcmcb>b%Jw(tQ`jn!xR>m2q)*DX{-Kd-hLPnwW5eg@44b!Mg|6;3_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_texture_lightning.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_texture_lightning.bin index bf7fc2ac5c79d035659b85e277c10379c6ef19e3..cd21968df078bc1b7d79be73763a69ae4709e5d5 100644 GIT binary patch delta 620 zcmZvZze@sP9LB$|-ic>q4U$O&4uMNyL{m6iY2p}BAvAb_4n}51+Gt~K%G;!6S42ZD z_G9VC5(E+S2h?_3LyL1$&wFYRu z;j=D(^?bPO#RLu2^5A2uCANYFtwxWwe?u4SKYs@gf~zPY!=B$p*Wgu@P=|km>+mX3 z8Ld0Oa5Dp5MG18l^nnMlNHuAf4}ohv_!zhjPHt<#IJ{6qaK+k3AcJWF6D8n`KLZv| zf(P+3s%3vKlm*v%@FKVljwd&@=iv7&F_Yaai3F*b+CqqE03uHOmF#3K*vT2r%$;t0 zj$6jg_^Y$bPIy7`vj$(2LQLleQkb3cJ83mg$5B&6o@+ap_G40a98YG4;UI7$W0E#;RF$gq3)lUG@2|&IB z5Q6|rd^S*g0Z4#@p&mprEP-m+0+Qf>XaG7CuHgVs`~ep63qWxNpu-(Nh5!M~f`>ry z1T5ljLFNO+Ss=<8elSj!V)76wgN85zG{hNJZ=S=ng^_X6_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_shadowmaps_vblur.bin b/examples/runtime/shaders/dx11/vs_shadowmaps_vblur.bin index 46c8ddef4f8a4d9c7bec6ac22e6f9e2ae22f0f32..b4c800f33f3323126db6a49624a986776e5ac03a 100644 GIT binary patch delta 634 zcmZvZu}cC`9LImJ?oe;Yawv_4gMxw}Bb>_NDwU>)ifD*BLI&tXythIk`bXpB%=o4fmWg&I3N-AfzO7*k@prNJ~svP+5?mHU85Y) z4SGSN!_k$y^=94RI((<#A@sm^KAYaFp+`57$|2mc_F*_#Jv*r z+(7XJAU?neB%mMzqyq>9AQVFhl-~lRL1G{bGy^U^0Vu8j`wPyU?;TTmndMR)-sDrt8?k4 z!gMaP;-@BPrO=ssMI#U@LoyPq5L_AqOx=;2r3QwPd{I2!Dh%iDVBab4q4x$<& zE)g{pq8Vc{@m47g$Tc4zzfppfdVeW^N)u62@p07%*1;>@!+JhImKt6N1KpwaFI~$9o z*Yl#?WTmp`I1+&9J^u3UGjO2yDB$czLboyBD`Qu@PugH7{8|dKV}2q)?@)vpJr!wbuI8pX0!-}Y!QljjL7nNP6 FeghIqbqoLi delta 527 zcmbQiKY?$8WD*Ap1Al3JZhlH?PFQAYc|cKq7AM04peTE3d|FOsK^P0e5>7^jJ!~!! zPR?_i#B{C+J`?z69gv&$A@2ht0|QWofq@lBn*i|)CI$u#W(I~WKsj*|yC=T~ig!(BXH#eFnXJ#I r&p2yxJe#p(H_%)o1_rJoX!yA`DS$2Sn!FmU@-k3m?__57DU6%||9Vw< diff --git a/examples/runtime/shaders/dx11/vs_shadowvolume_color_texture.bin b/examples/runtime/shaders/dx11/vs_shadowvolume_color_texture.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_shadowvolume_svback.bin b/examples/runtime/shaders/dx11/vs_shadowvolume_svback.bin index 82c8304b188631f5fe03f656901184c5b874c851..de7e01d3517810de093d42b7cc7b422c95f9cbe5 100644 GIT binary patch delta 596 zcmcb|^^ALhEFY=s zgT&CqKLEuQfZ`573<5u(>N%JoW;=jI5#mBX@dZFJpm;r43Z_94DDeOyfg-L96juNm z>Hro+7^DXjPrxE>0~B8Xas&rNgA0%k0wExAPGoZ+_A?{^B_2Q}Kx$zQDgbg6fFa`m z(hUSK@kXF{0v7RJp!foyI15BM!weuF1Xcj)4M1^F$bp1lAzC{5Eu*7VW?orXW@p#;ir z0n#8bbnyv5aRs2b0}zA245<1QKso`)cK~7#fQfGgiZ1{Oa4^(^D26>y4QD_S9GDtz z0L33b#eqJ78}tGwt^jnn1IQ2{fLZVpD4u{toE4~f0Z<$m3Sc0>Bo1LH03|j6B|ts{ zSx_?BmB~}6EHkw{peR3!p)@`>KP5GXVfE${Og4;+b0)L0xHHb4?8}l3BzLl?Gxkq@ a$Rf_zH~A-!Jz=sUt3Knz$$_j>7&!q$mOuOe diff --git a/examples/runtime/shaders/dx11/vs_shadowvolume_svfront.bin b/examples/runtime/shaders/dx11/vs_shadowvolume_svfront.bin index f6ca907f07b7ed8789b178fdac54addd6f094d95..e8c32354d42ec908598862eb12ea44158c2a2ee0 100644 GIT binary patch delta 556 zcmZvZJ4nM&6o$`DQfN|;PCigEg5aPah?54n*ascOK?)9LuxLcB2(5!d+y!a9E-o5% zaV$8R(ZRt@2gi(#MK>q^o7@tS{%~^c|D8v|&1bf2w#JuDgF>TNT`4#(xyhyNnX{`> z{`=`Y^cfKc4-1nJ0#9RvqoE0)U7?Tyh)OCxdwGltq1!~OsoT|~#iL#ZQILHQ(6 zsQfFkWdHdGxDCz`QjzNKBD?S$A=TqQ-~l`*@{!U4!Xy+A%dY50C1*NC2zJsR^!*s!O^3`c`d^9yM)@u{$xL7e;Qda-PWgQa_-4ZpSaV T7AN{N3&g!X$8N=&e#xv~*eFvw delta 419 zcmeys`GRADtQ`jng9(dEgp+e#vdX~}`!~kdB@7SUo44o_BLf3ahJk?AqL9N z0n#8bbnyzHxB^hz0f<4M0jhoikWK*d9e@}FVB)iZ;tN0m91Qg!ieU*RE+!d9#z~WxGdoN61C<&vFmQc>`rEBf0j#-iGBb-hEoRs%g8xVPSuW!k->z`CBn%$?b@ftlG1+BGL!BN*B|)qXJlXi$}ljnf@mPN zU}j+G0pdGAyaOm02e2qYTnH$>04N3&uLn!PG)Mv^9zY~e#Fc^K3P3|0 zz@i9)^nl_CSj26B;tN2I;DBgw0rEj01SHOhY!1YJh6JF*1E>T@EzCg$K#l@1WE?=c zfdD4n2oz7iBHjxWUjP(mfhcE~0px?g3Lw1!C=LoakPs|HODDf&bhOIMD+|j^EoUf= zFDS~-0#ZPM00^rLC=O*pRY7^V`6;P644WO8Di|5pOy0>H&$xQBBuh4sY-LGjoIm+3 bi#X%F$*ipEj0+~~vg$J~oE*!#f{_aV3(;J1 delta 452 zcmeC= zX^y+D9!>=&LF@f4q+((B{l#hKt2Om zP%_z-$y2B-GqpURC_js#G(I;!B{hd(_2v^y6^x8?COfjkGtQp8kR=;P^0KB&_5<}8 pF)(m_0-6A{o58J50Z1}1^iA$%RcD+qc`K_vKR diff --git a/examples/runtime/shaders/dx11/vs_shadowvolume_texture.bin b/examples/runtime/shaders/dx11/vs_shadowvolume_texture.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_shadowvolume_texture_lightning.bin b/examples/runtime/shaders/dx11/vs_shadowvolume_texture_lightning.bin index 9ac4b7cca22e0e9f628321af89ad6f6379eed791..28ccef37931859b7d0c074b727acb6aaac967b79 100644 GIT binary patch delta 707 zcmZvaJ4gdT5Qb;8AA|hJl5EG0<6O@aEg=i&+5?KrJ z8Bs(`6SNU*ENz8U+N20rq!B@|^xu0J6bI(!{%>Yymz}+Dd-UhES)W9HE54YSOQfe# ziPiDt%z}?9piNdhnNDS=B)U`?rJJJDk>O(UW~Mf;w&gwtukw-B7e<5(k&M_6*BgoU z;R6!UyFxS(9f?)<*1F|V15ubiE1i3{UF&{Sn(&f}k84k&6|CI}RCaY0QLw-K9b5-D z;KIJ#`etloLK|>l9`67zKpRBs2=#=9L#*tE`j!Oeeo7`z}3(d;aU zLJOM|+~@QW=!-e~lL=M%m9Xn63$Ej43`hPPXan5*hwp$Fz;Wfa9Y71aM!a;nKpwaF z8ygCxmU3d;WW}?XI0Ar}J^pg;GjO2yD4^^|LU*BtGGj&Vm$tPt^z9>3Kiv7mc6AV< zQ+_7}Sb@JvL3Ykt7^jCu}Ye zPR@&_Tu(P+lBoD6p8stcqX{b`0|QWofq@lBn*i|)CI$u`W(I~0K%4;-4{~vJiwnW@Zyi+f%P0xrk31vtts^23J-_6`a)f~_1e@>(YPP^cw9PUM92`Sh)r<4 zj3^2Jg!h0Cgu5dzndKVw#zEA^8(hB3ZPkhgl_va6!$aDGXa)0Hfu5v(K@{vSe*@RS z4Y;tPtS`q#CbR(;X7dX0JhVZyg7A~@BT;}h;KJ+$b>KRh8YTL}>%q-`cpG?Ld_=jm zAPg;RP;j@^N1!6J_9qjn@GDWOrzE(JlQAs${XwhX=0AKBJP)qO`Yg1t6U1v-FOdCX zY5vMOTN5)2V&asJB{6ga05N{NEy$Z-LHk}nmF@}Mv^%nlUGe9#dH)gmHWF#?az2qQ z9fatRk17F{=Nn3p9rHV7gzfVV)yMXDy&7OS9#zl$=cu#SigUBqp7CmDfL-vAGuUzo q-i#xill`NWUMkhD>Btc6!$l7}ACY{IpQ1;OKRSc#fID0}O#1>>dVS;o delta 584 zcmbO)Fr9ybWGV*>1Al3JZhlH?PFQAYc|cKq7AM04peR>qd`@P1Mu~4p1t-G>P8J3S zc9#ezXMs;gWF)+%T?o4Kv3zF2(?CWB2A~WB11pd=0pb}<3=A)TxP+O3;RqW8Ly(KB zTg=2dX;y8Zpv~li?BWx*O4M@$RVD!O2TmXX1sNctfIt93F_b|0EkGJ1hAutu-sh_eC>T>unkfhcDXU=oM06o3*Npc=pyPj+JR6e@#80|PW# z7*=mS$~1$KasK2umSV|%pjIOW2Ch%g@Nnx>02|gf`4x*gm& z$12X)HF+DWI%Ch|d#tM^=OF0?x|IQ@clP8(Z0d}2C!b=|XPh_r7n{6fH&kU2%$6nv apa=s)*JLAhkZDou`i#AkyV$2NasmLpD`P?c diff --git a/examples/runtime/shaders/dx11/vs_sms_shadow.bin b/examples/runtime/shaders/dx11/vs_sms_shadow.bin index f6ca907f07b7ed8789b178fdac54addd6f094d95..e8c32354d42ec908598862eb12ea44158c2a2ee0 100644 GIT binary patch delta 556 zcmZvZJ4nM&6o$`DQfN|;PCigEg5aPah?54n*ascOK?)9LuxLcB2(5!d+y!a9E-o5% zaV$8R(ZRt@2gi(#MK>q^o7@tS{%~^c|D8v|&1bf2w#JuDgF>TNT`4#(xyhyNnX{`> z{`=`Y^cfKc4-1nJ0#9RvqoE0)U7?Tyh)OCxdwGltq1!~OsoT|~#iL#ZQILHQ(6 zsQfFkWdHdGxDCz`QjzNKBD?S$A=TqQ-~l`*@{!U4!Xy+A%dY50C1*NC2zJsR^!*s!O^3`c`d^9yM)@u{$xL7e;Qda-PWgQa_-4ZpSaV T7AN{N3&g!X$8N=&e#xv~*eFvw delta 419 zcmeys`GRADtQ`jng9(dEgp+e#vdX~}`!~kdB@7SUo44o_BLf3ahJk?AqL9N z0n#8bbnyzHxB^hz0f<4M0jhoikWK*d9e@}FVB)iZ;tN0m91Qg!ieU*RE+!d9#z~WxGdoN61C<&vFmQc>`rEBf0j#-iGBb-hI{+~VJbSW_`wmlbKoeFmeF^As|u% delta 419 zcmX@Xb%1k%tQ`jnLl28fgp;$(xvcUT5_0Fdofke#o>8@ek%0jy!@$4_q)mXhf{B4) z4G^<1GcX7M#e-a2-E1aCOS5tS1#KojWD%b@Nur($s4@YFH*f+8CRiXjHd z&jHdPF?8_?ptu51+yRI|paH6W0+3Ds@*RK}1YqK`f#M550vrtWAc|oLRKpgK1P7*u z13>WyP;sE+;Ram*iYove?f^0b2w)aG1d1nM5q}FZA1DqC4KVn@IGKaVL#Qk>wLG9G zKZ~I>J~uxlHHTsK<}M}&M#f2#Pc!>V_5+m~F)(m_g8JL7PXVmCZ?Z9qI^%@N(JcCm M6DN1G>|x{t09{%;W&i*H diff --git a/examples/runtime/shaders/dx11/vs_stencil_color.bin b/examples/runtime/shaders/dx11/vs_stencil_color.bin index f6ca907f07b7ed8789b178fdac54addd6f094d95..e8c32354d42ec908598862eb12ea44158c2a2ee0 100644 GIT binary patch delta 556 zcmZvZJ4nM&6o$`DQfN|;PCigEg5aPah?54n*ascOK?)9LuxLcB2(5!d+y!a9E-o5% zaV$8R(ZRt@2gi(#MK>q^o7@tS{%~^c|D8v|&1bf2w#JuDgF>TNT`4#(xyhyNnX{`> z{`=`Y^cfKc4-1nJ0#9RvqoE0)U7?Tyh)OCxdwGltq1!~OsoT|~#iL#ZQILHQ(6 zsQfFkWdHdGxDCz`QjzNKBD?S$A=TqQ-~l`*@{!U4!Xy+A%dY50C1*NC2zJsR^!*s!O^3`c`d^9yM)@u{$xL7e;Qda-PWgQa_-4ZpSaV T7AN{N3&g!X$8N=&e#xv~*eFvw delta 419 zcmeys`GRADtQ`jng9(dEgp+e#vdX~}`!~kdB@7SUo44o_BLf3ahJk?AqL9N z0n#8bbnyzHxB^hz0f<4M0jhoikWK*d9e@}FVB)iZ;tN0m91Qg!ieU*RE+!d9#z~WxGdoN61C<&vFmQc>`rEBf0j#-iGBb-h%4a6d8G$uM6s_7^qv@!Gsjhv{8XiZWhTbq}qEsj`h zEt?n&Z2ka|NG>KLBSL)N-c>{TB;R}P`+1-DeJ}TYY=7>^`{z6gb!8H%^ipzl-bilE zY@}B_WPz4j!m-Jz_3>cz{QdLhDgIqG!l4C5gcTx=J_?bWXcKyYRPfpGbmX>>>gRbE zQAoUTU*W7T*NH(Ls(A5msv?g@y$R2No8XEwzvB{DEIMYaWo3etNvtD8GyoYV-m*@zHmv6iSIeC) zdt7D4PDRzd%#Ou`;$uf*L>XeHh${hhBKDL;e+icbiM$t1Fp*ugc70KNVX`a+d4QF~ THutfjNO4IHKn}$n-)G(*jv{Ky delta 465 zcmaFFdy8j+WC#Zf1Al3JZhlH?PFQAYc|cKq7AM04pr{C&ON5iNV!*Tp>q+r7tj!yW z)$ZL@V`N|e$}ljn0%;Q4}szdSj69g z%m<3IK$J85V4N()SjXXY850mQ^1pau+P}6)Ymlrq9?r*_Uk!BPRg*7EWgX diff --git a/examples/runtime/shaders/dx11/vs_stencil_color_texture.bin b/examples/runtime/shaders/dx11/vs_stencil_color_texture.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_stencil_texture.bin b/examples/runtime/shaders/dx11/vs_stencil_texture.bin index 0e3546703e199562e41adf384b6fdd8b7edc7614..8f674d4a3b5132bd6f20911acbadac59a7ab1aac 100644 GIT binary patch delta 542 zcmZvYy-UMT6vgjLQfwkfCp(CcL39apagrhrt_M@^DyZ|8}L0G8bs@*mDPTyI+bZ_L`89I%1cqHWwD3|2 z<#kXlDfFoF3#w%Q`2gGo=de_y=08zgWDZLW`8Rlg%!z!Iw88Lo5i*CRh7051HkNoy zQ$7jqj^H!k0XSuo1qWHGD7pFf9yjJxMk7)UIUC7ksDfbQ&+s^<+yi$<@CJAQj$a<@ zToXN3Uhoc^n_lgd8e2yv^<5NzwdB+US4TCa(m{Qvwoeb5<}!9Gw)HBz7EgMfb;X-L Q#{%)A7uby`7(HhF0<=9=NB{r; delta 401 zcmaFBb%S$)tQ`jn!x9#k2q)*M-(To{VEA>lGsWY2mC?FhMg|6;3pV(8)(Kyd}2xC0P_Km%0$1R$LN>d2@XsR z2Y})apyEKs!wtFs6juN`+yP_=5Wp;W2oz7iBK{U+K2RJO8es5)aWV&!hfrB&YI#6W zeilP%d~SY9Y7WEd&0S0hjEs{ezh;hR?4O*^BF@-1Ii5wGal+(w7JbHvlee?1VB`b< D&FVZ( diff --git a/examples/runtime/shaders/dx11/vs_stencil_texture_lightning.bin b/examples/runtime/shaders/dx11/vs_stencil_texture_lightning.bin index 11b4258ebe62ea4781e3d6eaab0f78abacc364d0..c34fe68519905042eb9b1ead8627353058a33b18 100644 GIT binary patch delta 620 zcmZvZze@sP9LB$|-brU=4UtL94S`D`L{mAOY2sG&3!%XabTBe2(ncF=2$Z);%PgYV zek_$s)KC!7SldPaKyy>idv_*94}9-?&*%Ng`&2tmJw@NFB2iZ^k;x`g%k$~f=G1z2 zNg)H&a7E(d;pbf*?)aD-d%t;^xqE1Y7!gK@Wb_dfIf*t5`%AT(R~M$Y8p_L@_wy*MP<2 z;3{55v+U1>(%||(JO^F_$CI1da`0;w8%?j|MS_$|tRh4-01+qt@^-QoY~~DS=1vzq zj!VXl`J=PI4*8noWmUc?`B{zcNC9@lucQTE1xF1NxzFujqT8x@c$p8$ezwo&sT>#9V1s4xpgTNXMreZ_`x_?ipfK$3>v}=&=6->y?GAP7DmQNlLJ}m8T%(+WD#fVoBWbR zopHisK~{aniIW{!qZzv=&t(;7?3%olRh_YC@?BPEpok(HNW_v2B$CLc&)7S8BHI*3 FP5_rgQ)vJI diff --git a/examples/runtime/shaders/dx11/vs_tree.bin b/examples/runtime/shaders/dx11/vs_tree.bin index f799e749f3358b632e315afa4fa618ebb1e85c30..f08f896f4ca0151fc4be0a5d552e2df846a21ad8 100644 GIT binary patch delta 651 zcmZvaKS)AR6vofZ=Sv+jT1;v%8eAeNoWkLiX5=Ix(dHv^P%V^Gl0;1WbQGzCG>Vnfh(eb1!ugY(Y&e&_zW{Iq+a6GXRSzU}q zHiGMkn3)=&!Cv3ejMx40{BZO6{&sDiTi%WZ0*nY1A|tXJF>D~pA>0yCT_#%a&H5Yp z_>l3uhseWgvMpa7%vdo}MO;|$(RC-5g8H>Yb=|)r3-+IXfIGkygiuo-Z^A|@yn+yF z^8xTOyh4;g>J;oKG~gA4PX zh;HLAtv6nS?PmbjdKPpw*7L~NDgQQP*$J;nHg?P_l9QGBz2ssQ{v~DYMeILGWVzJ) m=HGFMBT<2uj81mMZ;f77l(~h&ONo2`I<_83zOc5Q?D$%5MSEATf0D2|#fLptu7NgTM@^`V~Mr0myd% zVi16dZw87l010p~)PpF7Jx~p2KoT4f4M2y&HQWG-KfogX0w}Hkbhrb^5FmhA01A%; zEaI#{Ll*$WSs=<81enAjECry%5@ddjl2E-*4qn%v6L&DcL# zkX4+qZ?YzQfQ(`Cp(CcL2xN_=_ExCtIJ#YbQMP~jBRU!*mYs|mF17tzeLYXuezAi!*u-15C2HeAvi0OpS zgUcy=2|NI&bh3~`)+%c5{JlrUoXTiKrlDsey$n?lJp36ErwRALfyKM6Jfa{dRl diff --git a/examples/runtime/shaders/dx9/fs_raymarching.bin b/examples/runtime/shaders/dx9/fs_raymarching.bin index 270f50a264ab986163582da95d41fbbddde254ee..ecd92137ece019d2d7b387ec7a45ee8d58b455db 100644 GIT binary patch delta 14 WcmX^1iRsuUrU{~qq8r5wb^-u0?FHZf delta 14 WcmX^1iRsuUrU{~qVjIN_b^-u0@&(}l diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_esm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_esm.bin index 3d65876dfbdb1db733c997f13b825688c1dc9a72..581a58eaac0bffe02e5ac9b55342013c01a54d7f 100644 GIT binary patch delta 31 ncmbO)I$w0c84*!NW(GzEp3?Z-#FEsa%)}h;6w!?j_HzONlEw-@ delta 31 ncmbO)I$w0c84)o?W(GzEp3?Z-#FEsa%)}h;6tRsD_HzONlH&?N diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_esm_csm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_esm_csm.bin index d519b8cfae6913113f00af2d0b368195eed34f2c..3f4444771f9dd76b167a1b92ea77dd658f80c1cb 100644 GIT binary patch delta 31 mcmcbubX#e{84*!NW(GzEp3?Z-#FEsa%)}h;6w!?jss#X}M+%ex delta 31 mcmcbubX#e{84)o?W(GzEp3?Z-#FEsa%)}h;6tRsDss#X}WD1r5 diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_esm_linear.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_esm_linear.bin index 29bf26dc5370a9277aa6068bd528d1e973069b19..54f8144df39bb541a80cb21e5147798a05230325 100644 GIT binary patch delta 31 ncmbO&I$LzY84*!NW(GzEp3?Z-#FEsa%)}h;6w!?jc5?y%kyiU84*!NW(GzEp3?Z-#FEsa%)}h;6w!?jCUXJ+rQ`~^ delta 31 ncmew?@>yiU84)o?W(GzEp3?Z-#FEsa%)}h;6tRsDCUXJ+rU44O diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_hard_linear_csm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_hard_linear_csm.bin index 93d89dd3de39461340d4540bd86b59e33237ed23..a1afa780bc3e4265db7299358bb6775634967e4a 100644 GIT binary patch delta 31 mcmZoxYF3(XMnsg6nSqgkr!+n{u_U!9Gcm_IMRel>WdQ(<_X&&u delta 31 mcmZoxYF3(XMnsH}nSqgkr!+n{u_U!9Gcm_IMQq~(WdQ(=6bX(1 diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_hard_linear_omni.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_hard_linear_omni.bin index 5675488d3b43dabb43f237d78924c8f78b318c4c..5a2574f5046a086efcac5e7d3965bf08fc148ca2 100644 GIT binary patch delta 91 zcmbO$J6CqX84*!NW(GzEp3?Z-#FEsa%)}h;6w!$fybMJd`GDd=rST=HB}IvT`9-;j hIqpTNsd=J|JU|Hn6p5hJ6w%4ijFOC^n@brrcmdOM8lM0F delta 91 zcmbO$J6CqX84)o?W(GzEp3?Z-#FEsa%)}h;6tRg9ybQ${`GDd=rST=HB}IvT`9-;j hIqpTNsd-|IJU|Hn6p5hJ6tT(CjFOCEn@brrcmdRT8l?aL diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_hard_omni.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_hard_omni.bin index 055b5e5ed5d46d086d8d4e7b4821ca61301d06d2..3b68ad7a2ec7e2abf2f39c3a8f9b8ebbbaaf6992 100644 GIT binary patch delta 91 zcmeB`?UkKyMnsg6nSqgkr!+n{u_U!9Gcm_IMRei=FGEpAKA^ZzX?#g)Nl~I-eo<~> hj(bsRYMv+~4^Tn?MItCQMRamBqa>r~=2AupUI54w8gBpq delta 91 zcmeB`?UkKyMnsH}nSqgkr!+n{u_U!9Gcm_IMQq{&FGDd#KA^ZzX?#g)Nl~I-eo<~> hj(bsRYMvM)4^Tn?MItCQMQn03qa>r)=2AupUI57%8g&2w diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf.bin index 1cdf7fd8337cce290d7bc7cb1b3b8effd9438752..e6e27f28aea3937dd479bea7142c51512545468e 100644 GIT binary patch delta 31 ncmZ2ry})|H84*!NW(GzEp3?Z-#FEsa%)}h;6w!?j4#)rio3jd` delta 31 ncmZ2ry})|H84)o?W(GzEp3?Z-#FEsa%)}h;6tRsD4#)rio6riQ diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_csm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_csm.bin index 99d5df664d041b10f3420e205c6ff30c1dafb50f..5507cf1c1f302a09d8d24232a76e7933b622cb2c 100644 GIT binary patch delta 33 pcmeyckMYAk#tCOcL>ZYG7#Vm<<8u>BQj0PZbG%bTH$IpU2LRDZ3|jyI delta 33 pcmeyckMYAk#tCOc#2A?w7#Vm<<8u>BQj0PZbG%c;Ha?gT2LRD$3|#;K diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_linear.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_linear.bin index e45fb32a9f7baa98126b34bea94f83fe471831d0..b6d7281e105e5f531d711af88b1ef8726c90388d 100644 GIT binary patch delta 31 mcmca(amQl984*!NW(GzEp3?Z-#FEsa%)}h;6w!?jYNP?Ej0(;G delta 31 mcmca(amQl984)o?W(GzEp3?Z-#FEsa%)}h;6tRsDYNP?EsS3~l diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_linear_csm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_linear_csm.bin index e38b3c91088a53905d7341bcbb5c8d77517d8a1d..7a0d785e795aa00fcce37a32bb38cb7604118fe6 100644 GIT binary patch delta 33 pcmaE}mhsJ6#tCOcL>ZYG7#Vm<<8u>BQj0PZbG%bTH$LDA0|3i03#9-6 delta 33 pcmaE}mhsJ6#tCOc#2A?w7#Vm<<8u>BQj0PZbG%c;Ha_490|3iT3#R}8 diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_linear_omni.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_linear_omni.bin index e81b84784212f13984aaaf990d6eea4439964c31..fb800de7f537131761dcabbf2000711611aa9357 100644 GIT binary patch delta 111 zcmbPcH_dLs84*!NW(GzEp3?Z-#FEsa%)}h;6w!$flD$P4`GMj>rST=HB}IvT`9-;j pIqpTNsd=J|yg&&76p5hJ6j4S2ps+BCaAayuPJX%Q=03&_SpZcnB8C6} delta 111 zcmbPcH_dLs84)o?W(GzEp3?Z-#FEsa%)}h;6tRg9lD)+k`GMj>rST=HB}IvT`9-;j pIqpTNsd-|Iyg&&76p5hJ6fs5tps+BCaAayuPJX%A=03&_SpZg-B8&h4 diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_omni.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_pcf_omni.bin index a021ac0d200670ded183986b568a2964fa96c90f..4a32729180a22d10370cffd6edad3e5e1f1a75ac 100644 GIT binary patch delta 111 zcmccSe9d{n84*!NW(GzEp3?Z-#FEsa%)}h;6w!$flD$P4`GMj>rST=HB}IvT`9-;j pIqpTNsd=J|yg&&76p5hJ6j4S2ps+BCaAayuPJX%Q<~~Lb1ptroBGUi> delta 111 zcmccSe9d{n84)o?W(GzEp3?Z-#FEsa%)}h;6tRg9lD)+k`GMj>rST=HB}IvT`9-;j pIqpTNsd-|Iyg&&76p5hJ6fs5tps+BCaAayuPJX%A<~~Lb1ptv;BG~`{ diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm.bin index ffa0c47f7f4d94a531d6b81fbe6898ef442825a1..7120c2b8c58f9356245fa27894470175258102b5 100644 GIT binary patch delta 31 mcmaDa`d)Ox84*!NW(GzEp3?Z-#FEsa%)}h;6w!?j__+Y2CkikC delta 31 mcmaDa`d)Ox84)o?W(GzEp3?Z-#FEsa%)}h;6tRsD__+Y2L<%wh diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_csm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_csm.bin index ca8cd239f157e84970ba499aa6418f981761bef9..3c87500e1c8ecc4a84e733ce98a3da4a9cd46cab 100644 GIT binary patch delta 31 ncmcbudRukE84*!NW(GzEp3?Z-#FEsa%)}h;6w!?jehUHsr1lFN delta 31 ncmcbudRukE84)o?W(GzEp3?Z-#FEsa%)}h;6tRsDehUHsr4tJs diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_linear.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_linear.bin index f5d4633bb78059ca1a21d2b10bc204178f39480f..782a8717c5d8679dc35a1667f86cfe7df8e6f71c 100644 GIT binary patch delta 31 ncmcaFdS7(H84*!NW(GzEp3?Z-#FEsa%)}h;6w!?j{&NBVqDBh; delta 31 ncmcaFdS7(H84)o?W(GzEp3?Z-#FEsa%)}h;6tRsD{&NBVqGJmI diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_linear_csm.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_linear_csm.bin index b7afbb4f29c45b95885c090c1099c868574cc9cf..2bc5672944dd91e66a901fe8ffcca5364d124639 100644 GIT binary patch delta 31 ncmbQOI$L$Z84*!NW(GzEp3?Z-#FEsa%)}h;6w!?jb_)Ukm39hS delta 31 ncmbQOI$L$Z84)o?W(GzEp3?Z-#FEsa%)}h;6tRsDb_)Ukm6Hlx diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_linear_omni.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_linear_omni.bin index 1537cef071a1c25bc46a741539b32dc5c6b1668f..01ba9cbe0e89fcf721b2d8c5074f6666c06a88b6 100644 GIT binary patch delta 91 zcmbO$H&<@L84*!NW(GzEp3?Z-#FEsa%)}h;6w!$fybMJd`GDd=rST=HB}IvT`9-;j iIqpTNsd=J|JU|Hn6p5hJ6w%4ijFOC^n@bs2@B#qUB^x0C delta 91 zcmbO$H&<@L84)o?W(GzEp3?Z-#FEsa%)}h;6tRg9ybQ${`GDd=rST=HB}IvT`9-;j iIqpTNsd-|IJU|Hn6p5hJ6tT(CjFOCEn@bs2@B#qVD;p;O diff --git a/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_omni.bin b/examples/runtime/shaders/dx9/fs_shadowmaps_color_lightning_vsm_omni.bin index 7ef2dde11af1a35c3491e49099978dce88f8c3c9..9a8fe10021077a45a075df6e0208f46dc6bcc293 100644 GIT binary patch delta 91 zcmZ20w^nY#84*!NW(GzEp3?Z-#FEsa%)}h;6w!$fybMJd`GDd=rST=HB}IvT`9-;j iIqpTNsd=J|JU|Hn6p5hJ6w%4ijFOC^n@bsY@B#qfg&R=- delta 91 zcmZ20w^nY#84)o?W(GzEp3?Z-#FEsa%)}h;6tRg9ybQ${`GDd=rST=HB}IvT`9-;j iIqpTNsd-|IJU|Hn6p5hJ6tT(CjFOCEn@bsY@B#qgiyKz} diff --git a/examples/runtime/shaders/dx9/fs_shadowvolume_color_lightning.bin b/examples/runtime/shaders/dx9/fs_shadowvolume_color_lightning.bin index 3c855efdd9978250bc7e710326a9d9351f6bea38..aeaebd2d28de66c88ff4972e163e1af0cb182f82 100644 GIT binary patch delta 42 wcmeC@@8_Q&A}`9w&cMjPUK*dApOarC%E$@iahArXWTvH+7N?4CG>%~h0LpU;R{#J2 delta 42 wcmeC@@8_Q&A}_|s&cMjPUK*dApOarC%E$@iahArXWTvH+7N?4BG>%~h0Lq&RSpWb4 diff --git a/examples/runtime/shaders/dx9/fs_shadowvolume_texture_lightning.bin b/examples/runtime/shaders/dx9/fs_shadowvolume_texture_lightning.bin index 93a3b7dd6902db0801e29213b27eaf9aad158452..fe71e5d3e89657145add0315201742c1d780e2dc 100644 GIT binary patch delta 28 jcmdleuu))wh@dDVI|CyFXK8#&W?EWlajNJ>RUQriWkUxT delta 28 jcmdleuu))wh@coFI|CyFXK8#&W?EWlajMuxRUQriWnBjv diff --git a/examples/runtime/shaders/dx9/fs_stencil_color_lightning.bin b/examples/runtime/shaders/dx9/fs_stencil_color_lightning.bin index 13aed79bdc8c08b0e1a2ff3ea4c99f2588fd6d03..6547aa8fa5989036ee3562c565ec1f1265495dce 100644 GIT binary patch delta 42 wcmX@Xe}aF4h`cBxKLaBJdue=feolUoD5D^d$5|Sml9`rPTAV7n(ReC50N%$75&!@I delta 42 wcmX@Xe}aF4h`bmhKLaBJdue=feolUoD5D^d$5|Sml9`rPTAV7j(ReC50N(El6aWAK diff --git a/examples/runtime/shaders/dx9/fs_stencil_texture_lightning.bin b/examples/runtime/shaders/dx9/fs_stencil_texture_lightning.bin index 3b46960fd896a6ce97cf5acf0dec8cab5a6c5d41..5aaed699165ec2938bc8bf023b42fbd7198aa5a0 100644 GIT binary patch delta 42 wcmew%@IzpNh`cBxKLaBJdue=feolUoD5D^d$5|Sml9`rPTAV7n(b$y(0PWZdB>(^b delta 42 wcmew%@IzpNh`bmhKLaBJdue=feolUoD5D^d$5|Sml9`rPTAV7j(b$y(0PX+_CjbBd diff --git a/examples/runtime/shaders/dx9/fs_tree.bin b/examples/runtime/shaders/dx9/fs_tree.bin index 779d066c8486bbe874854a34f2b233a5153404c1..783377a454e37b7f95c39543e83c1485607fa052 100644 GIT binary patch delta 12 Tcmcb{evN&C2&3pm(SytY9RCCV delta 12 Tcmcb{evN&C2&33W(SytY9Rvgb diff --git a/examples/runtime/shaders/dx9/vs_ibl_mesh.bin b/examples/runtime/shaders/dx9/vs_ibl_mesh.bin index 2a761537bd604c5621e2c986ba7de9b3b1dc24ec..19af68931ff5d37974c0064e170a921bbe6ead1a 100644 GIT binary patch delta 29 kcmZ3$x`0(AEZBo7sQQ~2GXqCyd~#xLKz=dnMv)#S0D+tc#Q*>R delta 29 kcmZ3$x`0(AEZBo7sQQ~2GXqCyd~#xLKz=dXMv)#S0D++h#sB~S diff --git a/include/bgfx.h b/include/bgfx.h index 938fc62b6..9cc395671 100644 --- a/include/bgfx.h +++ b/include/bgfx.h @@ -580,7 +580,7 @@ namespace bgfx struct VertexDecl { /// Start VertexDecl. - void begin(RendererType::Enum _renderer = RendererType::Null); + VertexDecl& begin(RendererType::Enum _renderer = RendererType::Null); /// End VertexDecl. void end(); @@ -601,10 +601,10 @@ namespace bgfx /// NOTE: /// Must be called between begin/end. /// - void add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized = false, bool _asInt = false); + VertexDecl& add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized = false, bool _asInt = false); /// Skip _num bytes in vertex stream. - void skip(uint8_t _num); + VertexDecl& skip(uint8_t _num); /// Decode attribute. void decode(Attrib::Enum _attrib, uint8_t& _num, AttribType::Enum& _type, bool& _normalized, bool& _asInt) const; @@ -1062,8 +1062,16 @@ namespace bgfx /// /// u_view mat4 - view matrix /// + /// u_invView mat4 - inverted view matrix + /// + /// u_proj mat4 - projection matrix + /// + /// u_invProj mat4 - inverted projection matrix + /// /// u_viewProj mat4 - concatenated view projection matrix /// + /// u_invViewProj mat4 - concatenated inverted view projection matrix + /// /// u_model mat4[BGFX_CONFIG_MAX_BONES] - array of model matrices. /// /// u_modelView mat4 - concatenated model view matrix, only first diff --git a/src/bgfx.cpp b/src/bgfx.cpp index 0a6842213..c9ff1cf3a 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -303,12 +303,13 @@ namespace bgfx void TextVideoMemBlitter::init() { BGFX_CHECK_MAIN_THREAD(); - m_decl.begin(); - m_decl.add(Attrib::Position, 3, AttribType::Float); - m_decl.add(Attrib::Color0, 4, AttribType::Uint8, true); - m_decl.add(Attrib::Color1, 4, AttribType::Uint8, true); - m_decl.add(Attrib::TexCoord0, 2, AttribType::Float); - m_decl.end(); + m_decl + .begin() + .add(Attrib::Position, 3, AttribType::Float) + .add(Attrib::Color0, 4, AttribType::Uint8, true) + .add(Attrib::Color1, 4, AttribType::Uint8, true) + .add(Attrib::TexCoord0, 2, AttribType::Float) + .end(); uint16_t width = 2048; uint16_t height = 24; @@ -493,10 +494,11 @@ namespace bgfx if (BX_ENABLED(BGFX_CONFIG_CLEAR_QUAD) ) { - m_decl.begin(); - m_decl.add(Attrib::Position, 3, AttribType::Float); - m_decl.add(Attrib::Color0, 4, AttribType::Uint8, true); - m_decl.end(); + m_decl + .begin() + .add(Attrib::Position, 3, AttribType::Float) + .add(Attrib::Color0, 4, AttribType::Uint8, true) + .end(); ShaderHandle vsh = BGFX_INVALID_HANDLE; @@ -602,7 +604,11 @@ namespace bgfx "u_viewRect", "u_viewTexel", "u_view", + "u_invView", + "u_proj", + "u_invProj", "u_viewProj", + "u_invViewProj", "u_viewProjX", "u_model", "u_modelView", diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 3fcaa58a0..4b666c8b1 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -77,6 +77,7 @@ namespace bgfx #include "bgfxplatform.h" #include "image.h" +#define BGFX_CHUNK_MAGIC_CSH BX_MAKEFOURCC('C', 'S', 'H', 0x0) #define BGFX_CHUNK_MAGIC_FSH BX_MAKEFOURCC('F', 'S', 'H', 0x2) #define BGFX_CHUNK_MAGIC_TEX BX_MAKEFOURCC('T', 'E', 'X', 0x0) #define BGFX_CHUNK_MAGIC_VSH BX_MAKEFOURCC('V', 'S', 'H', 0x2) @@ -152,7 +153,7 @@ namespace stl #elif BGFX_CONFIG_RENDERER_OPENGLES # if BGFX_CONFIG_RENDERER_OPENGLES == 30 # define BGFX_RENDERER_NAME "OpenGL ES 3.0" -# elif BGFX_CONFIG_RENDERER_OPENGLES == 31 +# elif BGFX_CONFIG_RENDERER_OPENGLES >= 31 # define BGFX_RENDERER_NAME "OpenGL ES 3.1" # else # define BGFX_RENDERER_NAME "OpenGL ES 2.0" @@ -480,7 +481,11 @@ namespace bgfx ViewRect, ViewTexel, View, + InvView, + Proj, + InvProj, ViewProj, + InvViewProj, ViewProjX, Model, ModelView, @@ -1997,8 +2002,9 @@ namespace bgfx uint32_t magic; bx::read(&reader, magic); - if (BGFX_CHUNK_MAGIC_VSH != magic - && BGFX_CHUNK_MAGIC_FSH != magic) + if (BGFX_CHUNK_MAGIC_CSH != magic + && BGFX_CHUNK_MAGIC_FSH != magic + && BGFX_CHUNK_MAGIC_VSH != magic) { BX_WARN(false, "Invalid shader signature! 0x%08x.", magic); ShaderHandle invalid = BGFX_INVALID_HANDLE; diff --git a/src/bgfx_shader.sh b/src/bgfx_shader.sh index 41e5a24f8..ee93ebfd6 100644 --- a/src/bgfx_shader.sh +++ b/src/bgfx_shader.sh @@ -253,7 +253,11 @@ vec4 rcp(vec4 _a) { return vec4(1.0)/_a; } uniform vec4 u_viewRect; uniform vec4 u_viewTexel; uniform mat4 u_view; +uniform mat4 u_invView; +uniform mat4 u_proj; +uniform mat4 u_invProj; uniform mat4 u_viewProj; +uniform mat4 u_invViewProj; uniform mat4 u_model[BGFX_CONFIG_MAX_BONES]; uniform mat4 u_modelView; uniform mat4 u_modelViewProj; diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index 73b347e58..bed0bf8bb 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -2396,6 +2396,13 @@ namespace bgfx bx::float4x4_mul(&viewProj[ii].un.f4x4, &m_render->m_view[ii].un.f4x4, &m_render->m_proj[ii].un.f4x4); } + Matrix4 invView; + Matrix4 invProj; + Matrix4 invViewProj; + uint8_t invViewCached = 0xff; + uint8_t invProjCached = 0xff; + uint8_t invViewProjCached = 0xff; + bool wireframe = !!(m_render->m_debug&BGFX_DEBUG_WIREFRAME); bool scissorEnabled = false; s_renderCtx->setDebugWireframe(wireframe); @@ -2647,12 +2654,54 @@ namespace bgfx } break; + case PredefinedUniform::InvView: + { + if (view != invViewCached) + { + invViewCached = view; + bx::float4x4_inverse(&invView.un.f4x4, &m_render->m_view[view].un.f4x4); + } + + s_renderCtx->setShaderConstant(flags, predefined.m_loc, invView.un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + + case PredefinedUniform::Proj: + { + s_renderCtx->setShaderConstant(flags, predefined.m_loc, m_render->m_proj[view].un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + + case PredefinedUniform::InvProj: + { + if (view != invProjCached) + { + invProjCached = view; + bx::float4x4_inverse(&invProj.un.f4x4, &m_render->m_proj[view].un.f4x4); + } + + s_renderCtx->setShaderConstant(flags, predefined.m_loc, invProj.un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + case PredefinedUniform::ViewProj: { s_renderCtx->setShaderConstant(flags, predefined.m_loc, viewProj[view].un.val, bx::uint32_min(4, predefined.m_count) ); } break; + case PredefinedUniform::InvViewProj: + { + if (view != invViewProjCached) + { + invViewProjCached = view; + bx::float4x4_inverse(&invViewProj.un.f4x4, &viewProj[view].un.f4x4); + } + + s_renderCtx->setShaderConstant(flags, predefined.m_loc, invViewProj.un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + case PredefinedUniform::Model: { const Matrix4& model = m_render->m_matrixCache.m_cache[state.m_matrix]; diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index e19a23d08..dffeaee6a 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -2464,6 +2464,13 @@ namespace bgfx bx::float4x4_mul(&viewProj[ii].un.f4x4, &m_render->m_view[ii].un.f4x4, &m_render->m_proj[ii].un.f4x4); } + Matrix4 invView; + Matrix4 invProj; + Matrix4 invViewProj; + uint8_t invViewCached = 0xff; + uint8_t invProjCached = 0xff; + uint8_t invViewProjCached = 0xff; + DX_CHECK(device->SetRenderState(D3DRS_FILLMODE, m_render->m_debug&BGFX_DEBUG_WIREFRAME ? D3DFILL_WIREFRAME : D3DFILL_SOLID) ); uint16_t programIdx = invalidHandle; SortKey key; @@ -2852,12 +2859,54 @@ namespace bgfx } break; + case PredefinedUniform::InvView: + { + if (view != invViewCached) + { + invViewCached = view; + bx::float4x4_inverse(&invView.un.f4x4, &m_render->m_view[view].un.f4x4); + } + + s_renderCtx->setShaderConstantF(flags, predefined.m_loc, invView.un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + + case PredefinedUniform::Proj: + { + s_renderCtx->setShaderConstantF(flags, predefined.m_loc, m_render->m_proj[view].un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + + case PredefinedUniform::InvProj: + { + if (view != invProjCached) + { + invProjCached = view; + bx::float4x4_inverse(&invProj.un.f4x4, &m_render->m_proj[view].un.f4x4); + } + + s_renderCtx->setShaderConstantF(flags, predefined.m_loc, invProj.un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + case PredefinedUniform::ViewProj: { s_renderCtx->setShaderConstantF(flags, predefined.m_loc, viewProj[view].un.val, bx::uint32_min(4, predefined.m_count) ); } break; + case PredefinedUniform::InvViewProj: + { + if (view != invViewProjCached) + { + invViewProjCached = view; + bx::float4x4_inverse(&invViewProj.un.f4x4, &viewProj[view].un.f4x4); + } + + s_renderCtx->setShaderConstantF(flags, predefined.m_loc, invViewProj.un.val, bx::uint32_min(4, predefined.m_count) ); + } + break; + case PredefinedUniform::Model: { const Matrix4& model = m_render->m_matrixCache.m_cache[state.m_matrix]; diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index f7ea00b8b..2a15a8d04 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -1046,6 +1046,65 @@ namespace bgfx BX_FREE(g_allocator, data); } + bool programFetchFromCache(GLuint programId, uint64_t _id) + { + _id ^= m_hash; + + bool cached = false; + + if (m_programBinarySupport) + { + uint32_t length = g_callback->cacheReadSize(_id); + cached = length > 0; + + if (cached) + { + void* data = BX_ALLOC(g_allocator, length); + if (g_callback->cacheRead(_id, data, length) ) + { + bx::MemoryReader reader(data, length); + + GLenum format; + bx::read(&reader, format); + + GL_CHECK(glProgramBinary(programId, format, reader.getDataPtr(), (GLsizei)reader.remaining() ) ); + } + + BX_FREE(g_allocator, data); + } + +#if BGFX_CONFIG_RENDERER_OPENGL + GL_CHECK(glProgramParameteri(programId, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRUE) ); +#endif // BGFX_CONFIG_RENDERER_OPENGL + } + + return cached; + } + + void programCache(GLuint programId, uint64_t _id) + { + _id ^= m_hash; + + if (m_programBinarySupport) + { + GLint programLength; + GLenum format; + GL_CHECK(glGetProgramiv(programId, GL_PROGRAM_BINARY_LENGTH, &programLength) ); + + if (0 < programLength) + { + uint32_t length = programLength + 4; + uint8_t* data = (uint8_t*)BX_ALLOC(g_allocator, length); + GL_CHECK(glGetProgramBinary(programId, programLength, NULL, &format, &data[4]) ); + *(uint32_t*)data = format; + + g_callback->cacheWrite(_id, data, length); + + BX_FREE(g_allocator, data); + } + } + } + void init() { setRenderContextSize(BGFX_DEFAULT_WIDTH, BGFX_DEFAULT_HEIGHT); @@ -1727,36 +1786,8 @@ namespace bgfx m_id = glCreateProgram(); BX_TRACE("program create: %d: %d, %d", m_id, _vsh.m_id, _fsh.m_id); - bool cached = false; - - uint64_t id = (uint64_t(_vsh.m_hash)<<32) | _fsh.m_hash; - id ^= s_renderCtx->m_hash; - - if (s_renderCtx->m_programBinarySupport) - { - uint32_t length = g_callback->cacheReadSize(id); - cached = length > 0; - - if (cached) - { - void* data = BX_ALLOC(g_allocator, length); - if (g_callback->cacheRead(id, data, length) ) - { - bx::MemoryReader reader(data, length); - - GLenum format; - bx::read(&reader, format); - - GL_CHECK(glProgramBinary(m_id, format, reader.getDataPtr(), (GLsizei)reader.remaining() ) ); - } - - BX_FREE(g_allocator, data); - } - -#if BGFX_CONFIG_RENDERER_OPENGL - GL_CHECK(glProgramParameteri(m_id, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRUE) ); -#endif // BGFX_CONFIG_RENDERER_OPENGL - } + const uint64_t id = (uint64_t(_vsh.m_hash)<<32) | _fsh.m_hash; + const bool cached = s_renderCtx->programFetchFromCache(m_id, id); if (!cached) { @@ -1777,24 +1808,7 @@ namespace bgfx return; } - if (s_renderCtx->m_programBinarySupport) - { - GLint programLength; - GLenum format; - GL_CHECK(glGetProgramiv(m_id, GL_PROGRAM_BINARY_LENGTH, &programLength) ); - - if (0 < programLength) - { - uint32_t length = programLength + 4; - uint8_t* data = (uint8_t*)BX_ALLOC(g_allocator, length); - GL_CHECK(glGetProgramBinary(m_id, programLength, NULL, &format, &data[4]) ); - *(uint32_t*)data = format; - - g_callback->cacheWrite(id, data, length); - - BX_FREE(g_allocator, data); - } - } + s_renderCtx->programCache(m_id, id); } init(); @@ -2588,13 +2602,9 @@ namespace bgfx switch (magic) { - case BGFX_CHUNK_MAGIC_FSH: - m_type = GL_FRAGMENT_SHADER; - break; - - case BGFX_CHUNK_MAGIC_VSH: - m_type = GL_VERTEX_SHADER; - break; + case BGFX_CHUNK_MAGIC_CSH: m_type = GL_COMPUTE_SHADER; break; + case BGFX_CHUNK_MAGIC_FSH: m_type = GL_FRAGMENT_SHADER; break; + case BGFX_CHUNK_MAGIC_VSH: m_type = GL_VERTEX_SHADER; break; default: BGFX_FATAL(false, Fatal::InvalidShader, "Unknown shader format %x.", magic); @@ -2638,242 +2648,245 @@ namespace bgfx if (0 != m_id) { - int32_t codeLen = (int32_t)strlen(code); - int32_t tempLen = codeLen + (4<<10); - char* temp = (char*)alloca(tempLen); - bx::StaticMemoryBlockWriter writer(temp, tempLen); - - if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES) - && BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES < 30) ) + if (GL_COMPUTE_SHADER != m_type) { - bool usesDerivatives = s_extension[Extension::OES_standard_derivatives].m_supported - && bx::findIdentifierMatch(code, s_OES_standard_derivatives) - ; + int32_t codeLen = (int32_t)strlen(code); + int32_t tempLen = codeLen + (4<<10); + char* temp = (char*)alloca(tempLen); + bx::StaticMemoryBlockWriter writer(temp, tempLen); - bool usesFragDepth = !!bx::findIdentifierMatch(code, "gl_FragDepth"); - - bool usesShadowSamplers = !!bx::findIdentifierMatch(code, s_EXT_shadow_samplers); - - bool usesTexture3D = s_extension[Extension::OES_texture_3D].m_supported - && bx::findIdentifierMatch(code, s_OES_texture_3D) - ; - - bool usesTextureLod = !!bx::findIdentifierMatch(code, s_EXT_shader_texture_lod); - - if (usesDerivatives) + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES) + && BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES < 30) ) { - writeString(&writer, "#extension GL_OES_standard_derivatives : enable\n"); - } + bool usesDerivatives = s_extension[Extension::OES_standard_derivatives].m_supported + && bx::findIdentifierMatch(code, s_OES_standard_derivatives) + ; - bool insertFragDepth = false; - if (usesFragDepth) - { - BX_WARN(s_extension[Extension::EXT_frag_depth].m_supported, "EXT_frag_depth is used but not supported by GLES2 driver."); - if (s_extension[Extension::EXT_frag_depth].m_supported) + bool usesFragDepth = !!bx::findIdentifierMatch(code, "gl_FragDepth"); + + bool usesShadowSamplers = !!bx::findIdentifierMatch(code, s_EXT_shadow_samplers); + + bool usesTexture3D = s_extension[Extension::OES_texture_3D].m_supported + && bx::findIdentifierMatch(code, s_OES_texture_3D) + ; + + bool usesTextureLod = !!bx::findIdentifierMatch(code, s_EXT_shader_texture_lod); + + if (usesDerivatives) { - writeString(&writer - , "#extension GL_EXT_frag_depth : enable\n" - "#define bgfx_FragDepth gl_FragDepthEXT\n" - ); - - char str[128]; - bx::snprintf(str, BX_COUNTOF(str), "%s float gl_FragDepthEXT;\n" - , s_extension[Extension::OES_fragment_precision_high].m_supported ? "highp" : "mediump" - ); - writeString(&writer, str); + writeString(&writer, "#extension GL_OES_standard_derivatives : enable\n"); } - else - { - insertFragDepth = true; - } - } - if (usesShadowSamplers) - { - if (s_renderCtx->m_shadowSamplersSupport) + bool insertFragDepth = false; + if (usesFragDepth) { - writeString(&writer - , "#extension GL_EXT_shadow_samplers : enable\n" - "#define shadow2D shadow2DEXT\n" - "#define shadow2DProj shadow2DProjEXT\n" - ); - } - else - { - writeString(&writer - , "#define sampler2DShadow sampler2D\n" - "#define shadow2D(_sampler, _coord) step(_coord.z, texture2D(_sampler, _coord.xy).x)\n" - "#define shadow2DProj(_sampler, _coord) step(_coord.z/_coord.w, texture2DProj(_sampler, _coord).x)\n" - ); - } - } - - if (usesTexture3D) - { - writeString(&writer, "#extension GL_OES_texture_3D : enable\n"); - } - - if (usesTextureLod) - { - BX_WARN(s_extension[Extension::EXT_shader_texture_lod].m_supported, "EXT_shader_texture_lod is used but not supported by GLES2 driver."); - if (s_extension[Extension::EXT_shader_texture_lod].m_supported) - { - writeString(&writer - , "#extension GL_EXT_shader_texture_lod : enable\n" - "#define texture2DLod texture2DLodEXT\n" - "#define texture2DProjLod texture2DProjLodEXT\n" - "#define textureCubeLod textureCubeLodEXT\n" - ); - } - else - { - writeString(&writer - , "#define texture2DLod(_sampler, _coord, _level) texture2D(_sampler, _coord)\n" - "#define texture2DProjLod(_sampler, _coord, _level) texture2DProj(_sampler, _coord)\n" - "#define textureCubeLod(_sampler, _coord, _level) textureCube(_sampler, _coord)\n" - ); - } - } - - writeString(&writer, "precision mediump float;\n"); - - bx::write(&writer, code, codeLen); - bx::write(&writer, '\0'); - - if (insertFragDepth) - { - char* entry = strstr(temp, "void main ()"); - if (NULL != entry) - { - char* brace = strstr(entry, "{"); - if (NULL != brace) + BX_WARN(s_extension[Extension::EXT_frag_depth].m_supported, "EXT_frag_depth is used but not supported by GLES2 driver."); + if (s_extension[Extension::EXT_frag_depth].m_supported) { - const char* end = bx::strmb(brace, '{', '}'); - if (NULL != end) + writeString(&writer + , "#extension GL_EXT_frag_depth : enable\n" + "#define bgfx_FragDepth gl_FragDepthEXT\n" + ); + + char str[128]; + bx::snprintf(str, BX_COUNTOF(str), "%s float gl_FragDepthEXT;\n" + , s_extension[Extension::OES_fragment_precision_high].m_supported ? "highp" : "mediump" + ); + writeString(&writer, str); + } + else + { + insertFragDepth = true; + } + } + + if (usesShadowSamplers) + { + if (s_renderCtx->m_shadowSamplersSupport) + { + writeString(&writer + , "#extension GL_EXT_shadow_samplers : enable\n" + "#define shadow2D shadow2DEXT\n" + "#define shadow2DProj shadow2DProjEXT\n" + ); + } + else + { + writeString(&writer + , "#define sampler2DShadow sampler2D\n" + "#define shadow2D(_sampler, _coord) step(_coord.z, texture2D(_sampler, _coord.xy).x)\n" + "#define shadow2DProj(_sampler, _coord) step(_coord.z/_coord.w, texture2DProj(_sampler, _coord).x)\n" + ); + } + } + + if (usesTexture3D) + { + writeString(&writer, "#extension GL_OES_texture_3D : enable\n"); + } + + if (usesTextureLod) + { + BX_WARN(s_extension[Extension::EXT_shader_texture_lod].m_supported, "EXT_shader_texture_lod is used but not supported by GLES2 driver."); + if (s_extension[Extension::EXT_shader_texture_lod].m_supported) + { + writeString(&writer + , "#extension GL_EXT_shader_texture_lod : enable\n" + "#define texture2DLod texture2DLodEXT\n" + "#define texture2DProjLod texture2DProjLodEXT\n" + "#define textureCubeLod textureCubeLodEXT\n" + ); + } + else + { + writeString(&writer + , "#define texture2DLod(_sampler, _coord, _level) texture2D(_sampler, _coord)\n" + "#define texture2DProjLod(_sampler, _coord, _level) texture2DProj(_sampler, _coord)\n" + "#define textureCubeLod(_sampler, _coord, _level) textureCube(_sampler, _coord)\n" + ); + } + } + + writeString(&writer, "precision mediump float;\n"); + + bx::write(&writer, code, codeLen); + bx::write(&writer, '\0'); + + if (insertFragDepth) + { + char* entry = strstr(temp, "void main ()"); + if (NULL != entry) + { + char* brace = strstr(entry, "{"); + if (NULL != brace) { - strins(brace+1, "\n float bgfx_FragDepth = 0.0;\n"); + const char* end = bx::strmb(brace, '{', '}'); + if (NULL != end) + { + strins(brace+1, "\n float bgfx_FragDepth = 0.0;\n"); + } } } } - } - // Replace all instances of gl_FragDepth with bgfx_FragDepth. - for (const char* fragDepth = bx::findIdentifierMatch(temp, "gl_FragDepth"); NULL != fragDepth; fragDepth = bx::findIdentifierMatch(fragDepth, "gl_FragDepth") ) - { - char* insert = const_cast(fragDepth); - strins(insert, "bg"); - memcpy(insert + 2, "fx", 2); - } - } - else if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) - && BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL <= 21) ) - { - bool usesTextureLod = s_extension[Extension::ARB_shader_texture_lod].m_supported - && bx::findIdentifierMatch(code, s_ARB_shader_texture_lod) - ; - - if (usesTextureLod) - { - writeString(&writer, "#version 120\n"); - - if (m_type == GL_FRAGMENT_SHADER) + // Replace all instances of gl_FragDepth with bgfx_FragDepth. + for (const char* fragDepth = bx::findIdentifierMatch(temp, "gl_FragDepth"); NULL != fragDepth; fragDepth = bx::findIdentifierMatch(fragDepth, "gl_FragDepth") ) { - writeString(&writer, "#extension GL_ARB_shader_texture_lod : enable\n"); + char* insert = const_cast(fragDepth); + strins(insert, "bg"); + memcpy(insert + 2, "fx", 2); } } - - writeString(&writer - , "#define lowp\n" - "#define mediump\n" - "#define highp\n" - ); - - bx::write(&writer, code, codeLen); - bx::write(&writer, '\0'); - } - else if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL >= 31) - || BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30) ) - { - if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30) ) + else if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) + && BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL <= 21) ) { - writeString(&writer - , "#version 300 es\n" - "precision mediump float;\n" - ); - } - else - { - writeString(&writer, "#version 140\n"); - } + bool usesTextureLod = s_extension[Extension::ARB_shader_texture_lod].m_supported + && bx::findIdentifierMatch(code, s_ARB_shader_texture_lod) + ; - if (m_type == GL_FRAGMENT_SHADER) - { - writeString(&writer, "#define varying in\n"); - writeString(&writer, "#define texture2D texture\n"); - writeString(&writer, "#define texture2DLod textureLod\n"); - writeString(&writer, "#define texture2DProj textureProj\n"); - - if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) ) + if (usesTextureLod) { - writeString(&writer, "#define shadow2D(_sampler, _coord) vec2(textureProj(_sampler, vec4(_coord, 1.0) ) )\n"); - writeString(&writer, "#define shadow2DProj(_sampler, _coord) vec2(textureProj(_sampler, _coord) ) )\n"); - } - else - { - writeString(&writer, "#define shadow2D(_sampler, _coord) (textureProj(_sampler, vec4(_coord, 1.0) ) )\n"); - writeString(&writer, "#define shadow2DProj(_sampler, _coord) (textureProj(_sampler, _coord) ) )\n"); + writeString(&writer, "#version 120\n"); + + if (m_type == GL_FRAGMENT_SHADER) + { + writeString(&writer, "#extension GL_ARB_shader_texture_lod : enable\n"); + } } - writeString(&writer, "#define texture3D texture\n"); - writeString(&writer, "#define texture3DLod textureLod\n"); - writeString(&writer, "#define textureCube texture\n"); - writeString(&writer, "#define textureCubeLod textureLod\n"); - - uint32_t fragData = 0; - - if (!!bx::findIdentifierMatch(code, "gl_FragData") ) - { - using namespace bx; - fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[0]") ? 0 : 1); - fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[1]") ? 0 : 2); - fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[2]") ? 0 : 3); - fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[3]") ? 0 : 4); - - BGFX_FATAL(0 != fragData, Fatal::InvalidShader, "Unable to find and patch gl_FragData!"); - } - - if (0 != fragData) - { - writeStringf(&writer, "out vec4 bgfx_FragData[%d];\n", fragData); - writeString(&writer, "#define gl_FragData bgfx_FragData\n"); - } - else - { - writeString(&writer, "out vec4 bgfx_FragColor;\n"); - writeString(&writer, "#define gl_FragColor bgfx_FragColor\n"); - } - } - else - { - writeString(&writer, "#define attribute in\n"); - writeString(&writer, "#define varying out\n"); - } - - if (!BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30) ) - { writeString(&writer , "#define lowp\n" "#define mediump\n" "#define highp\n" ); + + bx::write(&writer, code, codeLen); + bx::write(&writer, '\0'); + } + else if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL >= 31) + || BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30) ) + { + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30) ) + { + writeString(&writer + , "#version 300 es\n" + "precision mediump float;\n" + ); + } + else + { + writeString(&writer, "#version 140\n"); + } + + if (m_type == GL_FRAGMENT_SHADER) + { + writeString(&writer, "#define varying in\n"); + writeString(&writer, "#define texture2D texture\n"); + writeString(&writer, "#define texture2DLod textureLod\n"); + writeString(&writer, "#define texture2DProj textureProj\n"); + + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) ) + { + writeString(&writer, "#define shadow2D(_sampler, _coord) vec2(textureProj(_sampler, vec4(_coord, 1.0) ) )\n"); + writeString(&writer, "#define shadow2DProj(_sampler, _coord) vec2(textureProj(_sampler, _coord) ) )\n"); + } + else + { + writeString(&writer, "#define shadow2D(_sampler, _coord) (textureProj(_sampler, vec4(_coord, 1.0) ) )\n"); + writeString(&writer, "#define shadow2DProj(_sampler, _coord) (textureProj(_sampler, _coord) ) )\n"); + } + + writeString(&writer, "#define texture3D texture\n"); + writeString(&writer, "#define texture3DLod textureLod\n"); + writeString(&writer, "#define textureCube texture\n"); + writeString(&writer, "#define textureCubeLod textureLod\n"); + + uint32_t fragData = 0; + + if (!!bx::findIdentifierMatch(code, "gl_FragData") ) + { + using namespace bx; + fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[0]") ? 0 : 1); + fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[1]") ? 0 : 2); + fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[2]") ? 0 : 3); + fragData = uint32_max(fragData, NULL == strstr(code, "gl_FragData[3]") ? 0 : 4); + + BGFX_FATAL(0 != fragData, Fatal::InvalidShader, "Unable to find and patch gl_FragData!"); + } + + if (0 != fragData) + { + writeStringf(&writer, "out vec4 bgfx_FragData[%d];\n", fragData); + writeString(&writer, "#define gl_FragData bgfx_FragData\n"); + } + else + { + writeString(&writer, "out vec4 bgfx_FragColor;\n"); + writeString(&writer, "#define gl_FragColor bgfx_FragColor\n"); + } + } + else + { + writeString(&writer, "#define attribute in\n"); + writeString(&writer, "#define varying out\n"); + } + + if (!BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30) ) + { + writeString(&writer + , "#define lowp\n" + "#define mediump\n" + "#define highp\n" + ); + } + + bx::write(&writer, code, codeLen); + bx::write(&writer, '\0'); } - bx::write(&writer, code, codeLen); - bx::write(&writer, '\0'); + code = temp; } - code = temp; - GL_CHECK(glShaderSource(m_id, 1, (const GLchar**)&code, NULL) ); GL_CHECK(glCompileShader(m_id) ); @@ -3581,9 +3594,16 @@ namespace bgfx Matrix4 viewProj[BGFX_CONFIG_MAX_VIEWS]; for (uint32_t ii = 0; ii < BGFX_CONFIG_MAX_VIEWS; ++ii) { - float4x4_mul(&viewProj[ii].un.f4x4, &m_render->m_view[ii].un.f4x4, &m_render->m_proj[ii].un.f4x4); + bx::float4x4_mul(&viewProj[ii].un.f4x4, &m_render->m_view[ii].un.f4x4, &m_render->m_proj[ii].un.f4x4); } + Matrix4 invView; + Matrix4 invProj; + Matrix4 invViewProj; + uint8_t invViewCached = 0xff; + uint8_t invProjCached = 0xff; + uint8_t invViewProjCached = 0xff; + uint16_t programIdx = invalidHandle; SortKey key; uint8_t view = 0xff; @@ -3997,6 +4017,48 @@ namespace bgfx } break; + case PredefinedUniform::InvView: + { + if (view != invViewCached) + { + invViewCached = view; + bx::float4x4_inverse(&invView.un.f4x4, &m_render->m_view[view].un.f4x4); + } + + GL_CHECK(glUniformMatrix4fv(predefined.m_loc + , 1 + , GL_FALSE + , invView.un.val + ) ); + } + break; + + case PredefinedUniform::Proj: + { + GL_CHECK(glUniformMatrix4fv(predefined.m_loc + , 1 + , GL_FALSE + , m_render->m_proj[view].un.val + ) ); + } + break; + + case PredefinedUniform::InvProj: + { + if (view != invProjCached) + { + invProjCached = view; + bx::float4x4_inverse(&invProj.un.f4x4, &m_render->m_proj[view].un.f4x4); + } + + GL_CHECK(glUniformMatrix4fv(predefined.m_loc + , 1 + , GL_FALSE + , invProj.un.val + ) ); + } + break; + case PredefinedUniform::ViewProj: { GL_CHECK(glUniformMatrix4fv(predefined.m_loc @@ -4007,6 +4069,22 @@ namespace bgfx } break; + case PredefinedUniform::InvViewProj: + { + if (view != invViewProjCached) + { + invViewProjCached = view; + bx::float4x4_inverse(&invViewProj.un.f4x4, &viewProj[view].un.f4x4); + } + + GL_CHECK(glUniformMatrix4fv(predefined.m_loc + , 1 + , GL_FALSE + , invViewProj.un.val + ) ); + } + break; + case PredefinedUniform::Model: { const Matrix4& model = m_render->m_matrixCache.m_cache[state.m_matrix]; diff --git a/src/vertexdecl.cpp b/src/vertexdecl.cpp index 809e0e3d6..90855461a 100644 --- a/src/vertexdecl.cpp +++ b/src/vertexdecl.cpp @@ -77,12 +77,14 @@ namespace bgfx va_end(argList); } - void VertexDecl::begin(RendererType::Enum _renderer) + VertexDecl& VertexDecl::begin(RendererType::Enum _renderer) { m_hash = _renderer; // use hash to store renderer type while building VertexDecl. m_stride = 0; memset(m_attributes, 0xff, sizeof(m_attributes) ); memset(m_offset, 0, sizeof(m_offset) ); + + return *this; } void VertexDecl::end() @@ -90,7 +92,7 @@ namespace bgfx m_hash = bx::hashMurmur2A(m_attributes); } - void VertexDecl::add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized, bool _asInt) + VertexDecl& VertexDecl::add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized, bool _asInt) { const uint8_t encodedNorm = (_normalized&1)<<6; const uint8_t encodedType = (_type&3)<<3; @@ -100,11 +102,15 @@ namespace bgfx m_attributes[_attrib] = encodedNorm|encodedType|encodedNum|encodeAsInt; m_offset[_attrib] = m_stride; m_stride += (*s_attribTypeSize[m_hash])[_type][_num-1]; + + return *this; } - void VertexDecl::skip(uint8_t _num) + VertexDecl& VertexDecl::skip(uint8_t _num) { m_stride += _num; + + return *this; } void VertexDecl::decode(Attrib::Enum _attrib, uint8_t& _num, AttribType::Enum& _type, bool& _normalized, bool& _asInt) const diff --git a/tools/shaderc/shaderc.cpp b/tools/shaderc/shaderc.cpp index 5a07664b5..ae158713a 100644 --- a/tools/shaderc/shaderc.cpp +++ b/tools/shaderc/shaderc.cpp @@ -54,6 +54,7 @@ extern "C" #include } // extern "C" +#define BGFX_CHUNK_MAGIC_CSH BX_MAKEFOURCC('C', 'S', 'H', 0x0) #define BGFX_CHUNK_MAGIC_VSH BX_MAKEFOURCC('V', 'S', 'H', 0x2) #define BGFX_CHUNK_MAGIC_FSH BX_MAKEFOURCC('F', 'S', 'H', 0x2) @@ -255,18 +256,19 @@ struct UniformRemapDx9 UniformType::Enum id; D3DXPARAMETER_CLASS paramClass; D3DXPARAMETER_TYPE paramType; - uint32_t paramBytes; + uint8_t columns; + uint8_t rows; }; static const UniformRemapDx9 s_constRemapDx9[7] = { - { UniformType::Uniform1iv, D3DXPC_SCALAR, D3DXPT_INT, 4 }, - { UniformType::Uniform1fv, D3DXPC_SCALAR, D3DXPT_FLOAT, 4 }, - { UniformType::Uniform2fv, D3DXPC_VECTOR, D3DXPT_FLOAT, 8 }, - { UniformType::Uniform3fv, D3DXPC_VECTOR, D3DXPT_FLOAT, 12 }, - { UniformType::Uniform4fv, D3DXPC_VECTOR, D3DXPT_FLOAT, 16 }, - { UniformType::Uniform3x3fv, D3DXPC_MATRIX_COLUMNS, D3DXPT_FLOAT, 48 }, - { UniformType::Uniform4x4fv, D3DXPC_MATRIX_COLUMNS, D3DXPT_FLOAT, 64 }, + { UniformType::Uniform1iv, D3DXPC_SCALAR, D3DXPT_INT, 0, 0 }, + { UniformType::Uniform1fv, D3DXPC_SCALAR, D3DXPT_FLOAT, 0, 0 }, + { UniformType::Uniform2fv, D3DXPC_VECTOR, D3DXPT_FLOAT, 0, 0 }, + { UniformType::Uniform3fv, D3DXPC_VECTOR, D3DXPT_FLOAT, 0, 0 }, + { UniformType::Uniform4fv, D3DXPC_VECTOR, D3DXPT_FLOAT, 0, 0 }, + { UniformType::Uniform3x3fv, D3DXPC_MATRIX_COLUMNS, D3DXPT_FLOAT, 3, 3 }, + { UniformType::Uniform4x4fv, D3DXPC_MATRIX_COLUMNS, D3DXPT_FLOAT, 4, 4 }, }; UniformType::Enum findUniformTypeDx9(const D3DXCONSTANT_DESC& constDesc) @@ -276,9 +278,18 @@ UniformType::Enum findUniformTypeDx9(const D3DXCONSTANT_DESC& constDesc) const UniformRemapDx9& remap = s_constRemapDx9[ii]; if (remap.paramClass == constDesc.Class - && remap.paramType == constDesc.Type) + && remap.paramType == constDesc.Type) { - return remap.id; + if (D3DXPC_MATRIX_COLUMNS != constDesc.Class) + { + return remap.id; + } + + if (remap.columns == constDesc.Columns + && remap.rows == constDesc.Rows) + { + return remap.id; + } } } @@ -298,18 +309,19 @@ struct UniformRemapDx11 UniformType::Enum id; D3D_SHADER_VARIABLE_CLASS paramClass; D3D_SHADER_VARIABLE_TYPE paramType; - uint32_t paramBytes; + uint8_t columns; + uint8_t rows; }; static const UniformRemapDx11 s_constRemapDx11[7] = { - { UniformType::Uniform1iv, D3D_SVC_SCALAR, D3D_SVT_INT, 4 }, - { UniformType::Uniform1fv, D3D_SVC_SCALAR, D3D_SVT_FLOAT, 4 }, - { UniformType::Uniform2fv, D3D_SVC_VECTOR, D3D_SVT_FLOAT, 8 }, - { UniformType::Uniform3fv, D3D_SVC_VECTOR, D3D_SVT_FLOAT, 12 }, - { UniformType::Uniform4fv, D3D_SVC_VECTOR, D3D_SVT_FLOAT, 16 }, - { UniformType::Uniform3x3fv, D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 36 }, - { UniformType::Uniform4x4fv, D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 64 }, + { UniformType::Uniform1iv, D3D_SVC_SCALAR, D3D_SVT_INT, 0, 0 }, + { UniformType::Uniform1fv, D3D_SVC_SCALAR, D3D_SVT_FLOAT, 0, 0 }, + { UniformType::Uniform2fv, D3D_SVC_VECTOR, D3D_SVT_FLOAT, 0, 0 }, + { UniformType::Uniform3fv, D3D_SVC_VECTOR, D3D_SVT_FLOAT, 0, 0 }, + { UniformType::Uniform4fv, D3D_SVC_VECTOR, D3D_SVT_FLOAT, 0, 0 }, + { UniformType::Uniform3x3fv, D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 3, 3 }, + { UniformType::Uniform4x4fv, D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 4, 4 }, }; UniformType::Enum findUniformTypeDx11(const D3D11_SHADER_TYPE_DESC& constDesc) @@ -321,7 +333,16 @@ UniformType::Enum findUniformTypeDx11(const D3D11_SHADER_TYPE_DESC& constDesc) if (remap.paramClass == constDesc.Class && remap.paramType == constDesc.Type) { - return remap.id; + if (D3D_SVC_MATRIX_COLUMNS != constDesc.Class) + { + return remap.id; + } + + if (remap.columns == constDesc.Columns + && remap.rows == constDesc.Rows) + { + return remap.id; + } } } @@ -606,7 +627,10 @@ void writeFile(const char* _filePath, const void* _data, int32_t _size) bool compileGLSLShader(bx::CommandLine& _cmdLine, uint32_t _gles, const std::string& _code, bx::WriterI* _writer) { - const glslopt_shader_type type = tolower(_cmdLine.findOption('\0', "type")[0]) == 'f' ? kGlslOptShaderFragment : kGlslOptShaderVertex; + char ch = tolower(_cmdLine.findOption('\0', "type")[0]); + const glslopt_shader_type type = ch == 'f' + ? kGlslOptShaderFragment + : (ch == 'c' ? kGlslOptShaderCompute : kGlslOptShaderVertex); glslopt_target target = kGlslTargetOpenGL; switch (_gles) @@ -1644,6 +1668,7 @@ void help(const char* _error = NULL) " nacl\n" " osx\n" " windows\n" + " --raw Do not process shader. No preprocessor, and no glsl-optimizer (GLSL only).\n" " --type Shader type (vertex, fragment)\n" " --varyingdef Path to varying.def.sc file.\n" " --verbose Verbose.\n" @@ -1703,6 +1728,8 @@ int main(int _argc, const char* _argv[]) return EXIT_FAILURE; } + bool raw = cmdLine.hasArg('\0', "raw"); + uint32_t gles = 0; uint32_t hlsl = 2; const char* profile = cmdLine.findOption('p', "profile"); @@ -1781,6 +1808,7 @@ int main(int _argc, const char* _argv[]) // preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_ESSL"); preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_GLSL"); preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_HLSL"); + preprocessor.setDefaultDefine("BGFX_SHADER_TYPE_COMPUTE"); preprocessor.setDefaultDefine("BGFX_SHADER_TYPE_FRAGMENT"); preprocessor.setDefaultDefine("BGFX_SHADER_TYPE_VERTEX"); @@ -1842,12 +1870,15 @@ int main(int _argc, const char* _argv[]) preprocessor.setDefine("M_PI=3.1415926535897932384626433832795"); - bool fragment = false; - switch (tolower(type[0]) ) + char shaderType = tolower(type[0]); + switch (shaderType) { + case 'c': + preprocessor.setDefine("BGFX_SHADER_TYPE_COMPUTE=1"); + break; + case 'f': preprocessor.setDefine("BGFX_SHADER_TYPE_FRAGMENT=1"); - fragment = true; break; case 'v': @@ -1859,6 +1890,8 @@ int main(int _argc, const char* _argv[]) return EXIT_FAILURE; } + bool compiled = false; + FILE* file = fopen(filePath, "r"); if (NULL != file) { @@ -1926,7 +1959,13 @@ int main(int _argc, const char* _argv[]) } } + InOut shaderInputs; + InOut shaderOutputs; + uint32_t inputHash = 0; + uint32_t outputHash = 0; + char* data; + char* input; { const size_t padding = 16; uint32_t size = (uint32_t)fsize(file); @@ -1938,37 +1977,13 @@ int main(int _argc, const char* _argv[]) memset(&data[size+1], 0, padding); fclose(file); - // To avoid commented code being recognized as used feature, - // first preprocess pass is used to strip all comments before - // substituting code. - preprocessor.run(data); - delete [] data; - - size = preprocessor.m_preprocessed.size(); - data = new char[size+padding+1]; - memcpy(data, preprocessor.m_preprocessed.c_str(), size); - memset(&data[size], 0, padding+1); - } - - char* entry = strstr(data, "void main()"); - if (NULL == entry) - { - fprintf(stderr, "Shader entry point 'void main()' is not found.\n"); - } - else - { - InOut shaderInputs; - InOut shaderOutputs; - uint32_t inputHash = 0; - uint32_t outputHash = 0; - - const char* input = data; + input = data; while (input[0] == '$') { const char* str = input+1; const char* eol = bx::streol(str); const char* nl = bx::strnl(eol); - input = nl; + input = const_cast(nl); if (0 == strncmp(str, "input", 5) ) { @@ -1984,111 +1999,120 @@ int main(int _argc, const char* _argv[]) eol = NULL != comment && comment < eol ? comment : eol; outputHash = parseInOut(shaderOutputs, str, eol); } + else if (0 == strncmp(str, "raw", 3) ) + { + raw = true; + str += 3; + } } - if (glsl) + if (!raw) { - preprocessor.writef( - "#define ivec2 vec2\n" - "#define ivec3 vec3\n" - "#define ivec4 vec4\n" - ); + // To avoid commented code being recognized as used feature, + // first preprocess pass is used to strip all comments before + // substituting code. + preprocessor.run(input); + delete [] data; - if (0 == gles) + size = preprocessor.m_preprocessed.size(); + data = new char[size+padding+1]; + memcpy(data, preprocessor.m_preprocessed.c_str(), size); + memset(&data[size], 0, padding+1); + input = data; + } + } + + if (raw) + { + { + bx::CrtFileWriter* writer = NULL; + + if (NULL != bin2c) { - // bgfx shadow2D/Proj behave like EXT_shadow_samplers - // not as GLSL language 1.2 specs shadow2D/Proj. - preprocessor.writef( - "#define shadow2D(_sampler, _coord) bgfxShadow2D(_sampler, _coord).x\n" - "#define shadow2DProj(_sampler, _coord) bgfxShadow2DProj(_sampler, _coord).x\n" - ); + writer = new Bin2cWriter(bin2c); + } + else + { + writer = new bx::CrtFileWriter; } - for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it) + if (0 != writer->open(outFilePath) ) { - VaryingMap::const_iterator varyingIt = varyingMap.find(*it); - if (varyingIt != varyingMap.end() ) + fprintf(stderr, "Unable to open output file '%s'.", outFilePath); + return EXIT_FAILURE; + } + + uint32_t inputHash = 0; + uint32_t outputHash = 0; + + if ('f' == shaderType) + { + bx::write(writer, BGFX_CHUNK_MAGIC_FSH); + bx::write(writer, inputHash); + } + else if ('v' == shaderType) + { + bx::write(writer, BGFX_CHUNK_MAGIC_VSH); + bx::write(writer, outputHash); + } + else + { + bx::write(writer, BGFX_CHUNK_MAGIC_CSH); + bx::write(writer, outputHash); + } + + if (glsl) + { + bx::write(writer, uint16_t(0) ); + + uint32_t shaderSize = (uint32_t)strlen(input); + bx::write(writer, shaderSize); + bx::write(writer, input, shaderSize); + bx::write(writer, uint8_t(0) ); + + compiled = true; + } + else + { + if (hlsl > 3) { - const Varying& var = varyingIt->second; - const char* name = var.m_name.c_str(); - if (0 == strncmp(name, "a_", 2) - || 0 == strncmp(name, "i_", 2) ) - { - preprocessor.writef("attribute %s %s %s;\n" - , var.m_precision.c_str() - , var.m_type.c_str() - , name - ); - } - else - { - preprocessor.writef("varying %s %s %s;\n" - , var.m_precision.c_str() - , var.m_type.c_str() - , name - ); - } + compiled = compileHLSLShaderDx11(cmdLine, preprocessor.m_preprocessed, writer); + } + else + { + compiled = compileHLSLShaderDx9(cmdLine, preprocessor.m_preprocessed, writer); } } - for (InOut::const_iterator it = shaderOutputs.begin(), itEnd = shaderOutputs.end(); it != itEnd; ++it) - { - VaryingMap::const_iterator varyingIt = varyingMap.find(*it); - if (varyingIt != varyingMap.end() ) - { - const Varying& var = varyingIt->second; - preprocessor.writef("varying %s %s;\n", var.m_type.c_str(), var.m_name.c_str() ); - } - } + writer->close(); + delete writer; + } + } + else + { + char* entry = strstr(input, "void main()"); + if (NULL == entry) + { + fprintf(stderr, "Shader entry point 'void main()' is not found.\n"); } else { - preprocessor.writef( - "#define lowp\n" - "#define mediump\n" - "#define highp\n" - "#define ivec2 int2\n" - "#define ivec3 int3\n" - "#define ivec4 int4\n" - "#define vec2 float2\n" - "#define vec3 float3\n" - "#define vec4 float4\n" - "#define mat2 float2x2\n" - "#define mat3 float3x3\n" - "#define mat4 float4x4\n" - ); - - entry[4] = '_'; - - if (fragment) + if (glsl) { - const bool hasFragCoord = NULL != strstr(data, "gl_FragCoord") || hlsl > 3; - const bool hasFragDepth = NULL != strstr(data, "gl_FragDepth"); - const bool hasFrontFacing = NULL != strstr(data, "gl_FrontFacing"); - const bool hasFragData0 = NULL != strstr(data, "gl_FragData[0]"); - const bool hasFragData1 = NULL != strstr(data, "gl_FragData[1]"); - const bool hasFragData2 = NULL != strstr(data, "gl_FragData[2]"); - const bool hasFragData3 = NULL != strstr(data, "gl_FragData[3]"); + preprocessor.writef( + "#define ivec2 vec2\n" + "#define ivec3 vec3\n" + "#define ivec4 vec4\n" + ); - if (!hasFragData0 - && !hasFragData1 - && !hasFragData2 - && !hasFragData3) + if (0 == gles) { - // GL errors when both gl_FragColor and gl_FragData is used. - // This will trigger the same error with HLSL compiler too. - preprocessor.writef("#define gl_FragColor gl_FragData_0_\n"); - } - - preprocessor.writef("#define void_main()"); - preprocessor.writef(" \\\n\tvoid main("); - - uint32_t arg = 0; - - if (hasFragCoord) - { - preprocessor.writef(" \\\n\tvec4 gl_FragCoord : SV_POSITION"); - ++arg; + // bgfx shadow2D/Proj behave like EXT_shadow_samplers + // not as GLSL language 1.2 specs shadow2D/Proj. + preprocessor.writef( + "#define shadow2D(_sampler, _coord) bgfxShadow2D(_sampler, _coord).x\n" + "#define shadow2DProj(_sampler, _coord) bgfxShadow2DProj(_sampler, _coord).x\n" + ); } for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it) @@ -2097,290 +2121,379 @@ int main(int _argc, const char* _argv[]) if (varyingIt != varyingMap.end() ) { const Varying& var = varyingIt->second; - preprocessor.writef(" \\\n\t%s%s %s : %s", arg++ > 0 ? ", " : " ", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() ); + const char* name = var.m_name.c_str(); + if (0 == strncmp(name, "a_", 2) + || 0 == strncmp(name, "i_", 2) ) + { + preprocessor.writef("attribute %s %s %s;\n" + , var.m_precision.c_str() + , var.m_type.c_str() + , name + ); + } + else + { + preprocessor.writef("varying %s %s %s;\n" + , var.m_precision.c_str() + , var.m_type.c_str() + , name + ); + } } } - addFragData(preprocessor, data, 0, arg++ > 0); - - if (hasFragData1) + for (InOut::const_iterator it = shaderOutputs.begin(), itEnd = shaderOutputs.end(); it != itEnd; ++it) { - addFragData(preprocessor, data, 1, arg++ > 0); - } - - if (hasFragData2) - { - addFragData(preprocessor, data, 2, arg++ > 0); - } - - if (hasFragData3) - { - addFragData(preprocessor, data, 3, arg++ > 0); - } - - if (hasFragDepth) - { - preprocessor.writef( - " \\\n\t%sout float gl_FragDepth : SV_DEPTH" - , arg++ > 0 ? ", " : " " - ); - } - - if (hasFrontFacing) - { - preprocessor.writef( - " \\\n\t%sfloat __vface : VFACE" - , arg++ > 0 ? ", " : " " - ); - } - - preprocessor.writef( - " \\\n\t)\n" - ); - - if (hasFrontFacing) - { - preprocessor.writef( - "#define gl_FrontFacing (__vface <= 0.0)\n" - ); + VaryingMap::const_iterator varyingIt = varyingMap.find(*it); + if (varyingIt != varyingMap.end() ) + { + const Varying& var = varyingIt->second; + preprocessor.writef("varying %s %s;\n", var.m_type.c_str(), var.m_name.c_str() ); + } } } else { - const char* brace = strstr(entry, "{"); - if (NULL != brace) - { - const char* end = bx::strmb(brace, '{', '}'); - if (NULL != end) - { - strins(const_cast(end), "__RETURN__;\n"); - } - } - preprocessor.writef( - "struct Output\n" - "{\n" - "\tvec4 gl_Position : SV_POSITION;\n" - "#define gl_Position _varying_.gl_Position\n" - ); - for (InOut::const_iterator it = shaderOutputs.begin(), itEnd = shaderOutputs.end(); it != itEnd; ++it) - { - VaryingMap::const_iterator varyingIt = varyingMap.find(*it); - if (varyingIt != varyingMap.end() ) - { - const Varying& var = varyingIt->second; - preprocessor.writef("\t%s %s : %s;\n", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() ); - preprocessor.writef("#define %s _varying_.%s\n", var.m_name.c_str(), var.m_name.c_str() ); - } - } - preprocessor.writef( - "};\n" + "#define lowp\n" + "#define mediump\n" + "#define highp\n" + "#define ivec2 int2\n" + "#define ivec3 int3\n" + "#define ivec4 int4\n" + "#define vec2 float2\n" + "#define vec3 float3\n" + "#define vec4 float4\n" + "#define mat2 float2x2\n" + "#define mat3 float3x3\n" + "#define mat4 float4x4\n" ); - preprocessor.writef("#define void_main() \\\n"); - preprocessor.writef("Output main("); - bool first = true; - for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it) + entry[4] = '_'; + + if ('f' == shaderType) { - VaryingMap::const_iterator varyingIt = varyingMap.find(*it); - if (varyingIt != varyingMap.end() ) + const bool hasFragCoord = NULL != strstr(input, "gl_FragCoord") || hlsl > 3; + const bool hasFragDepth = NULL != strstr(input, "gl_FragDepth"); + const bool hasFrontFacing = NULL != strstr(input, "gl_FrontFacing"); + const bool hasFragData0 = NULL != strstr(input, "gl_FragData[0]"); + const bool hasFragData1 = NULL != strstr(input, "gl_FragData[1]"); + const bool hasFragData2 = NULL != strstr(input, "gl_FragData[2]"); + const bool hasFragData3 = NULL != strstr(input, "gl_FragData[3]"); + + if (!hasFragData0 + && !hasFragData1 + && !hasFragData2 + && !hasFragData3) { - const Varying& var = varyingIt->second; - preprocessor.writef("%s%s %s : %s\\\n", first ? "" : "\t, ", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() ); - first = false; + // GL errors when both gl_FragColor and gl_FragData is used. + // This will trigger the same error with HLSL compiler too. + preprocessor.writef("#define gl_FragColor gl_FragData_0_\n"); } - } - preprocessor.writef( - ") \\\n" - "{ \\\n" - "\tOutput _varying_;" - ); - for (InOut::const_iterator it = shaderOutputs.begin(), itEnd = shaderOutputs.end(); it != itEnd; ++it) - { - VaryingMap::const_iterator varyingIt = varyingMap.find(*it); - if (varyingIt != varyingMap.end() ) + preprocessor.writef("#define void_main()"); + preprocessor.writef(" \\\n\tvoid main("); + + uint32_t arg = 0; + + if (hasFragCoord) { - const Varying& var = varyingIt->second; - preprocessor.writef(" \\\n\t%s = %s;", var.m_name.c_str(), var.m_init.c_str() ); + preprocessor.writef(" \\\n\tvec4 gl_FragCoord : SV_POSITION"); + ++arg; } - } - preprocessor.writef( - "\n#define __RETURN__ \\\n" - "\t} \\\n" - "\treturn _varying_" - ); - } - } - - if (preprocessor.run(input) ) - { - BX_TRACE("Input file: %s", filePath); - BX_TRACE("Output file: %s", outFilePath); - - if (preprocessOnly) - { - bx::CrtFileWriter writer; - - if (0 != writer.open(outFilePath) ) - { - fprintf(stderr, "Unable to open output file '%s'.", outFilePath); - return EXIT_FAILURE; - } - - if (glsl) - { - const char* profile = cmdLine.findOption('p', "profile"); - if (NULL == profile) + for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it) { - writef(&writer - , "#ifdef GL_ES\n" - "precision highp float;\n" - "#endif // GL_ES\n\n" + VaryingMap::const_iterator varyingIt = varyingMap.find(*it); + if (varyingIt != varyingMap.end() ) + { + const Varying& var = varyingIt->second; + preprocessor.writef(" \\\n\t%s%s %s : %s", arg++ > 0 ? ", " : " ", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() ); + } + } + + addFragData(preprocessor, input, 0, arg++ > 0); + + if (hasFragData1) + { + addFragData(preprocessor, input, 1, arg++ > 0); + } + + if (hasFragData2) + { + addFragData(preprocessor, input, 2, arg++ > 0); + } + + if (hasFragData3) + { + addFragData(preprocessor, input, 3, arg++ > 0); + } + + if (hasFragDepth) + { + preprocessor.writef( + " \\\n\t%sout float gl_FragDepth : SV_DEPTH" + , arg++ > 0 ? ", " : " " + ); + } + + if (hasFrontFacing) + { + preprocessor.writef( + " \\\n\t%sfloat __vface : VFACE" + , arg++ > 0 ? ", " : " " + ); + } + + preprocessor.writef( + " \\\n\t)\n" + ); + + if (hasFrontFacing) + { + preprocessor.writef( + "#define gl_FrontFacing (__vface <= 0.0)\n" ); } } - writer.write(preprocessor.m_preprocessed.c_str(), (int32_t)preprocessor.m_preprocessed.size() ); - writer.close(); + else if ('v' == shaderType) + { + const char* brace = strstr(entry, "{"); + if (NULL != brace) + { + const char* end = bx::strmb(brace, '{', '}'); + if (NULL != end) + { + strins(const_cast(end), "__RETURN__;\n"); + } + } - return EXIT_SUCCESS; + preprocessor.writef( + "struct Output\n" + "{\n" + "\tvec4 gl_Position : SV_POSITION;\n" + "#define gl_Position _varying_.gl_Position\n" + ); + for (InOut::const_iterator it = shaderOutputs.begin(), itEnd = shaderOutputs.end(); it != itEnd; ++it) + { + VaryingMap::const_iterator varyingIt = varyingMap.find(*it); + if (varyingIt != varyingMap.end() ) + { + const Varying& var = varyingIt->second; + preprocessor.writef("\t%s %s : %s;\n", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() ); + preprocessor.writef("#define %s _varying_.%s\n", var.m_name.c_str(), var.m_name.c_str() ); + } + } + preprocessor.writef( + "};\n" + ); + + preprocessor.writef("#define void_main() \\\n"); + preprocessor.writef("Output main("); + bool first = true; + for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it) + { + VaryingMap::const_iterator varyingIt = varyingMap.find(*it); + if (varyingIt != varyingMap.end() ) + { + const Varying& var = varyingIt->second; + preprocessor.writef("%s%s %s : %s\\\n", first ? "" : "\t, ", var.m_type.c_str(), var.m_name.c_str(), var.m_semantics.c_str() ); + first = false; + } + } + preprocessor.writef( + ") \\\n" + "{ \\\n" + "\tOutput _varying_;" + ); + + for (InOut::const_iterator it = shaderOutputs.begin(), itEnd = shaderOutputs.end(); it != itEnd; ++it) + { + VaryingMap::const_iterator varyingIt = varyingMap.find(*it); + if (varyingIt != varyingMap.end() ) + { + const Varying& var = varyingIt->second; + preprocessor.writef(" \\\n\t%s = %s;", var.m_name.c_str(), var.m_init.c_str() ); + } + } + + preprocessor.writef( + "\n#define __RETURN__ \\\n" + "\t} \\\n" + "\treturn _varying_" + ); + } } - bool compiled = false; - + if (preprocessor.run(input) ) { - bx::CrtFileWriter* writer = NULL; + BX_TRACE("Input file: %s", filePath); + BX_TRACE("Output file: %s", outFilePath); - if (NULL != bin2c) + if (preprocessOnly) { - writer = new Bin2cWriter(bin2c); - } - else - { - writer = new bx::CrtFileWriter; - } - - if (0 != writer->open(outFilePath) ) - { - fprintf(stderr, "Unable to open output file '%s'.", outFilePath); - return EXIT_FAILURE; - } - - if (fragment) - { - bx::write(writer, BGFX_CHUNK_MAGIC_FSH); - bx::write(writer, inputHash); - } - else - { - bx::write(writer, BGFX_CHUNK_MAGIC_VSH); - bx::write(writer, outputHash); - } - - if (glsl) - { - std::string code; - - bool hasTextureLod = NULL != bx::findIdentifierMatch(data, s_ARB_shader_texture_lod /*EXT_shader_texture_lod*/); - - if (0 == gles) - { - bx::stringPrintf(code, "#version %s\n", profile); - int32_t version = atoi(profile); - - bx::stringPrintf(code - , "#define bgfxShadow2D shadow2D\n" - "#define bgfxShadow2DProj shadow2DProj\n" - ); - - if (hasTextureLod - && 130 > version) - { - bx::stringPrintf(code - , "#extension GL_ARB_shader_texture_lod : enable\n" - ); - } - } - else - { - // Pretend that all extensions are available. - // This will be stripped later. - if (hasTextureLod) - { - bx::stringPrintf(code - , "#extension GL_EXT_shader_texture_lod : enable\n" - "#define texture2DLod texture2DLodEXT\n" - "#define texture2DProjLod texture2DProjLodEXT\n" - "#define textureCubeLod textureCubeLodEXT\n" -// "#define texture2DGrad texture2DGradEXT\n" -// "#define texture2DProjGrad texture2DProjGradEXT\n" -// "#define textureCubeGrad textureCubeGradEXT\n" - ); - } - - if (NULL != bx::findIdentifierMatch(data, s_OES_standard_derivatives) ) - { - bx::stringPrintf(code, "#extension GL_OES_standard_derivatives : enable\n"); - } - - if (NULL != bx::findIdentifierMatch(data, s_OES_texture_3D) ) - { - bx::stringPrintf(code, "#extension GL_OES_texture_3D : enable\n"); - } - - if (NULL != bx::findIdentifierMatch(data, s_EXT_shadow_samplers) ) - { - bx::stringPrintf(code - , "#extension GL_EXT_shadow_samplers : enable\n" - "#define shadow2D shadow2DEXT\n" - "#define shadow2DProj shadow2DProjEXT\n" - ); - } - - if (NULL != bx::findIdentifierMatch(data, "gl_FragDepth") ) - { - bx::stringPrintf(code - , "#extension GL_EXT_frag_depth : enable\n" - "#define gl_FragDepth gl_FragDepthEXT\n" - ); - } - } - - code += preprocessor.m_preprocessed; - compiled = compileGLSLShader(cmdLine, gles, code, writer); - } - else - { - if (hlsl > 3) - { - compiled = compileHLSLShaderDx11(cmdLine, preprocessor.m_preprocessed, writer); - } - else - { - compiled = compileHLSLShaderDx9(cmdLine, preprocessor.m_preprocessed, writer); - } - } - - writer->close(); - delete writer; - } - - if (compiled) - { - if (depends) - { - std::string ofp = outFilePath; - ofp += ".d"; bx::CrtFileWriter writer; - if (0 == writer.open(ofp.c_str() ) ) + + if (0 != writer.open(outFilePath) ) { - writef(&writer, "%s : %s\n", outFilePath, preprocessor.m_depends.c_str() ); - writer.close(); + fprintf(stderr, "Unable to open output file '%s'.", outFilePath); + return EXIT_FAILURE; } + + if (glsl) + { + const char* profile = cmdLine.findOption('p', "profile"); + if (NULL == profile) + { + writef(&writer + , "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif // GL_ES\n\n" + ); + } + } + writer.write(preprocessor.m_preprocessed.c_str(), (int32_t)preprocessor.m_preprocessed.size() ); + writer.close(); + + return EXIT_SUCCESS; } - return EXIT_SUCCESS; + { + bx::CrtFileWriter* writer = NULL; + + if (NULL != bin2c) + { + writer = new Bin2cWriter(bin2c); + } + else + { + writer = new bx::CrtFileWriter; + } + + if (0 != writer->open(outFilePath) ) + { + fprintf(stderr, "Unable to open output file '%s'.", outFilePath); + return EXIT_FAILURE; + } + + if ('f' == shaderType) + { + bx::write(writer, BGFX_CHUNK_MAGIC_FSH); + bx::write(writer, inputHash); + } + else if ('v' == shaderType) + { + bx::write(writer, BGFX_CHUNK_MAGIC_VSH); + bx::write(writer, outputHash); + } + else + { + bx::write(writer, BGFX_CHUNK_MAGIC_CSH); + bx::write(writer, outputHash); + } + + if (glsl) + { + std::string code; + + bool hasTextureLod = NULL != bx::findIdentifierMatch(input, s_ARB_shader_texture_lod /*EXT_shader_texture_lod*/); + + if (0 == gles) + { + bx::stringPrintf(code, "#version %s\n", profile); + int32_t version = atoi(profile); + + bx::stringPrintf(code + , "#define bgfxShadow2D shadow2D\n" + "#define bgfxShadow2DProj shadow2DProj\n" + ); + + if (hasTextureLod + && 130 > version) + { + bx::stringPrintf(code + , "#extension GL_ARB_shader_texture_lod : enable\n" + ); + } + } + else + { + // Pretend that all extensions are available. + // This will be stripped later. + if (hasTextureLod) + { + bx::stringPrintf(code + , "#extension GL_EXT_shader_texture_lod : enable\n" + "#define texture2DLod texture2DLodEXT\n" + "#define texture2DProjLod texture2DProjLodEXT\n" + "#define textureCubeLod textureCubeLodEXT\n" + // "#define texture2DGrad texture2DGradEXT\n" + // "#define texture2DProjGrad texture2DProjGradEXT\n" + // "#define textureCubeGrad textureCubeGradEXT\n" + ); + } + + if (NULL != bx::findIdentifierMatch(input, s_OES_standard_derivatives) ) + { + bx::stringPrintf(code, "#extension GL_OES_standard_derivatives : enable\n"); + } + + if (NULL != bx::findIdentifierMatch(input, s_OES_texture_3D) ) + { + bx::stringPrintf(code, "#extension GL_OES_texture_3D : enable\n"); + } + + if (NULL != bx::findIdentifierMatch(input, s_EXT_shadow_samplers) ) + { + bx::stringPrintf(code + , "#extension GL_EXT_shadow_samplers : enable\n" + "#define shadow2D shadow2DEXT\n" + "#define shadow2DProj shadow2DProjEXT\n" + ); + } + + if (NULL != bx::findIdentifierMatch(input, "gl_FragDepth") ) + { + bx::stringPrintf(code + , "#extension GL_EXT_frag_depth : enable\n" + "#define gl_FragDepth gl_FragDepthEXT\n" + ); + } + } + + code += preprocessor.m_preprocessed; + compiled = compileGLSLShader(cmdLine, gles, code, writer); + } + else + { + if (hlsl > 3) + { + compiled = compileHLSLShaderDx11(cmdLine, preprocessor.m_preprocessed, writer); + } + else + { + compiled = compileHLSLShaderDx9(cmdLine, preprocessor.m_preprocessed, writer); + } + } + + writer->close(); + delete writer; + } + + if (compiled) + { + if (depends) + { + std::string ofp = outFilePath; + ofp += ".d"; + bx::CrtFileWriter writer; + if (0 == writer.open(ofp.c_str() ) ) + { + writef(&writer, "%s : %s\n", outFilePath, preprocessor.m_depends.c_str() ); + writer.close(); + } + } + } } } } @@ -2388,6 +2501,11 @@ int main(int _argc, const char* _argv[]) delete [] data; } + if (compiled) + { + return EXIT_SUCCESS; + } + remove(outFilePath); fprintf(stderr, "Failed to build shader.\n");