diff --git a/src/CRE/render.cpp b/src/CRE/render.cpp index 937e5b0d..c6483e20 100644 --- a/src/CRE/render.cpp +++ b/src/CRE/render.cpp @@ -98,7 +98,7 @@ namespace rndr { fade_alpha = -1.0f; - update_lut = true; + update_lut = 1; lens_shaft_inv_scale = 1.0f; lens_flare = 1.0f; @@ -711,6 +711,10 @@ namespace rndr { return auto_exposure; } + int32_t Render::get_cam_blur() { + return cam_blur; + } + float_t Render::get_exposure() { return exposure; } @@ -747,6 +751,10 @@ namespace rndr { return intensity; } + int32_t Render::get_mlaa() { + return mlaa; + } + vec3 Render::get_radius() { return radius; } @@ -1014,7 +1022,7 @@ namespace rndr { if (index == 1) scene_fade_index = 0; - update = true; + update = 1; } void Render::reset_tone_trans(int32_t index) { @@ -1025,7 +1033,7 @@ namespace rndr { if (index == 1) tone_trans_index = 0; - update = true; + update = 1; } void Render::resize(int32_t width, int32_t height) { @@ -1101,43 +1109,58 @@ namespace rndr { void Render::set_auto_exposure(bool value) { auto_exposure = value; + update = 1; + } + + void Render::set_cam_blur(int32_t value) { + cam_blur = value; + update = 1; } void Render::set_exposure(float_t value) { exposure = value; + update = 1; } void Render::set_exposure_rate(float_t value) { exposure_rate = value; + update = 1; } void Render::set_gamma(float_t value) { if (value != gamma) { gamma = value; - update_lut = true; + update_lut = 1; } } void Render::set_gamma_rate(float_t value) { if (value != gamma_rate) { gamma_rate = value; - update_lut = true; + update_lut = 1; } } void Render::set_intensity(const vec3& value) { intensity = vec3::clamp(value, 0.0f, 2.0f); + update = 1; } void Render::set_lens(vec3 value) { lens_flare = value.x; lens_shaft = value.y; lens_ghost = value.z; - update = true; + update = 1; + } + + void Render::set_mlaa(int32_t value) { + mlaa = value; + update = 1; } void Render::set_radius(const vec3& value) { radius = vec3::clamp(value, 1.0f, 3.0f); + update = 1; } void Render::set_saturate_coeff(float_t value, int32_t index, bool lock) { @@ -1145,11 +1168,11 @@ namespace rndr { return; saturate_coeff[index] = value; - update_lut = true; - update = true; + update_lut = 1; + update = 1; if (lock) { - saturate_lock = true; + saturate_lock = 1; saturate_index = 0; } else if (index == 1) @@ -1159,7 +1182,7 @@ namespace rndr { void Render::set_saturate_power(int32_t value) { if (value != saturate_power) { saturate_power = value; - update_lut = true; + update_lut = 1; } } @@ -1177,7 +1200,7 @@ namespace rndr { if (index == 1) scene_fade_index = 1; - update = true; + update = 1; } void Render::set_scene_fade_blend_func(int32_t value, int32_t index) { @@ -1188,7 +1211,7 @@ namespace rndr { if (index == 1) scene_fade_index = 1; - update = true; + update = 1; } @@ -1197,7 +1220,7 @@ namespace rndr { if (index == 1) scene_fade_index = 1; - update = true; + update = 1; } void Render::set_screen_res(int32_t x_offset, int32_t y_offset, int32_t width, int32_t height) { @@ -1207,7 +1230,7 @@ namespace rndr { screen_height = min_def(height, this->height); update_res(false, -1); - update = true; + update = 1; } void Render::set_taa(int32_t value) { @@ -1236,7 +1259,7 @@ namespace rndr { if (index == 1) tone_trans_index = 1; - update = true; + update = 1; } void Render::downsample() { @@ -1921,8 +1944,8 @@ namespace rndr { if (!update_lut) return; - update_lut = false; - saturate_lock = false; + update_lut = 0; + saturate_lock = 0; const float_t tone_map_scale = (float_t)(1.0 / (double_t)TONE_MAP_SAT_GAMMA_SAMPLES); const int32_t tone_map_size = 16 * TONE_MAP_SAT_GAMMA_SAMPLES; diff --git a/src/CRE/render.hpp b/src/CRE/render.hpp index fa71bb7b..e577d510 100644 --- a/src/CRE/render.hpp +++ b/src/CRE/render.hpp @@ -194,6 +194,7 @@ namespace rndr { bool frame_texture_unload(int32_t slot, texture* tex); void free(); bool get_auto_exposure(); + int32_t get_cam_blur(); float_t get_exposure(); float_t get_exposure_rate(); float_t get_gamma(); @@ -202,6 +203,7 @@ namespace rndr { vec3 get_lens(); float_t get_lens_flare_appear_power(); float_t get_lens_flare_power(); + int32_t get_mlaa(); vec3 get_radius(); float_t get_saturate_coeff(); int32_t get_saturate_power(); @@ -224,12 +226,14 @@ namespace rndr { void reset_tone_trans(int32_t index); void resize(int32_t width, int32_t height); void set_auto_exposure(bool value); + void set_cam_blur(int32_t value); void set_exposure(float_t value); void set_exposure_rate(float_t value); void set_gamma(float_t value); void set_gamma_rate(float_t value); void set_intensity(const vec3& value); void set_lens(vec3 value); + void set_mlaa(int32_t value); void set_radius(const vec3& value); void set_saturate_coeff(float_t value, int32_t index, bool lock); void set_saturate_power(int32_t value); diff --git a/src/CRE/stage.cpp b/src/CRE/stage.cpp index 7abf27f5..be701602 100644 --- a/src/CRE/stage.cpp +++ b/src/CRE/stage.cpp @@ -568,8 +568,7 @@ static void stage_free(stage* s) { texture_storage_get_texture(s->stage_data->movie_texture)); render_manager->set_shadow_true(); - //rctx_ptr->render.field_14 = 0; - //rctx_ptr->render.field_ED8 = 1; + rctx_ptr->render.set_cam_blur(0); npr_cloth_spec_color.w = 1.0f; render_manager->field_31D = false; render_manager->field_31E = false; @@ -664,8 +663,7 @@ static void stage_set(stage* s, stage* other) { render_manager->field_31F = false; render_manager->field_320 = false; render_manager->set_shadow_true(); - //rctx_ptr->render.field_14 = 0; - //rctx_ptr->render.field_ED8 = 1; + rctx_ptr->render.set_cam_blur(0); npr_cloth_spec_color.w = 1.0f; render_manager->set_npr_param(0); light_chara_ambient = false; diff --git a/src/CRE/stage_modern.cpp b/src/CRE/stage_modern.cpp index c9344995..64820976 100644 --- a/src/CRE/stage_modern.cpp +++ b/src/CRE/stage_modern.cpp @@ -566,8 +566,7 @@ static void stage_modern_free(stage_modern* s) { texture_storage_get_texture(s->stage_data->movie_texture)); render_manager->set_shadow_true(); - //rctx_ptr->render.field_14 = 0; - //rctx_ptr->render.field_ED8 = 1; + rctx_ptr->render.set_cam_blur(0); npr_cloth_spec_color.w = 1.0f; render_manager->field_31D = false; render_manager->field_31E = false; @@ -655,8 +654,7 @@ static void stage_modern_set(stage_modern* s, stage_modern* other) { render_manager->field_31F = false; render_manager->field_320 = false; render_manager->set_shadow_true(); - //rctx_ptr->render.field_14 = 0; - //rctx_ptr->render.field_ED8 = 1; + rctx_ptr->render.set_cam_blur(0); npr_cloth_spec_color.w = 1.0f; render_manager->set_npr_param(0); light_chara_ambient = false; diff --git a/src/ReDIVA/pv_game/pv_game.cpp b/src/ReDIVA/pv_game/pv_game.cpp index 6e9289f1..43312b05 100644 --- a/src/ReDIVA/pv_game/pv_game.cpp +++ b/src/ReDIVA/pv_game/pv_game.cpp @@ -1189,7 +1189,7 @@ void pv_game::change_field(size_t field, ssize_t dsc_time, ssize_t curr_time) { light_param_data_storage_data_set_pv_cut((int32_t)field); rctx_ptr->render_manager->set_npr_param(next_field_data.npr_type); - //rctx_ptr->render.set_cam_blur(next_field_data.cam_blur); + rctx_ptr->render.set_cam_blur(next_field_data.cam_blur); if (next_field_data.sdw_off) rctx_ptr->render_manager->set_shadow_false();