aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorAndre Weissflog <floooh@gmail.com>2019-04-01 17:11:35 +0200
committerAndre Weissflog <floooh@gmail.com>2019-04-01 17:11:35 +0200
commit09e3ac6815677be721709d3753049d5173c0cc43 (patch)
treecc7967944b4499441e2e541df1d38bad8330ce31 /util
parentb372d6d27ca41a3509e88fc086027ce86a964182 (diff)
sokol_gl.h: replace embedded d3d11 shader code with bytecode
Diffstat (limited to 'util')
-rw-r--r--util/sokol_gl.h387
1 files changed, 357 insertions, 30 deletions
diff --git a/util/sokol_gl.h b/util/sokol_gl.h
index 42bd2282..f614c4c7 100644
--- a/util/sokol_gl.h
+++ b/util/sokol_gl.h
@@ -608,34 +608,354 @@ static const char* _sgl_fs_src =
" return tex.sample(smp, in.uv.xy) * in.color;\n"
"}\n";
#elif defined(SOKOL_D3D11)
-static const char* _sgl_vs_src =
- "cbuffer params: register(b0) {\n"
- " float4x4 mvp;\n"
- " float4x4 tm;\n"
- "};\n"
- "struct vs_in {\n"
- " float4 pos: POSITION;\n"
- " float2 uv: TEXCOORD0;\n"
- " float4 color: COLOR0;\n"
- "};\n"
- "struct vs_out {\n"
- " float4 uv: TEXCOORD0;\n"
- " float4 color: COLOR0;\n"
- " float4 pos: SV_Position;\n"
- "};\n"
- "vs_out main(vs_in inp) {\n"
- " vs_out outp;\n"
- " outp.pos = mul(mvp, inp.pos);\n"
- " outp.uv = mul(tm, float4(inp.uv, 0.0, 1.0));\n"
- " outp.color = inp.color;\n"
- " return outp;\n"
- "};\n";
-static const char* _sgl_fs_src =
- "Texture2D<float4> tex: register(t0);\n"
- "sampler smp: register(s0);\n"
- "float4 main(float4 uv: TEXCOORD0, float4 color: COLOR0): SV_Target0 {\n"
- " return tex.Sample(smp, uv.xy) * color;\n"
- "}\n";
+/*
+ Shader blobs for D3D11, compiled with:
+
+ fxc.exe /T vs_5_0 /Fh vs.h /Gec /O3 vs.hlsl
+ fxc.exe /T ps_5_0 /Fh fs.h /Gec /O3 fs.hlsl
+
+ Vertex shader source:
+
+ cbuffer params: register(b0) {
+ float4x4 mvp;
+ float4x4 tm;
+ };
+ struct vs_in {
+ float4 pos: POSITION;
+ float2 uv: TEXCOORD0;
+ float4 color: COLOR0;
+ };
+ struct vs_out {
+ float4 uv: TEXCOORD0;
+ float4 color: COLOR0;
+ float4 pos: SV_Position;
+ };
+ vs_out main(vs_in inp) {
+ vs_out outp;
+ outp.pos = mul(mvp, inp.pos);
+ outp.uv = mul(tm, float4(inp.uv, 0.0, 1.0));
+ outp.color = inp.color;
+ return outp;
+ };
+
+ Pixel shader source:
+
+ Texture2D<float4> tex: register(t0);
+ sampler smp: register(s0);
+ float4 main(float4 uv: TEXCOORD0, float4 color: COLOR0): SV_Target0 {
+ return tex.Sample(smp, uv.xy) * color;
+ }
+*/
+static const uint8_t _sgl_vs_bin[] = {
+ 68, 88, 66, 67, 239, 161,
+ 1, 229, 179, 68, 206, 40,
+ 34, 15, 57, 169, 103, 117,
+ 134, 191, 1, 0, 0, 0,
+ 120, 4, 0, 0, 5, 0,
+ 0, 0, 52, 0, 0, 0,
+ 104, 1, 0, 0, 216, 1,
+ 0, 0, 76, 2, 0, 0,
+ 220, 3, 0, 0, 82, 68,
+ 69, 70, 44, 1, 0, 0,
+ 1, 0, 0, 0, 100, 0,
+ 0, 0, 1, 0, 0, 0,
+ 60, 0, 0, 0, 0, 5,
+ 254, 255, 0, 145, 0, 0,
+ 3, 1, 0, 0, 82, 68,
+ 49, 49, 60, 0, 0, 0,
+ 24, 0, 0, 0, 32, 0,
+ 0, 0, 40, 0, 0, 0,
+ 36, 0, 0, 0, 12, 0,
+ 0, 0, 0, 0, 0, 0,
+ 92, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0,
+ 0, 0, 112, 97, 114, 97,
+ 109, 115, 0, 171, 92, 0,
+ 0, 0, 2, 0, 0, 0,
+ 124, 0, 0, 0, 128, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 204, 0,
+ 0, 0, 0, 0, 0, 0,
+ 64, 0, 0, 0, 2, 0,
+ 0, 0, 220, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255,
+ 255, 255, 0, 0, 0, 0,
+ 255, 255, 255, 255, 0, 0,
+ 0, 0, 0, 1, 0, 0,
+ 64, 0, 0, 0, 64, 0,
+ 0, 0, 2, 0, 0, 0,
+ 220, 0, 0, 0, 0, 0,
+ 0, 0, 255, 255, 255, 255,
+ 0, 0, 0, 0, 255, 255,
+ 255, 255, 0, 0, 0, 0,
+ 109, 118, 112, 0, 102, 108,
+ 111, 97, 116, 52, 120, 52,
+ 0, 171, 171, 171, 3, 0,
+ 3, 0, 4, 0, 4, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 208, 0, 0, 0, 116, 109,
+ 0, 77, 105, 99, 114, 111,
+ 115, 111, 102, 116, 32, 40,
+ 82, 41, 32, 72, 76, 83,
+ 76, 32, 83, 104, 97, 100,
+ 101, 114, 32, 67, 111, 109,
+ 112, 105, 108, 101, 114, 32,
+ 49, 48, 46, 49, 0, 171,
+ 73, 83, 71, 78, 104, 0,
+ 0, 0, 3, 0, 0, 0,
+ 8, 0, 0, 0, 80, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0,
+ 0, 0, 0, 0, 0, 0,
+ 15, 15, 0, 0, 89, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0,
+ 0, 0, 1, 0, 0, 0,
+ 3, 3, 0, 0, 98, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0,
+ 0, 0, 2, 0, 0, 0,
+ 15, 15, 0, 0, 80, 79,
+ 83, 73, 84, 73, 79, 78,
+ 0, 84, 69, 88, 67, 79,
+ 79, 82, 68, 0, 67, 79,
+ 76, 79, 82, 0, 79, 83,
+ 71, 78, 108, 0, 0, 0,
+ 3, 0, 0, 0, 8, 0,
+ 0, 0, 80, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 15, 0,
+ 0, 0, 89, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 3, 0, 0, 0,
+ 1, 0, 0, 0, 15, 0,
+ 0, 0, 95, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0,
+ 0, 0, 3, 0, 0, 0,
+ 2, 0, 0, 0, 15, 0,
+ 0, 0, 84, 69, 88, 67,
+ 79, 79, 82, 68, 0, 67,
+ 79, 76, 79, 82, 0, 83,
+ 86, 95, 80, 111, 115, 105,
+ 116, 105, 111, 110, 0, 171,
+ 83, 72, 69, 88, 136, 1,
+ 0, 0, 80, 0, 1, 0,
+ 98, 0, 0, 0, 106, 8,
+ 0, 1, 89, 0, 0, 4,
+ 70, 142, 32, 0, 0, 0,
+ 0, 0, 8, 0, 0, 0,
+ 95, 0, 0, 3, 242, 16,
+ 16, 0, 0, 0, 0, 0,
+ 95, 0, 0, 3, 50, 16,
+ 16, 0, 1, 0, 0, 0,
+ 95, 0, 0, 3, 242, 16,
+ 16, 0, 2, 0, 0, 0,
+ 101, 0, 0, 3, 242, 32,
+ 16, 0, 0, 0, 0, 0,
+ 101, 0, 0, 3, 242, 32,
+ 16, 0, 1, 0, 0, 0,
+ 103, 0, 0, 4, 242, 32,
+ 16, 0, 2, 0, 0, 0,
+ 1, 0, 0, 0, 104, 0,
+ 0, 2, 1, 0, 0, 0,
+ 56, 0, 0, 8, 242, 0,
+ 16, 0, 0, 0, 0, 0,
+ 86, 21, 16, 0, 1, 0,
+ 0, 0, 70, 142, 32, 0,
+ 0, 0, 0, 0, 5, 0,
+ 0, 0, 50, 0, 0, 10,
+ 242, 0, 16, 0, 0, 0,
+ 0, 0, 70, 142, 32, 0,
+ 0, 0, 0, 0, 4, 0,
+ 0, 0, 6, 16, 16, 0,
+ 1, 0, 0, 0, 70, 14,
+ 16, 0, 0, 0, 0, 0,
+ 0, 0, 0, 8, 242, 32,
+ 16, 0, 0, 0, 0, 0,
+ 70, 14, 16, 0, 0, 0,
+ 0, 0, 70, 142, 32, 0,
+ 0, 0, 0, 0, 7, 0,
+ 0, 0, 54, 0, 0, 5,
+ 242, 32, 16, 0, 1, 0,
+ 0, 0, 70, 30, 16, 0,
+ 2, 0, 0, 0, 56, 0,
+ 0, 8, 242, 0, 16, 0,
+ 0, 0, 0, 0, 86, 21,
+ 16, 0, 0, 0, 0, 0,
+ 70, 142, 32, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0,
+ 50, 0, 0, 10, 242, 0,
+ 16, 0, 0, 0, 0, 0,
+ 70, 142, 32, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 6, 16, 16, 0, 0, 0,
+ 0, 0, 70, 14, 16, 0,
+ 0, 0, 0, 0, 50, 0,
+ 0, 10, 242, 0, 16, 0,
+ 0, 0, 0, 0, 70, 142,
+ 32, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 166, 26,
+ 16, 0, 0, 0, 0, 0,
+ 70, 14, 16, 0, 0, 0,
+ 0, 0, 50, 0, 0, 10,
+ 242, 32, 16, 0, 2, 0,
+ 0, 0, 70, 142, 32, 0,
+ 0, 0, 0, 0, 3, 0,
+ 0, 0, 246, 31, 16, 0,
+ 0, 0, 0, 0, 70, 14,
+ 16, 0, 0, 0, 0, 0,
+ 62, 0, 0, 1, 83, 84,
+ 65, 84, 148, 0, 0, 0,
+ 9, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 0, 7, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0
+};
+static uint8_t _sgl_fs_bin[] = {
+ 68, 88, 66, 67, 145, 182,
+ 34, 101, 114, 183, 46, 3,
+ 176, 243, 147, 199, 109, 42,
+ 196, 114, 1, 0, 0, 0,
+ 176, 2, 0, 0, 5, 0,
+ 0, 0, 52, 0, 0, 0,
+ 232, 0, 0, 0, 56, 1,
+ 0, 0, 108, 1, 0, 0,
+ 20, 2, 0, 0, 82, 68,
+ 69, 70, 172, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0,
+ 60, 0, 0, 0, 0, 5,
+ 255, 255, 0, 145, 0, 0,
+ 132, 0, 0, 0, 82, 68,
+ 49, 49, 60, 0, 0, 0,
+ 24, 0, 0, 0, 32, 0,
+ 0, 0, 40, 0, 0, 0,
+ 36, 0, 0, 0, 12, 0,
+ 0, 0, 0, 0, 0, 0,
+ 124, 0, 0, 0, 3, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 1, 0,
+ 0, 0, 128, 0, 0, 0,
+ 2, 0, 0, 0, 5, 0,
+ 0, 0, 4, 0, 0, 0,
+ 255, 255, 255, 255, 0, 0,
+ 0, 0, 1, 0, 0, 0,
+ 13, 0, 0, 0, 115, 109,
+ 112, 0, 116, 101, 120, 0,
+ 77, 105, 99, 114, 111, 115,
+ 111, 102, 116, 32, 40, 82,
+ 41, 32, 72, 76, 83, 76,
+ 32, 83, 104, 97, 100, 101,
+ 114, 32, 67, 111, 109, 112,
+ 105, 108, 101, 114, 32, 49,
+ 48, 46, 49, 0, 73, 83,
+ 71, 78, 72, 0, 0, 0,
+ 2, 0, 0, 0, 8, 0,
+ 0, 0, 56, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 15, 3,
+ 0, 0, 65, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 3, 0, 0, 0,
+ 1, 0, 0, 0, 15, 15,
+ 0, 0, 84, 69, 88, 67,
+ 79, 79, 82, 68, 0, 67,
+ 79, 76, 79, 82, 0, 171,
+ 79, 83, 71, 78, 44, 0,
+ 0, 0, 1, 0, 0, 0,
+ 8, 0, 0, 0, 32, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0,
+ 0, 0, 0, 0, 0, 0,
+ 15, 0, 0, 0, 83, 86,
+ 95, 84, 97, 114, 103, 101,
+ 116, 0, 171, 171, 83, 72,
+ 69, 88, 160, 0, 0, 0,
+ 80, 0, 0, 0, 40, 0,
+ 0, 0, 106, 8, 0, 1,
+ 90, 0, 0, 3, 0, 96,
+ 16, 0, 0, 0, 0, 0,
+ 88, 24, 0, 4, 0, 112,
+ 16, 0, 0, 0, 0, 0,
+ 85, 85, 0, 0, 98, 16,
+ 0, 3, 50, 16, 16, 0,
+ 0, 0, 0, 0, 98, 16,
+ 0, 3, 242, 16, 16, 0,
+ 1, 0, 0, 0, 101, 0,
+ 0, 3, 242, 32, 16, 0,
+ 0, 0, 0, 0, 104, 0,
+ 0, 2, 1, 0, 0, 0,
+ 69, 0, 0, 139, 194, 0,
+ 0, 128, 67, 85, 21, 0,
+ 242, 0, 16, 0, 0, 0,
+ 0, 0, 70, 16, 16, 0,
+ 0, 0, 0, 0, 70, 126,
+ 16, 0, 0, 0, 0, 0,
+ 0, 96, 16, 0, 0, 0,
+ 0, 0, 56, 0, 0, 7,
+ 242, 32, 16, 0, 0, 0,
+ 0, 0, 70, 14, 16, 0,
+ 0, 0, 0, 0, 70, 30,
+ 16, 0, 1, 0, 0, 0,
+ 62, 0, 0, 1, 83, 84,
+ 65, 84, 148, 0, 0, 0,
+ 3, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0
+};
#elif defined(SOKOL_DUMMY_BACKEND)
static const char* _sgl_vs_src = "";
static const char* _sgl_fs_src = "";
@@ -1172,8 +1492,15 @@ SOKOL_API_IMPL void sgl_setup(const sgl_desc_t* desc) {
ub->uniforms[1].type = SG_UNIFORMTYPE_MAT4;
shd_desc.fs.images[0].name = "tex";
shd_desc.fs.images[0].type = SG_IMAGETYPE_2D;
- shd_desc.vs.source = _sgl_vs_src;
- shd_desc.fs.source = _sgl_fs_src;
+ #if defined(SOKOL_D3D11)
+ shd_desc.vs.byte_code = _sgl_vs_bin;
+ shd_desc.vs.byte_code_size = sizeof(_sgl_vs_bin);
+ shd_desc.fs.byte_code = _sgl_fs_bin;
+ shd_desc.fs.byte_code_size = sizeof(_sgl_fs_bin);
+ #else
+ shd_desc.vs.source = _sgl_vs_src;
+ shd_desc.fs.source = _sgl_fs_src;
+ #endif
shd_desc.label = "sgl-shader";
_sgl.shd = sg_make_shader(&shd_desc);
sg_pop_debug_group();