diff --git a/engine/bind/v4k.lua b/engine/bind/v4k.lua index 473a68e..55cda4a 100644 --- a/engine/bind/v4k.lua +++ b/engine/bind/v4k.lua @@ -2491,6 +2491,24 @@ int flags; int fx_find(const char *name); void* screenshot(int components); void* screenshot_async(int components); +extern const char *const fs_0_0_shadowmap_lit; +extern const char *const fs_0_0_shadowmap_unlit; +extern const char *const fs_24_4_sprite; +extern const char *const fs_2_4_preamble; +extern const char *const fs_2_4_texel_inv_gamma; +extern const char *const fs_2_4_texel_ycbr_gamma_saturation; +extern const char *const fs_32_4_model; +extern const char *const fs_32_4_model_basic; +extern const char *const fs_3_4_skybox; +extern const char *const fs_3_4_skybox_rayleigh; +extern const char *const fs_main_shadertoy; +extern const char *const vs_0_2_fullscreen_quad_A; +extern const char *const vs_0_2_fullscreen_quad_B; +extern const char *const vs_0_2_fullscreen_quad_B_flipped; +extern const char *const vs_323444143_16_332_model; +extern const char *const vs_324_24_sprite; +extern const char *const vs_332_32; +extern const char *const vs_3_3_skybox; void ddraw_color(unsigned rgb); void ddraw_color_push(unsigned rgb); void ddraw_color_pop(); diff --git a/engine/joint/v4k.h b/engine/joint/v4k.h index 7894a77..4997003 100644 --- a/engine/joint/v4k.h +++ b/engine/joint/v4k.h @@ -16673,6 +16673,27 @@ API void* screenshot(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA API void* screenshot_async(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA #line 0 +#line 1 "v4k_shaders.h" +extern const char *const fs_0_0_shadowmap_lit; +extern const char *const fs_0_0_shadowmap_unlit; +extern const char *const fs_24_4_sprite; +extern const char *const fs_2_4_preamble; +extern const char *const fs_2_4_texel_inv_gamma; +extern const char *const fs_2_4_texel_ycbr_gamma_saturation; +extern const char *const fs_32_4_model; +extern const char *const fs_32_4_model_basic; +extern const char *const fs_3_4_skybox; +extern const char *const fs_3_4_skybox_rayleigh; +extern const char *const fs_main_shadertoy; +extern const char *const vs_0_2_fullscreen_quad_A; +extern const char *const vs_0_2_fullscreen_quad_B; +extern const char *const vs_0_2_fullscreen_quad_B_flipped; +extern const char *const vs_323444143_16_332_model; +extern const char *const vs_324_24_sprite; +extern const char *const vs_332_32; +extern const char *const vs_3_3_skybox; +#line 0 + #line 1 "v4k_renderdd.h" // ----------------------------------------------------------------------------- // debugdraw framework @@ -339080,7 +339101,7 @@ void network_rpc_send(unsigned id, const char *cmdline) { #line 0 #line 1 "v4k_shaders.c" -static const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" +const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" "// uniform mat4 view = mat4(1.0);\n" "uniform vec3 lightPos = vec3(1.0);\n" "uniform float doTexture = 1.;\n" @@ -339192,7 +339213,7 @@ static const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" #endif " }\n"; -static const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" +const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" "// uniform mat4 view = mat4(1.0);\n" "uniform vec3 lightPos = vec3(1.0);\n" "uniform float doTexture = 0.;\n" @@ -339202,7 +339223,7 @@ static const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" " return vec4(1.);\n" " };\n"; -static const char *const fs_24_4_sprite = "//" FILELINE "\n" +const char *const fs_24_4_sprite = "//" FILELINE "\n" "uniform sampler2D u_texture;\n" "\n" "in vec2 vTexCoord;\n" @@ -339256,7 +339277,7 @@ static const char *const fs_24_4_sprite = "//" FILELINE "\n" " fragColor = vColor * texColor;\n" "}\n"; -static const char *const fs_2_4_preamble = "//" FILELINE "\n" +const char *const fs_2_4_preamble = "//" FILELINE "\n" "#define texture2D texture\n" "#define texture2DLod textureLod\n" "#define FRAGCOLOR fragColor\n" @@ -339274,7 +339295,7 @@ static const char *const fs_2_4_preamble = "//" FILELINE "\n" "in vec2 texcoord;\n" "out vec4 fragColor;\n"; -static const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" +const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" "uniform sampler2D texture0; /*unit0*/\n" "uniform float u_inv_gamma;\n" "\n" @@ -339287,7 +339308,7 @@ static const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" " fragcolor.rgb = pow( fragcolor.rgb, vec3( u_inv_gamma ) ); // defaults: 1.0/2.2 gamma\n" "}\n"; -static const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" +const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" "uniform sampler2D u_texture_y; /*unit0*/\n" "uniform sampler2D u_texture_cb; /*unit1*/\n" "uniform sampler2D u_texture_cr; /*unit2*/\n" @@ -339325,7 +339346,7 @@ static const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" "fragcolor = vec4(texel.rgb, 1.0);\n" "}\n"; -static const char *const fs_32_4_model = "//" FILELINE "\n" +const char *const fs_32_4_model = "//" FILELINE "\n" "uniform mat4 model, view;\n" "uniform sampler2D u_texture2d;\n" "uniform vec3 u_coefficients_sh[9];\n" @@ -339398,7 +339419,7 @@ static const char *const fs_32_4_model = "//" FILELINE "\n" " \n" " }\n"; -static const char *const fs_32_4_model_basic = "//" FILELINE "\n" +const char *const fs_32_4_model_basic = "//" FILELINE "\n" "uniform sampler2D fsDiffTex;\n" "uniform sampler2D fsNormalTex;\n" "uniform sampler2D fsPositionTex;\n" @@ -339414,7 +339435,7 @@ static const char *const fs_32_4_model_basic = "//" FILELINE "\n" " fragColor = diff;// * vec4(v_normal.xyz, 1);\n" "}\n"; -static const char *const fs_3_4_skybox = "//" FILELINE "\n" +const char *const fs_3_4_skybox = "//" FILELINE "\n" "uniform samplerCube u_cubemap;\n" "\n" "in vec3 v_direction;\n" @@ -339424,7 +339445,7 @@ static const char *const fs_3_4_skybox = "//" FILELINE "\n" " fragcolor = vec4(texture(u_cubemap, v_direction).rgb, 1.0);\n" "}\n"; -static const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" +const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" "uniform vec3 uSunPos = vec3( 0, 0.1, -1 ); // = [0, Math.cos(theta) * 0.3 + 0.2, -1];\n" "\n" "in vec3 v_direction;\n" @@ -339564,13 +339585,13 @@ static const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" " return iSun * (pRlh * kRlh * totalRlh + pMie * kMie * totalMie);\n" "}\n"; -static const char *const fs_main_shadertoy = "//" FILELINE "\n" +const char *const fs_main_shadertoy = "//" FILELINE "\n" "void mainImage( out vec4 fragColor, in vec2 fragCoord );\n" "void main() {\n" " mainImage(fragColor, texcoord.xy * iResolution);\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" "out vec2 texcoord;\n" "\n" "void main() {\n" @@ -339578,7 +339599,7 @@ static const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" " gl_Position = vec4( texCoord * 2.0 - 1.0, 0.0, 1.0 );\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" "out vec2 uv;\n" "\n" "void main() {\n" @@ -339588,7 +339609,7 @@ static const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" " uv = vec2(x, y); // normal(y),flipped(1.0-y)\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" "out vec2 uv;\n" "\n" "void main() {\n" @@ -339598,7 +339619,7 @@ static const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" " uv = vec2(x, y); // normal(y),flipped(1.0-y)\n" "}\n"; -static const char *const vs_323444143_16_332_model = "//" FILELINE "\n" +const char *const vs_323444143_16_332_model = "//" FILELINE "\n" #ifndef MAX_BONES "#define MAX_BONES 110\n" #endif @@ -339715,7 +339736,7 @@ static const char *const vs_323444143_16_332_model = "//" FILELINE "\n" "}\n" "\n"; -static const char *const vs_324_24_sprite = "//" FILELINE "\n" +const char *const vs_324_24_sprite = "//" FILELINE "\n" "uniform mat4 u_mvp;\n" "\n" "in vec3 att_Position;\n" @@ -339730,7 +339751,7 @@ static const char *const vs_324_24_sprite = "//" FILELINE "\n" " gl_Position = u_mvp * vec4(att_Position, 1.0);\n" "}\n"; -static const char *const vs_332_32 = "//" FILELINE "\n" +const char *const vs_332_32 = "//" FILELINE "\n" "//uniform mat4 u_model, u_view, u_proj;\n" "uniform mat4 u_mvp;\n" "\n" @@ -339765,7 +339786,7 @@ static const char *const vs_332_32 = "//" FILELINE "\n" " do_shadow();\n" "}\n"; -static const char *const vs_3_3_skybox = "//" FILELINE "\n" +const char *const vs_3_3_skybox = "//" FILELINE "\n" "uniform mat4 u_mvp;\n" "\n" "in vec3 att_position;\n" @@ -339776,6 +339797,7 @@ static const char *const vs_3_3_skybox = "//" FILELINE "\n" " gl_Position = position.xyww;\n" " v_direction = att_position;\n" "}\n"; + #line 0 #line 1 "v4k_render.c" diff --git a/engine/split/v4k.h.inl b/engine/split/v4k.h.inl index 309d8de..7420011 100644 --- a/engine/split/v4k.h.inl +++ b/engine/split/v4k.h.inl @@ -133,6 +133,8 @@ extern "C" { {{FILE:v4k_render.h}} +{{FILE:v4k_shaders.h}} + {{FILE:v4k_renderdd.h}} {{FILE:v4k_scene.h}} diff --git a/engine/split/v4k_shaders.c b/engine/split/v4k_shaders.c index b2dab75..f68b93c 100644 --- a/engine/split/v4k_shaders.c +++ b/engine/split/v4k_shaders.c @@ -1,4 +1,4 @@ -static const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" +const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" "// uniform mat4 view = mat4(1.0);\n" "uniform vec3 lightPos = vec3(1.0);\n" "uniform float doTexture = 1.;\n" @@ -110,7 +110,7 @@ static const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" #endif " }\n"; -static const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" +const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" "// uniform mat4 view = mat4(1.0);\n" "uniform vec3 lightPos = vec3(1.0);\n" "uniform float doTexture = 0.;\n" @@ -120,7 +120,7 @@ static const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" " return vec4(1.);\n" " };\n"; -static const char *const fs_24_4_sprite = "//" FILELINE "\n" +const char *const fs_24_4_sprite = "//" FILELINE "\n" "uniform sampler2D u_texture;\n" "\n" "in vec2 vTexCoord;\n" @@ -174,7 +174,7 @@ static const char *const fs_24_4_sprite = "//" FILELINE "\n" " fragColor = vColor * texColor;\n" "}\n"; -static const char *const fs_2_4_preamble = "//" FILELINE "\n" +const char *const fs_2_4_preamble = "//" FILELINE "\n" "#define texture2D texture\n" "#define texture2DLod textureLod\n" "#define FRAGCOLOR fragColor\n" @@ -192,7 +192,7 @@ static const char *const fs_2_4_preamble = "//" FILELINE "\n" "in vec2 texcoord;\n" "out vec4 fragColor;\n"; -static const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" +const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" "uniform sampler2D texture0; /*unit0*/\n" "uniform float u_inv_gamma;\n" "\n" @@ -205,7 +205,7 @@ static const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" " fragcolor.rgb = pow( fragcolor.rgb, vec3( u_inv_gamma ) ); // defaults: 1.0/2.2 gamma\n" "}\n"; -static const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" +const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" "uniform sampler2D u_texture_y; /*unit0*/\n" "uniform sampler2D u_texture_cb; /*unit1*/\n" "uniform sampler2D u_texture_cr; /*unit2*/\n" @@ -243,7 +243,7 @@ static const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" "fragcolor = vec4(texel.rgb, 1.0);\n" "}\n"; -static const char *const fs_32_4_model = "//" FILELINE "\n" +const char *const fs_32_4_model = "//" FILELINE "\n" "uniform mat4 model, view;\n" "uniform sampler2D u_texture2d;\n" "uniform vec3 u_coefficients_sh[9];\n" @@ -316,7 +316,7 @@ static const char *const fs_32_4_model = "//" FILELINE "\n" " \n" " }\n"; -static const char *const fs_32_4_model_basic = "//" FILELINE "\n" +const char *const fs_32_4_model_basic = "//" FILELINE "\n" "uniform sampler2D fsDiffTex;\n" "uniform sampler2D fsNormalTex;\n" "uniform sampler2D fsPositionTex;\n" @@ -332,7 +332,7 @@ static const char *const fs_32_4_model_basic = "//" FILELINE "\n" " fragColor = diff;// * vec4(v_normal.xyz, 1);\n" "}\n"; -static const char *const fs_3_4_skybox = "//" FILELINE "\n" +const char *const fs_3_4_skybox = "//" FILELINE "\n" "uniform samplerCube u_cubemap;\n" "\n" "in vec3 v_direction;\n" @@ -342,7 +342,7 @@ static const char *const fs_3_4_skybox = "//" FILELINE "\n" " fragcolor = vec4(texture(u_cubemap, v_direction).rgb, 1.0);\n" "}\n"; -static const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" +const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" "uniform vec3 uSunPos = vec3( 0, 0.1, -1 ); // = [0, Math.cos(theta) * 0.3 + 0.2, -1];\n" "\n" "in vec3 v_direction;\n" @@ -482,13 +482,13 @@ static const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" " return iSun * (pRlh * kRlh * totalRlh + pMie * kMie * totalMie);\n" "}\n"; -static const char *const fs_main_shadertoy = "//" FILELINE "\n" +const char *const fs_main_shadertoy = "//" FILELINE "\n" "void mainImage( out vec4 fragColor, in vec2 fragCoord );\n" "void main() {\n" " mainImage(fragColor, texcoord.xy * iResolution);\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" "out vec2 texcoord;\n" "\n" "void main() {\n" @@ -496,7 +496,7 @@ static const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" " gl_Position = vec4( texCoord * 2.0 - 1.0, 0.0, 1.0 );\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" "out vec2 uv;\n" "\n" "void main() {\n" @@ -506,7 +506,7 @@ static const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" " uv = vec2(x, y); // normal(y),flipped(1.0-y)\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" "out vec2 uv;\n" "\n" "void main() {\n" @@ -516,7 +516,7 @@ static const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" " uv = vec2(x, y); // normal(y),flipped(1.0-y)\n" "}\n"; -static const char *const vs_323444143_16_332_model = "//" FILELINE "\n" +const char *const vs_323444143_16_332_model = "//" FILELINE "\n" #ifndef MAX_BONES "#define MAX_BONES 110\n" #endif @@ -633,7 +633,7 @@ static const char *const vs_323444143_16_332_model = "//" FILELINE "\n" "}\n" "\n"; -static const char *const vs_324_24_sprite = "//" FILELINE "\n" +const char *const vs_324_24_sprite = "//" FILELINE "\n" "uniform mat4 u_mvp;\n" "\n" "in vec3 att_Position;\n" @@ -648,7 +648,7 @@ static const char *const vs_324_24_sprite = "//" FILELINE "\n" " gl_Position = u_mvp * vec4(att_Position, 1.0);\n" "}\n"; -static const char *const vs_332_32 = "//" FILELINE "\n" +const char *const vs_332_32 = "//" FILELINE "\n" "//uniform mat4 u_model, u_view, u_proj;\n" "uniform mat4 u_mvp;\n" "\n" @@ -683,7 +683,7 @@ static const char *const vs_332_32 = "//" FILELINE "\n" " do_shadow();\n" "}\n"; -static const char *const vs_3_3_skybox = "//" FILELINE "\n" +const char *const vs_3_3_skybox = "//" FILELINE "\n" "uniform mat4 u_mvp;\n" "\n" "in vec3 att_position;\n" @@ -694,3 +694,4 @@ static const char *const vs_3_3_skybox = "//" FILELINE "\n" " gl_Position = position.xyww;\n" " v_direction = att_position;\n" "}\n"; + diff --git a/engine/split/v4k_shaders.h b/engine/split/v4k_shaders.h new file mode 100644 index 0000000..8f8154c --- /dev/null +++ b/engine/split/v4k_shaders.h @@ -0,0 +1,18 @@ +extern const char *const fs_0_0_shadowmap_lit; +extern const char *const fs_0_0_shadowmap_unlit; +extern const char *const fs_24_4_sprite; +extern const char *const fs_2_4_preamble; +extern const char *const fs_2_4_texel_inv_gamma; +extern const char *const fs_2_4_texel_ycbr_gamma_saturation; +extern const char *const fs_32_4_model; +extern const char *const fs_32_4_model_basic; +extern const char *const fs_3_4_skybox; +extern const char *const fs_3_4_skybox_rayleigh; +extern const char *const fs_main_shadertoy; +extern const char *const vs_0_2_fullscreen_quad_A; +extern const char *const vs_0_2_fullscreen_quad_B; +extern const char *const vs_0_2_fullscreen_quad_B_flipped; +extern const char *const vs_323444143_16_332_model; +extern const char *const vs_324_24_sprite; +extern const char *const vs_332_32; +extern const char *const vs_3_3_skybox; diff --git a/engine/v4k.c b/engine/v4k.c index 7d3cc5f..a88dab6 100644 --- a/engine/v4k.c +++ b/engine/v4k.c @@ -10137,7 +10137,7 @@ void network_rpc_send(unsigned id, const char *cmdline) { #line 0 #line 1 "v4k_shaders.c" -static const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" +const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" "// uniform mat4 view = mat4(1.0);\n" "uniform vec3 lightPos = vec3(1.0);\n" "uniform float doTexture = 1.;\n" @@ -10249,7 +10249,7 @@ static const char *const fs_0_0_shadowmap_lit = "//" FILELINE "\n" #endif " }\n"; -static const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" +const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" "// uniform mat4 view = mat4(1.0);\n" "uniform vec3 lightPos = vec3(1.0);\n" "uniform float doTexture = 0.;\n" @@ -10259,7 +10259,7 @@ static const char *const fs_0_0_shadowmap_unlit = "//" FILELINE "\n" " return vec4(1.);\n" " };\n"; -static const char *const fs_24_4_sprite = "//" FILELINE "\n" +const char *const fs_24_4_sprite = "//" FILELINE "\n" "uniform sampler2D u_texture;\n" "\n" "in vec2 vTexCoord;\n" @@ -10313,7 +10313,7 @@ static const char *const fs_24_4_sprite = "//" FILELINE "\n" " fragColor = vColor * texColor;\n" "}\n"; -static const char *const fs_2_4_preamble = "//" FILELINE "\n" +const char *const fs_2_4_preamble = "//" FILELINE "\n" "#define texture2D texture\n" "#define texture2DLod textureLod\n" "#define FRAGCOLOR fragColor\n" @@ -10331,7 +10331,7 @@ static const char *const fs_2_4_preamble = "//" FILELINE "\n" "in vec2 texcoord;\n" "out vec4 fragColor;\n"; -static const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" +const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" "uniform sampler2D texture0; /*unit0*/\n" "uniform float u_inv_gamma;\n" "\n" @@ -10344,7 +10344,7 @@ static const char *const fs_2_4_texel_inv_gamma = "//" FILELINE "\n" " fragcolor.rgb = pow( fragcolor.rgb, vec3( u_inv_gamma ) ); // defaults: 1.0/2.2 gamma\n" "}\n"; -static const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" +const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" "uniform sampler2D u_texture_y; /*unit0*/\n" "uniform sampler2D u_texture_cb; /*unit1*/\n" "uniform sampler2D u_texture_cr; /*unit2*/\n" @@ -10382,7 +10382,7 @@ static const char *const fs_2_4_texel_ycbr_gamma_saturation = "//" FILELINE "\n" "fragcolor = vec4(texel.rgb, 1.0);\n" "}\n"; -static const char *const fs_32_4_model = "//" FILELINE "\n" +const char *const fs_32_4_model = "//" FILELINE "\n" "uniform mat4 model, view;\n" "uniform sampler2D u_texture2d;\n" "uniform vec3 u_coefficients_sh[9];\n" @@ -10455,7 +10455,7 @@ static const char *const fs_32_4_model = "//" FILELINE "\n" " \n" " }\n"; -static const char *const fs_32_4_model_basic = "//" FILELINE "\n" +const char *const fs_32_4_model_basic = "//" FILELINE "\n" "uniform sampler2D fsDiffTex;\n" "uniform sampler2D fsNormalTex;\n" "uniform sampler2D fsPositionTex;\n" @@ -10471,7 +10471,7 @@ static const char *const fs_32_4_model_basic = "//" FILELINE "\n" " fragColor = diff;// * vec4(v_normal.xyz, 1);\n" "}\n"; -static const char *const fs_3_4_skybox = "//" FILELINE "\n" +const char *const fs_3_4_skybox = "//" FILELINE "\n" "uniform samplerCube u_cubemap;\n" "\n" "in vec3 v_direction;\n" @@ -10481,7 +10481,7 @@ static const char *const fs_3_4_skybox = "//" FILELINE "\n" " fragcolor = vec4(texture(u_cubemap, v_direction).rgb, 1.0);\n" "}\n"; -static const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" +const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" "uniform vec3 uSunPos = vec3( 0, 0.1, -1 ); // = [0, Math.cos(theta) * 0.3 + 0.2, -1];\n" "\n" "in vec3 v_direction;\n" @@ -10621,13 +10621,13 @@ static const char *const fs_3_4_skybox_rayleigh = "//" FILELINE "\n" " return iSun * (pRlh * kRlh * totalRlh + pMie * kMie * totalMie);\n" "}\n"; -static const char *const fs_main_shadertoy = "//" FILELINE "\n" +const char *const fs_main_shadertoy = "//" FILELINE "\n" "void mainImage( out vec4 fragColor, in vec2 fragCoord );\n" "void main() {\n" " mainImage(fragColor, texcoord.xy * iResolution);\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" "out vec2 texcoord;\n" "\n" "void main() {\n" @@ -10635,7 +10635,7 @@ static const char *const vs_0_2_fullscreen_quad_A = "//" FILELINE "\n" " gl_Position = vec4( texCoord * 2.0 - 1.0, 0.0, 1.0 );\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" "out vec2 uv;\n" "\n" "void main() {\n" @@ -10645,7 +10645,7 @@ static const char *const vs_0_2_fullscreen_quad_B = "//" FILELINE "\n" " uv = vec2(x, y); // normal(y),flipped(1.0-y)\n" "}\n"; -static const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" +const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" "out vec2 uv;\n" "\n" "void main() {\n" @@ -10655,7 +10655,7 @@ static const char *const vs_0_2_fullscreen_quad_B_flipped = "//" FILELINE "\n" " uv = vec2(x, y); // normal(y),flipped(1.0-y)\n" "}\n"; -static const char *const vs_323444143_16_332_model = "//" FILELINE "\n" +const char *const vs_323444143_16_332_model = "//" FILELINE "\n" #ifndef MAX_BONES "#define MAX_BONES 110\n" #endif @@ -10772,7 +10772,7 @@ static const char *const vs_323444143_16_332_model = "//" FILELINE "\n" "}\n" "\n"; -static const char *const vs_324_24_sprite = "//" FILELINE "\n" +const char *const vs_324_24_sprite = "//" FILELINE "\n" "uniform mat4 u_mvp;\n" "\n" "in vec3 att_Position;\n" @@ -10787,7 +10787,7 @@ static const char *const vs_324_24_sprite = "//" FILELINE "\n" " gl_Position = u_mvp * vec4(att_Position, 1.0);\n" "}\n"; -static const char *const vs_332_32 = "//" FILELINE "\n" +const char *const vs_332_32 = "//" FILELINE "\n" "//uniform mat4 u_model, u_view, u_proj;\n" "uniform mat4 u_mvp;\n" "\n" @@ -10822,7 +10822,7 @@ static const char *const vs_332_32 = "//" FILELINE "\n" " do_shadow();\n" "}\n"; -static const char *const vs_3_3_skybox = "//" FILELINE "\n" +const char *const vs_3_3_skybox = "//" FILELINE "\n" "uniform mat4 u_mvp;\n" "\n" "in vec3 att_position;\n" @@ -10833,6 +10833,7 @@ static const char *const vs_3_3_skybox = "//" FILELINE "\n" " gl_Position = position.xyww;\n" " v_direction = att_position;\n" "}\n"; + #line 0 #line 1 "v4k_render.c" diff --git a/engine/v4k.h b/engine/v4k.h index e4c9c01..51615d2 100644 --- a/engine/v4k.h +++ b/engine/v4k.h @@ -2756,6 +2756,27 @@ API void* screenshot(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA API void* screenshot_async(int components); // 3 RGB, 4 RGBA, -3 BGR, -4 BGRA #line 0 +#line 1 "v4k_shaders.h" +extern const char *const fs_0_0_shadowmap_lit; +extern const char *const fs_0_0_shadowmap_unlit; +extern const char *const fs_24_4_sprite; +extern const char *const fs_2_4_preamble; +extern const char *const fs_2_4_texel_inv_gamma; +extern const char *const fs_2_4_texel_ycbr_gamma_saturation; +extern const char *const fs_32_4_model; +extern const char *const fs_32_4_model_basic; +extern const char *const fs_3_4_skybox; +extern const char *const fs_3_4_skybox_rayleigh; +extern const char *const fs_main_shadertoy; +extern const char *const vs_0_2_fullscreen_quad_A; +extern const char *const vs_0_2_fullscreen_quad_B; +extern const char *const vs_0_2_fullscreen_quad_B_flipped; +extern const char *const vs_323444143_16_332_model; +extern const char *const vs_324_24_sprite; +extern const char *const vs_332_32; +extern const char *const vs_3_3_skybox; +#line 0 + #line 1 "v4k_renderdd.h" // ----------------------------------------------------------------------------- // debugdraw framework diff --git a/engine/v4k.html b/engine/v4k.html index 6a04429..2554bb0 100644 --- a/engine/v4k.html +++ b/engine/v4k.html @@ -596,7 +596,7 @@ details > summary::-webkit-details-marker { |Version: | 2023.7 | |:--------------|:------------| |Branch: | main | -|Commit: | 46 | +|Commit: | 50 | # [Vยท4ยทK 2023.7 ](https://dev.v4.games/zaklaus/v4k) @@ -8556,6 +8556,170 @@ Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#str +## shaders + + +
๐Ÿ…ƒ extern const char* const fs_0_0_shadowmap_lit; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_0_0_shadowmap_unlit; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_24_4_sprite; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_2_4_preamble; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_2_4_texel_inv_gamma; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_2_4_texel_ycbr_gamma_saturation; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_32_4_model; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_32_4_model_basic; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_3_4_skybox; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_3_4_skybox_rayleigh; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const fs_main_shadertoy; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const vs_0_2_fullscreen_quad_A; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const vs_0_2_fullscreen_quad_B; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const vs_0_2_fullscreen_quad_B_flipped; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const vs_323444143_16_332_model; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const vs_324_24_sprite; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const vs_332_32; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ + +
๐Ÿ…ƒ extern const char* const vs_3_3_skybox; + +Under construction. Yet to be documented. + +Other documentation examples: [dll](#dll), [strsplit](#strsplit), [strjoin](#strjoin), [IMAGE_FLAGS](#IMAGE_FLAGS) or [image_t](#image_t). + +
+ ## renderdd diff --git a/tools/glsl_join.bat b/tools/glsl_join.bat index befe5eb..2ed9b39 100644 --- a/tools/glsl_join.bat +++ b/tools/glsl_join.bat @@ -1,3 +1,4 @@ #!/bin/bash 2>nul python tools/glsl_join.py --output ./engine/split/v4k_shaders.c +python tools/glsl_join.py --output ./engine/split/v4k_shaders.h --header diff --git a/tools/glsl_join.py b/tools/glsl_join.py index 55ffa0c..ad13f61 100644 --- a/tools/glsl_join.py +++ b/tools/glsl_join.py @@ -23,19 +23,39 @@ def glsl_to_c(output_filename: str): shader_code_escaped += "\n" variable_name = os.path.splitext(filename)[0] # Remove the .glsl extension - c_shader_code = f'static const char *const {variable_name} = \"//\" FILELINE \"\\n\"\n{shader_code_escaped}' + c_shader_code = f'const char *const {variable_name} = \"//\" FILELINE \"\\n\"\n{shader_code_escaped}' all_shaders.append(c_shader_code) # Write all shaders to the C file with open(output_filename, 'w') as f: - f.write('\n'.join(all_shaders)) + f.write('\n'.join(all_shaders)+'\n') + +def glsl_to_h(output_filename: str): + glsl_directory = "engine/shaders/" + all_shaders = [] + + for filename in os.listdir(glsl_directory): + if filename.endswith(".glsl"): + with open(os.path.join(glsl_directory, filename), 'r') as f: + variable_name = os.path.splitext(filename)[0] # Remove the .glsl extension + h_shader_code = f'extern const char *const {variable_name};' + all_shaders.append(h_shader_code) + + # Write all shaders to the C file + with open(output_filename, 'w') as f: + f.write('\n'.join(all_shaders)+'\n') def main(): parser = argparse.ArgumentParser() parser.add_argument("--output", required=True, help="Output filename for the C file") + parser.add_argument("--header", required=False, help="Is header file output requested", action=argparse.BooleanOptionalAction) args = parser.parse_args() - glsl_to_c(args.output) + + if args.header is True: + glsl_to_h(args.output) + else: + glsl_to_c(args.output) if __name__ == "__main__": main() diff --git a/tools/glsl_split.py b/tools/glsl_split.py index e7909b2..77c3139 100644 --- a/tools/glsl_split.py +++ b/tools/glsl_split.py @@ -34,7 +34,7 @@ def c_to_glsl(input_filename: str): for line in lines: if not capturing: - match = re.search(r'static const char \*const ([a-zA-Z0-9_]+) =', line) + match = re.search(r'const char \*const ([a-zA-Z0-9_]+) =', line) if match: output_filename = f"engine/shaders/{match.group(1)}.glsl" capturing = True