Don't write stuff when it not needed

This commit is contained in:
korenkonder
2024-08-31 18:33:45 +03:00
parent 1ff83b2b21
commit 33547fed55
12 changed files with 1121 additions and 717 deletions
+50 -23
View File
@@ -73,31 +73,58 @@ void fog::data_set(fog_id id) {
if (type == FOG_NONE)
return;
float_t density = get_density();
float_t start = get_start();
float_t end = get_end();
if (start >= end)
start = end - 0.01f;
vec4 params;
params.x = density;
params.y = start;
params.z = end;
params.w = 1.0f / (end - start);
extern render_context* rctx_ptr;
switch (id) {
case FOG_DEPTH:
get_color(rctx_ptr->obj_scene.g_fog_depth_color);
rctx_ptr->obj_scene.g_fog_state_params = params;
break;
case FOG_HEIGHT:
get_color(rctx_ptr->obj_scene.g_fog_height_color);
rctx_ptr->obj_scene.g_fog_height_params = params;
break;
case FOG_BUMP:
rctx_ptr->obj_scene.g_fog_bump_params = params;
break;
case FOG_DEPTH: {
float_t density = get_density();
float_t start = get_start();
float_t end = get_end();
if (start >= end)
start = end - 0.01f;
vec4 color;
get_color(color);
render_context::fog_params params = {};
rctx_ptr->get_scene_fog_params(params);
params.density = density;
params.start = start;
params.end = end;
params.depth_color = color;
rctx_ptr->set_scene_fog_params(params);
} break;
case FOG_HEIGHT: {
float_t density = get_density();
float_t start = get_start();
float_t end = get_end();
if (start >= end)
start = end - 0.01f;
vec4 color;
get_color(color);
render_context::fog_params params = {};
rctx_ptr->get_scene_fog_params(params);
params.height_params.x = density;
params.height_params.y = start;
params.height_params.z = end;
params.height_params.w = 1.0f / (end - start);
params.height_color = color;
rctx_ptr->set_scene_fog_params(params);
} break;
case FOG_BUMP: {
float_t density = get_density();
float_t start = get_start();
float_t end = get_end();
if (start >= end)
start = end - 0.01f;
render_context::fog_params params = {};
rctx_ptr->get_scene_fog_params(params);
params.bump_params.x = density;
params.bump_params.y = start;
params.bump_params.z = end;
params.bump_params.w = 1.0f / (end - start);
rctx_ptr->set_scene_fog_params(params);
} break;
}
}