mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-07-09 16:01:14 +00:00
Make uShaderFlagsEnabled
This commit is contained in:
parent
98cc5f70c2
commit
2da23114e4
2 changed files with 8 additions and 1 deletions
|
|
@ -1166,7 +1166,7 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t
|
|||
cm->use_fog = (rdp.other_mode_l >> 30) == G_BL_CLR_FOG;
|
||||
cm->light_map = (rsp.geometry_mode & G_LIGHT_MAP_EXT) == G_LIGHT_MAP_EXT;
|
||||
cm->tex_persp = (rdp.other_mode_h & G_TP_PERSP) == G_TP_PERSP;
|
||||
cm->world_geometry = gShaderFlagsEnabled && (v1->world_geometry && v2->world_geometry && v3->world_geometry);
|
||||
cm->world_geometry = (v1->world_geometry && v2->world_geometry && v3->world_geometry);
|
||||
|
||||
if (cm->texture_edge) {
|
||||
cm->use_alpha = true;
|
||||
|
|
@ -2430,6 +2430,8 @@ void gfx_set_builtin_uniforms(void) {
|
|||
gfx_rapi->set_uniform(NULL, "uAspectRatio", SHADER_UNIFORM_TYPE_FLOAT, &aspectRatio, 1);
|
||||
gfx_rapi->set_uniform(NULL, "uXAdjustRatio", SHADER_UNIFORM_TYPE_FLOAT, &xAdjustRatio, 1);
|
||||
|
||||
int shaderFlagEnabled = gShaderFlagsEnabled ? 1 : 0;
|
||||
gfx_rapi->set_uniform(NULL, "uShaderFlagsEnabled", SHADER_UNIFORM_TYPE_BOOL, &shaderFlagEnabled, 1);
|
||||
gfx_rapi->set_uniform(NULL, "uShaderFlags", SHADER_UNIFORM_TYPE_INT, gShaderFlags, SHADER_FLAG_MAX);
|
||||
gfx_rapi->set_uniform(NULL, "uShaderFlagValues", SHADER_UNIFORM_TYPE_FLOAT, gShaderFlagValues, SHADER_FLAG_MAX);
|
||||
gfx_update_matrices();
|
||||
|
|
|
|||
|
|
@ -349,6 +349,7 @@ char *gfx_get_default_fragment_shader_from_cc(struct ColorCombiner *cc) {
|
|||
}
|
||||
|
||||
if (world_geometry) {
|
||||
append_line(fs_buf, &fs_len, "uniform bool uShaderFlagsEnabled;");
|
||||
fs_len += sprintf(fs_buf + fs_len, "uniform int uShaderFlags[%d];\n", SHADER_FLAG_MAX);
|
||||
fs_len += sprintf(fs_buf + fs_len, "uniform float uShaderFlagValues[%d];\n", SHADER_FLAG_MAX);
|
||||
}
|
||||
|
|
@ -404,6 +405,8 @@ char *gfx_get_default_fragment_shader_from_cc(struct ColorCombiner *cc) {
|
|||
// TODO discard if alpha is 0?
|
||||
|
||||
if (world_geometry) {
|
||||
append_line(fs_buf, &fs_len, "if (uShaderFlagsEnabled == true) {");
|
||||
|
||||
// hue
|
||||
append_line(fs_buf, &fs_len, "if (uShaderFlags[0] == 1) {");
|
||||
append_line(fs_buf, &fs_len, "vec3 hsv = rgb2hsv(texel.rgb);");
|
||||
|
|
@ -450,6 +453,8 @@ char *gfx_get_default_fragment_shader_from_cc(struct ColorCombiner *cc) {
|
|||
append_line(fs_buf, &fs_len, "float scan = sin(gl_FragCoord.y * 1.5) * 0.04;");
|
||||
append_line(fs_buf, &fs_len, "texel.rgb -= scan * uShaderFlagValues[7];");
|
||||
append_line(fs_buf, &fs_len, "}");
|
||||
|
||||
append_line(fs_buf, &fs_len, "}");
|
||||
}
|
||||
|
||||
if (opt_fog) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue