mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-08 22:50:08 +03:00
Refactor of Shadow struct
This commit is contained in:
+2
-2
@@ -4470,7 +4470,7 @@ static void auth_3d_m_object_hrc_disp(auth_3d_m_object_hrc* moh, auth_3d* auth,
|
||||
disp_manager.set_obj_flags(flags);
|
||||
disp_manager.set_shadow_type(shadow_type);
|
||||
|
||||
shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
if (shad && flags & mdl::OBJ_SHADOW) {
|
||||
disp_manager.set_shadow_type(SHADOW_STAGE);
|
||||
|
||||
@@ -6330,7 +6330,7 @@ static void auth_3d_object_hrc_disp(auth_3d_object_hrc* oh, auth_3d* auth, rende
|
||||
break;
|
||||
}
|
||||
|
||||
shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
if (shad) {
|
||||
vec3 pos = *(vec3*)&m->row3;
|
||||
pos.y -= 0.2f;
|
||||
|
||||
+59
-43
@@ -3092,9 +3092,9 @@ namespace rndr {
|
||||
for (bool& i : draw_pass_3d)
|
||||
i = true;
|
||||
|
||||
shadow_ptr = new ::shadow;
|
||||
shadow_ptr = new Shadow;
|
||||
if (shadow_ptr)
|
||||
shadow_ptr->init_data();
|
||||
shadow_ptr->InitData();
|
||||
|
||||
for (int32_t i = 0; i < 9; i++) {
|
||||
const struc_189* v2 = &stru_140A24420[i];
|
||||
@@ -3565,7 +3565,7 @@ void render_context::disp() {
|
||||
draw_state.stats_prev = draw_state.stats;
|
||||
draw_state.stats.reset();
|
||||
app::TaskWork::Disp();
|
||||
render_manager.shadow_ptr->ctrl(this);
|
||||
render_manager.shadow_ptr->Ctrl(this);
|
||||
int32_t sprite_index = sprite_manager_get_index();
|
||||
//sprite_manager_set_index(3);
|
||||
sprite_manager_set_index(0);
|
||||
@@ -3780,47 +3780,18 @@ void render_context::light_param_data_face_set(light_param_face* face) {
|
||||
this->face.set_direction(face->direction);
|
||||
}
|
||||
|
||||
shadow::shadow() : field_8(), field_158(), view_point(), interest(),
|
||||
field_1A8(), view_point_shared(), interest_shared(), field_2F0() {
|
||||
view_region = 1.2f;
|
||||
range = 1.0f;
|
||||
for (int32_t i = 0; i < 2; i++) {
|
||||
view_point[i] = 1.0f;
|
||||
field_1C0[i] = 0.0f;
|
||||
field_1C8[i] = 0.0f;
|
||||
field_200[i] = i;
|
||||
}
|
||||
view_mat[0] = mat4_identity;
|
||||
view_mat[1] = mat4_identity;
|
||||
blur_filter = BLUR_FILTER_9;
|
||||
near_blur = 1;
|
||||
field_2BC = 2;
|
||||
far_blur = 1;
|
||||
distance = 4.0f;
|
||||
field_2C4 = 0.4f;
|
||||
z_near = 0.1f;
|
||||
z_far = 20.0f;
|
||||
field_2D0 = 1.4f;
|
||||
field_2D4 = 10000.0f;
|
||||
field_2D8 = 80.0f;
|
||||
field_2DC = 2.0f;
|
||||
field_2E0 = 0.05f;
|
||||
ambient = 0.4f;
|
||||
field_2EC = 0;
|
||||
direction = vec3(0.0f, -1.0f, -1.0f) * (1.0f / sqrtf(2.0f));
|
||||
field_2E8 = false;
|
||||
self_shadow = true;
|
||||
blur_filter_enable[0] = true;
|
||||
blur_filter_enable[1] = true;
|
||||
field_2F5 = false;
|
||||
field_208 = (z_far - z_near) * 0.5f;
|
||||
Shadow::Shadow() : curr_render_textures(), view_region(), range(), field_1C0(), field_1C8(),
|
||||
field_200(), field_208(), near_blur(), blur_filter(), far_blur(), field_2BC(), distance(),
|
||||
field_2C4(), z_near(), z_far(), field_2D0(), field_2D4(), field_2D8(), field_2DC(), field_2E0(),
|
||||
ambient(), field_2E8(), field_2EC(), field_2F0(), self_shadow(), blur_filter_enable(), field_2F5() {
|
||||
ResetData();
|
||||
}
|
||||
|
||||
shadow::~shadow() {
|
||||
|
||||
Shadow::~Shadow() {
|
||||
Reset();
|
||||
}
|
||||
|
||||
void shadow::ctrl(render_context* rctx) {
|
||||
void Shadow::Ctrl(render_context* rctx) {
|
||||
for (int32_t i = 0; i < 2; i++)
|
||||
field_2F0[i] = false;
|
||||
|
||||
@@ -4065,7 +4036,7 @@ void shadow::ctrl(render_context* rctx) {
|
||||
i.clear();
|
||||
}
|
||||
|
||||
int32_t shadow::init_data() {
|
||||
int32_t Shadow::InitData() {
|
||||
struct shadow_texture_init_params {
|
||||
int32_t width;
|
||||
int32_t height;
|
||||
@@ -4085,12 +4056,12 @@ int32_t shadow::init_data() {
|
||||
|
||||
shadow_texture_init_params* v3 = init_params;
|
||||
for (int32_t i = 0; i < 8; i++, v3++)
|
||||
if (field_8[i].init(v3->width, v3->height,
|
||||
if (render_textures[i].init(v3->width, v3->height,
|
||||
v3->max_level, v3->color_format, v3->depth_format) < 0)
|
||||
return -1;
|
||||
|
||||
for (int32_t i = 0; i < 4; i++) {
|
||||
gl_state_bind_texture_2d(field_8[i == 3 ? 7 : i].color_texture->tex);
|
||||
gl_state_bind_texture_2d(render_textures[i == 3 ? 7 : i].color_texture->tex);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
|
||||
static const vec4 border_color = 1.0f;
|
||||
@@ -4101,6 +4072,51 @@ int32_t shadow::init_data() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Shadow::Reset() {
|
||||
for (render_texture& i : render_textures)
|
||||
i.free();
|
||||
|
||||
ResetData();
|
||||
}
|
||||
|
||||
void Shadow::ResetData() {
|
||||
view_region = 1.2f;
|
||||
range = 1.0f;
|
||||
|
||||
for (int32_t i = 0; i < 2; i++) {
|
||||
view_point[i] = 1.0f;
|
||||
field_1C0[i] = 0.0f;
|
||||
field_1C8[i] = 0.0f;
|
||||
field_200[i] = i;
|
||||
}
|
||||
|
||||
for (render_texture*& i : curr_render_textures)
|
||||
i = 0;
|
||||
|
||||
view_mat[0] = mat4_identity;
|
||||
view_mat[1] = mat4_identity;
|
||||
blur_filter = BLUR_FILTER_9;
|
||||
near_blur = 1;
|
||||
field_2BC = 2;
|
||||
far_blur = 1;
|
||||
distance = 4.0f;
|
||||
field_2C4 = 0.4f;
|
||||
z_near = 0.1f;
|
||||
z_far = 20.0f;
|
||||
field_2D0 = 1.4f;
|
||||
field_2D4 = 10000.0f;
|
||||
field_2D8 = 80.0f;
|
||||
field_2DC = 2.0f;
|
||||
field_2E0 = 0.05f;
|
||||
ambient = 0.4f;
|
||||
field_2EC = 0;
|
||||
direction = vec3(0.0f, -1.0f, -1.0f) * (1.0f / sqrtf(2.0f));
|
||||
field_2E8 = false;
|
||||
self_shadow = true;
|
||||
field_2F5 = false;
|
||||
field_208 = (z_far - z_near) * 0.5f;
|
||||
}
|
||||
|
||||
static void object_data_get_vertex_attrib_buffer_bindings(const mdl::ObjSubMeshArgs* args,
|
||||
int32_t texcoord_array[2], GLuint vertex_attrib_buffer_binding[16]) {
|
||||
const obj_mesh* mesh = args->mesh;
|
||||
|
||||
@@ -169,7 +169,7 @@ namespace rndr {
|
||||
}
|
||||
|
||||
struct render_context;
|
||||
struct shadow;
|
||||
struct Shadow;
|
||||
|
||||
struct draw_state_stats {
|
||||
int32_t object_draw_count;
|
||||
@@ -625,7 +625,7 @@ namespace mdl {
|
||||
namespace rndr {
|
||||
struct RenderManager {
|
||||
bool pass_sw[rndr::RND_PASSID_NUM];
|
||||
shadow* shadow_ptr;
|
||||
Shadow* shadow_ptr;
|
||||
bool reflect;
|
||||
bool refract;
|
||||
int32_t reflect_blur_num;
|
||||
@@ -927,9 +927,9 @@ struct render_context {
|
||||
void light_param_data_face_set(light_param_face* face);
|
||||
};
|
||||
|
||||
struct shadow {
|
||||
render_texture field_8[8]; // Extra for buf
|
||||
render_texture* field_158[4]; // Extra for buf
|
||||
struct Shadow {
|
||||
render_texture render_textures[8]; // Extra for buf
|
||||
render_texture* curr_render_textures[4]; // Extra for buf
|
||||
float_t view_region;
|
||||
float_t range;
|
||||
vec3 view_point[2];
|
||||
@@ -965,9 +965,11 @@ struct shadow {
|
||||
bool blur_filter_enable[2];
|
||||
bool field_2F5;
|
||||
|
||||
shadow();
|
||||
~shadow();
|
||||
Shadow();
|
||||
~Shadow();
|
||||
|
||||
void ctrl(render_context* rctx);
|
||||
int32_t init_data();
|
||||
void Ctrl(render_context* rctx);
|
||||
int32_t InitData();
|
||||
void Reset();
|
||||
void ResetData();
|
||||
};
|
||||
|
||||
+29
-27
@@ -22,9 +22,9 @@
|
||||
static void blur_filter_apply(render_context* rctx, GLuint tex_0, GLuint tex_1,
|
||||
blur_filter_mode filter, const vec2 res_scale, const vec4 scale, const vec4 offset);
|
||||
static void draw_pass_shadow_begin_make_shadowmap(render_context* rctx,
|
||||
shadow* shad, int32_t index, int32_t a3);
|
||||
Shadow* shad, int32_t index, int32_t a3);
|
||||
static void draw_pass_shadow_end_make_shadowmap(render_context* rctx,
|
||||
shadow* shad, int32_t index, int32_t a3);
|
||||
Shadow* shad, int32_t index, int32_t a3);
|
||||
static void draw_pass_shadow_filter(render_context* rctx, render_texture* a1, render_texture* a2,
|
||||
render_texture* a3, float_t sigma, float_t far_texel_offset, bool enable_lit_proj);
|
||||
static void draw_pass_shadow_esm_filter(render_context* rctx,
|
||||
@@ -34,7 +34,7 @@ static void draw_pass_sss_contour(render_context* rctx, post_process* pp);
|
||||
static void draw_pass_sss_filter(render_context* rctx, sss_data* sss);
|
||||
static int32_t draw_pass_3d_get_translucent_count(render_context* rctx);
|
||||
static void draw_pass_3d_shadow_reset(render_context* rctx);
|
||||
static void draw_pass_3d_shadow_set(shadow* shad, render_context* rctx);
|
||||
static void draw_pass_3d_shadow_set(Shadow* shad, render_context* rctx);
|
||||
extern void draw_pass_3d_translucent(render_context* rctx, bool opaque_enable,
|
||||
bool transparent_enable, bool translucent_enable, mdl::ObjType opaque,
|
||||
mdl::ObjType transparent, mdl::ObjType translucent);
|
||||
@@ -194,15 +194,15 @@ namespace rndr {
|
||||
v3 = true;
|
||||
}
|
||||
|
||||
::shadow* shad = shadow_ptr;
|
||||
Shadow* shad = shadow_ptr;
|
||||
if (shadow && v3) {
|
||||
int32_t v11[2];
|
||||
v11[0] = shad->field_200[0];
|
||||
v11[1] = shad->field_200[1];
|
||||
shad->field_158[0] = &shad->field_8[0];
|
||||
shad->field_158[1] = &shad->field_8[1];
|
||||
shad->field_158[2] = &shad->field_8[2];
|
||||
shad->field_158[3] = &shad->field_8[7]; // Extra for buf
|
||||
shad->curr_render_textures[0] = &shad->render_textures[0];
|
||||
shad->curr_render_textures[1] = &shad->render_textures[1];
|
||||
shad->curr_render_textures[2] = &shad->render_textures[2];
|
||||
shad->curr_render_textures[3] = &shad->render_textures[7]; // Extra for buf
|
||||
|
||||
for (int32_t i = 0, j = 0; i < 2; i++) {
|
||||
if (!v10[i])
|
||||
@@ -220,14 +220,14 @@ namespace rndr {
|
||||
}
|
||||
}
|
||||
else {
|
||||
shad->field_158[0] = &shad->field_8[0];
|
||||
shad->field_158[1] = &shad->field_8[1];
|
||||
shad->field_158[2] = &shad->field_8[2];
|
||||
shad->field_158[3] = &shad->field_8[7]; // Extra for buf
|
||||
shad->curr_render_textures[0] = &shad->render_textures[0];
|
||||
shad->curr_render_textures[1] = &shad->render_textures[1];
|
||||
shad->curr_render_textures[2] = &shad->render_textures[2];
|
||||
shad->curr_render_textures[3] = &shad->render_textures[7]; // Extra for buf
|
||||
|
||||
for (int32_t i = 1; i < 3; i++)
|
||||
for (int32_t j = 0; j < 4; j++) {
|
||||
shad->field_158[i]->bind(j);
|
||||
shad->curr_render_textures[i]->bind(j);
|
||||
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
}
|
||||
@@ -926,9 +926,9 @@ void draw_pass_set_camera(render_context* rctx) {
|
||||
}
|
||||
|
||||
static void draw_pass_shadow_begin_make_shadowmap(render_context* rctx,
|
||||
shadow* shad, int32_t index, int32_t a3) {
|
||||
texture* tex = shad->field_158[0]->color_texture;
|
||||
shad->field_158[0]->bind();
|
||||
Shadow* shad, int32_t index, int32_t a3) {
|
||||
texture* tex = shad->curr_render_textures[0]->color_texture;
|
||||
shad->curr_render_textures[0]->bind();
|
||||
glViewport(0, 0, tex->width, tex->height);
|
||||
glScissor(0, 0, tex->width, tex->height);
|
||||
gl_state_enable_depth_test();
|
||||
@@ -970,22 +970,24 @@ static void draw_pass_shadow_begin_make_shadowmap(render_context* rctx,
|
||||
}
|
||||
|
||||
static void draw_pass_shadow_end_make_shadowmap(render_context* rctx,
|
||||
shadow* shad, int32_t index, int32_t a3) {
|
||||
Shadow* shad, int32_t index, int32_t a3) {
|
||||
gl_state_disable_depth_test();
|
||||
gl_state_disable_scissor_test();
|
||||
|
||||
rctx->draw_state.shader_index = -1;
|
||||
if (a3 == shad->field_2EC - 1) {
|
||||
draw_pass_shadow_filter(rctx, &shad->field_8[3], &shad->field_8[4], shad->field_158[0],
|
||||
draw_pass_shadow_filter(rctx, &shad->render_textures[3],
|
||||
&shad->render_textures[4], shad->curr_render_textures[0],
|
||||
shad->field_2DC, shad->field_2E0 / (shad->field_208 * 2.0f), false);
|
||||
draw_pass_shadow_esm_filter(rctx, &shad->field_8[5], &shad->field_8[6], &shad->field_8[3]);
|
||||
draw_pass_shadow_esm_filter(rctx, &shad->render_textures[5],
|
||||
&shad->render_textures[6], &shad->render_textures[3]);
|
||||
}
|
||||
|
||||
render_texture* rend_tex = shad->field_158[1 + index];
|
||||
render_texture* rend_buf_tex = shad->field_158[3];
|
||||
render_texture* rend_tex = shad->curr_render_textures[1 + index];
|
||||
render_texture* rend_buf_tex = shad->curr_render_textures[3];
|
||||
rend_tex->bind();
|
||||
|
||||
render_texture* src = shad->field_158[0];
|
||||
render_texture* src = shad->curr_render_textures[0];
|
||||
image_filter_scale(rctx, rend_tex->color_texture->tex, src->color_texture->tex, 1.0f);
|
||||
|
||||
if (shad->blur_filter_enable[index]) {
|
||||
@@ -1363,10 +1365,10 @@ static void draw_pass_3d_shadow_reset(render_context* rctx) {
|
||||
rctx->draw_state.light = false;
|
||||
}
|
||||
|
||||
static void draw_pass_3d_shadow_set(shadow* shad, render_context* rctx) {
|
||||
static void draw_pass_3d_shadow_set(Shadow* shad, render_context* rctx) {
|
||||
if (shad->self_shadow && shad->field_2EC > 0) {
|
||||
gl_state_active_bind_texture_2d(19, shad->field_8[3].color_texture->tex);
|
||||
gl_state_active_bind_texture_2d(20, shad->field_8[5].color_texture->tex);
|
||||
gl_state_active_bind_texture_2d(19, shad->render_textures[3].color_texture->tex);
|
||||
gl_state_active_bind_texture_2d(20, shad->render_textures[5].color_texture->tex);
|
||||
gl_state_active_texture(0);
|
||||
float_t esm_param = (shad->field_2D8 * shad->field_208 * 2.0f) * 1.442695f;
|
||||
rctx->obj_scene.g_esm_param = { esm_param, 0.0f, 0.0f, 0.0f };
|
||||
@@ -1420,7 +1422,7 @@ static void draw_pass_3d_shadow_set(shadow* shad, render_context* rctx) {
|
||||
continue;
|
||||
}
|
||||
|
||||
gl_state_active_bind_texture_2d(6 + j, shad->field_158[1 + i]->color_texture->tex);
|
||||
gl_state_active_bind_texture_2d(6 + j, shad->curr_render_textures[1 + i]->color_texture->tex);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16.0f);
|
||||
j++;
|
||||
}
|
||||
@@ -1445,7 +1447,7 @@ static void draw_pass_3d_shadow_set(shadow* shad, render_context* rctx) {
|
||||
rctx->draw_state.light = false;
|
||||
|
||||
for (int32_t i = 0; i < 2; i++)
|
||||
gl_state_active_bind_texture_2d(6 + i, shad->field_158[1 + i]->color_texture->tex);
|
||||
gl_state_active_bind_texture_2d(6 + i, shad->curr_render_textures[1 + i]->color_texture->tex);
|
||||
gl_state_active_texture(0);
|
||||
|
||||
rctx->obj_scene.g_shadow_ambient = 1.0f;
|
||||
|
||||
+1
-1
@@ -13412,7 +13412,7 @@ void rob_chara_item_equip::disp(int32_t chara_id, render_context* rctx) {
|
||||
enum_or(flags, mdl::OBJ_REFRACT);
|
||||
|
||||
mdl::DispManager& disp_manager = rctx->disp_manager;
|
||||
shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
if (shadow_type != -1) {
|
||||
if (field_A0 & 0x04) {
|
||||
vec3 pos = position;
|
||||
|
||||
+3
-3
@@ -434,7 +434,7 @@ static bool object_bounding_sphere_check_visibility_shadow(obj_bounding_sphere*
|
||||
mat4_mult_vec3_trans(view, ¢er, ¢er);
|
||||
float_t radius = sphere->radius;
|
||||
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
float_t v9 = shad->view_region * shad->range;
|
||||
if ((center.x + radius) < -v9
|
||||
|| (center.x - radius) > v9
|
||||
@@ -448,14 +448,14 @@ static bool object_bounding_sphere_check_visibility_shadow(obj_bounding_sphere*
|
||||
|
||||
static bool object_bounding_sphere_check_visibility_shadow_chara(obj_bounding_sphere* sphere, mat4* view) {
|
||||
mat4 mat;
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
mat4_look_at(&shad->view_point[0], &shad->interest[0], &mat);
|
||||
return object_bounding_sphere_check_visibility_shadow(sphere, view, &mat);
|
||||
}
|
||||
|
||||
static bool object_bounding_sphere_check_visibility_shadow_stage(obj_bounding_sphere* sphere, mat4* view) {
|
||||
mat4 mat;
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
mat4_look_at(&shad->view_point[1], &shad->interest[1], &mat);
|
||||
return object_bounding_sphere_check_visibility_shadow(sphere, view, &mat);
|
||||
}
|
||||
|
||||
@@ -450,7 +450,7 @@ static bool object_bounding_sphere_check_visibility_shadow(obj_bounding_sphere*
|
||||
mat4_mult_vec3_trans(view, ¢er, ¢er);
|
||||
float_t radius = sphere->radius;
|
||||
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
float_t view_region = shad->view_region * shad->range;
|
||||
if ((center.x + radius) < -view_region
|
||||
|| (center.x - radius) > view_region
|
||||
@@ -464,14 +464,14 @@ static bool object_bounding_sphere_check_visibility_shadow(obj_bounding_sphere*
|
||||
|
||||
static bool object_bounding_sphere_check_visibility_shadow_chara(obj_bounding_sphere* sphere, mat4* view) {
|
||||
mat4 mat;
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
mat4_look_at(&shad->view_point[0], &shad->interest[0], &mat);
|
||||
return object_bounding_sphere_check_visibility_shadow(sphere, view, &mat);
|
||||
}
|
||||
|
||||
static bool object_bounding_sphere_check_visibility_shadow_stage(obj_bounding_sphere* sphere, mat4* view) {
|
||||
mat4 mat;
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
mat4_look_at(&shad->view_point[1], &shad->interest[1], &mat);
|
||||
return object_bounding_sphere_check_visibility_shadow(sphere, view, &mat);
|
||||
}
|
||||
|
||||
@@ -1293,7 +1293,7 @@ bool pv_game_pv_data::dsc_ctrl(float_t delta_time, int64_t curr_time,
|
||||
|
||||
playdata->shadow = enable == 1;
|
||||
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
if (shad)
|
||||
if (chara_id == 1)
|
||||
shad->blur_filter_enable[1] = playdata->shadow;
|
||||
@@ -2439,10 +2439,10 @@ void pv_game_pv_data::init(::pv_game* pv_game, bool music_play) {
|
||||
sub_14013C8C0()->difficulty, sub_14013C8C0()->edition);
|
||||
find_set_motion(diff);
|
||||
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
if (shad) {
|
||||
shad->blur_filter_enable[0] = 0x1;
|
||||
shad->blur_filter_enable[1] = 0x1;
|
||||
shad->blur_filter_enable[0] = true;
|
||||
shad->blur_filter_enable[1] = true;
|
||||
}
|
||||
|
||||
pv_game->data.play_data.lyric_color = 0xFFFFFFFF;
|
||||
@@ -2543,7 +2543,7 @@ void pv_game_pv_data::reset_camera_post_process() {
|
||||
pp->tone_map->set_tone_trans(0.0f, 1.0f);
|
||||
pp->tone_map->set_saturate_coeff(1.0f);
|
||||
|
||||
shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
if (shad)
|
||||
for (bool& i : shad->blur_filter_enable)
|
||||
i = true;
|
||||
|
||||
@@ -4659,6 +4659,12 @@ bool x_pv_game::Ctrl() {
|
||||
dsc_data.dsc_data_ptr = dsc_data.dsc.data.data();
|
||||
dsc_data.dsc_data_ptr_end = dsc_data.dsc_data_ptr + dsc_data.dsc.data.size();
|
||||
|
||||
Shadow* shad = rctx_ptr->render_manager.shadow_ptr;
|
||||
if (shad) {
|
||||
shad->blur_filter_enable[0] = true;
|
||||
shad->blur_filter_enable[1] = true;
|
||||
}
|
||||
|
||||
state_old = 9;
|
||||
} break;
|
||||
case 9: {
|
||||
|
||||
Reference in New Issue
Block a user