From c4c895d7505a0561eba33dc994d634c4badaeeb6 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Tue, 5 Dec 2023 16:20:24 +0300 Subject: [PATCH] Renamed one func --- src/CRE/render.cpp | 130 ++++++++++++++++++------------------- src/CRE/render.hpp | 2 +- src/CRE/render_manager.cpp | 2 +- 3 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/CRE/render.cpp b/src/CRE/render.cpp index 8ae0df23..83869582 100644 --- a/src/CRE/render.cpp +++ b/src/CRE/render.cpp @@ -239,6 +239,71 @@ namespace rndr { glViewport(0, 0, render_width[0], render_height[0]); } + void Render::calc_exposure_chara_data(camera* cam) { + shader::unbind(); + + gl_state_set_color_mask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); + gl_state_set_depth_mask(GL_FALSE); + gl_state_disable_cull_face(); + + shaders_ft.set(SHADER_FT_SUN_NO_TEXTURED); + gl_state_bind_vertex_array(rctx_ptr->common_vao); + rctx_ptr->sun_quad_ubo.Bind(0); + + ExposureCharaData* chara_data = exposure_chara_data; + int32_t query_index = (this->exposure_query_index + 1) % 3; + this->exposure_query_index = query_index; + int32_t next_query_index = (query_index + 2) % 3; + for (int32_t i = 0; i < ROB_CHARA_COUNT; i++, chara_data++) { + rob_chara* rob_chr = rob_chara_array_get(i); + if (!rob_chr || !rob_chr->is_visible()) + continue; + + float_t max_face_depth = rob_chr->get_max_face_depth(); + + mat4 mat = mat4_identity; + rob_chr->sub_1405163C0(4, mat); + mat4_mul(&mat, &cam->view, &mat); + mat4_mul_translate(&mat, max_face_depth + 0.1f, 0.0f, -0.06f, &mat); + mat4_clear_rot(&mat, &mat); + mat4_scale_rot(&mat, 0.0035f, &mat); + mat4_mul(&mat, &cam->projection, &mat); + + sun_quad_shader_data shader_data = {}; + mat4_transpose(&mat, &mat); + shader_data.g_transform[0] = mat.row0; + shader_data.g_transform[1] = mat.row1; + shader_data.g_transform[2] = mat.row2; + shader_data.g_transform[3] = mat.row3; + shader_data.g_emission = 0.0f; + rctx_ptr->sun_quad_ubo.WriteMemory(shader_data); + + glBeginQuery(GL_SAMPLES_PASSED, chara_data->query[next_query_index]); + shaders_ft.draw_arrays(GL_TRIANGLE_STRIP, 0, 4); + glEndQuery(GL_SAMPLES_PASSED); + + if (chara_data->query_data[next_query_index] == -1) + chara_data->query_data[next_query_index] = 0; + + if (chara_data->query_data[query_index] != -1) { + int32_t res = 0; + glGetQueryObjectiv(chara_data->query[query_index], + GL_QUERY_RESULT_AVAILABLE, &res); + if (res) + glGetQueryObjectuiv(chara_data->query[query_index], + GL_QUERY_RESULT, chara_data->query_data); + else + chara_data->query_data[query_index] = 0; + } + } + + gl_state_bind_vertex_array(0); + + gl_state_set_color_mask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); + gl_state_set_depth_mask(GL_TRUE); + gl_state_enable_cull_face(); + } + void Render::ctrl(camera* cam) { view_point_prev = view_point; interest_prev = interest; @@ -678,71 +743,6 @@ namespace rndr { return lens_flare_power; } - void Render::get_exposure_chara_data(camera* cam) { - shader::unbind(); - - gl_state_set_color_mask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); - gl_state_set_depth_mask(GL_FALSE); - gl_state_disable_cull_face(); - - shaders_ft.set(SHADER_FT_SUN_NO_TEXTURED); - gl_state_bind_vertex_array(rctx_ptr->common_vao); - rctx_ptr->sun_quad_ubo.Bind(0); - - ExposureCharaData* chara_data = exposure_chara_data; - int32_t query_index = (this->exposure_query_index + 1) % 3; - this->exposure_query_index = query_index; - int32_t next_query_index = (query_index + 2) % 3; - for (int32_t i = 0; i < ROB_CHARA_COUNT; i++, chara_data++) { - rob_chara* rob_chr = rob_chara_array_get(i); - if (!rob_chr || !rob_chr->is_visible()) - continue; - - float_t max_face_depth = rob_chr->get_max_face_depth(); - - mat4 mat = mat4_identity; - rob_chr->sub_1405163C0(4, mat); - mat4_mul(&mat, &cam->view, &mat); - mat4_mul_translate(&mat, max_face_depth + 0.1f, 0.0f, -0.06f, &mat); - mat4_clear_rot(&mat, &mat); - mat4_scale_rot(&mat, 0.0035f, &mat); - mat4_mul(&mat, &cam->projection, &mat); - - sun_quad_shader_data shader_data = {}; - mat4_transpose(&mat, &mat); - shader_data.g_transform[0] = mat.row0; - shader_data.g_transform[1] = mat.row1; - shader_data.g_transform[2] = mat.row2; - shader_data.g_transform[3] = mat.row3; - shader_data.g_emission = 0.0f; - rctx_ptr->sun_quad_ubo.WriteMemory(shader_data); - - glBeginQuery(GL_SAMPLES_PASSED, chara_data->query[next_query_index]); - shaders_ft.draw_arrays(GL_TRIANGLE_STRIP, 0, 4); - glEndQuery(GL_SAMPLES_PASSED); - - if (chara_data->query_data[next_query_index] == -1) - chara_data->query_data[next_query_index] = 0; - - if (chara_data->query_data[query_index] != -1) { - int32_t res = 0; - glGetQueryObjectiv(chara_data->query[query_index], - GL_QUERY_RESULT_AVAILABLE, &res); - if (res) - glGetQueryObjectuiv(chara_data->query[query_index], - GL_QUERY_RESULT, chara_data->query_data); - else - chara_data->query_data[query_index] = 0; - } - } - - gl_state_bind_vertex_array(0); - - gl_state_set_color_mask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - gl_state_set_depth_mask(GL_TRUE); - gl_state_enable_cull_face(); - } - vec3 Render::get_intensity() { return intensity; } diff --git a/src/CRE/render.hpp b/src/CRE/render.hpp index b34d2d8a..fa71bb7b 100644 --- a/src/CRE/render.hpp +++ b/src/CRE/render.hpp @@ -181,6 +181,7 @@ namespace rndr { void apply_post_process(camera* cam, texture* light_proj_tex, int32_t npr_param); void bind_render_texture(bool aet_back = false); + void calc_exposure_chara_data(camera* cam); void ctrl(camera* cam); void draw_quad(int32_t width, int32_t height, float_t s0, float_t t0, float_t s1, float_t t1, float_t scale, float_t param_x, float_t param_y, float_t param_z, float_t param_w); @@ -194,7 +195,6 @@ namespace rndr { void free(); bool get_auto_exposure(); float_t get_exposure(); - void get_exposure_chara_data(camera* cam); float_t get_exposure_rate(); float_t get_gamma(); float_t get_gamma_rate(); diff --git a/src/CRE/render_manager.cpp b/src/CRE/render_manager.cpp index 6ec45438..fbf814f9 100644 --- a/src/CRE/render_manager.cpp +++ b/src/CRE/render_manager.cpp @@ -841,7 +841,7 @@ namespace rndr { if (rctx->render_manager->field_120) rctx->disp_manager->draw(mdl::OBJ_TYPE_TYPE_7); - render->get_exposure_chara_data(rctx->camera); + render->calc_exposure_chara_data(rctx->camera); if (npr_param == 1) pass_3d_contour();