Minor fixes

This commit is contained in:
korenkonder
2023-06-29 04:11:40 +03:00
parent 26629dc08b
commit f46e9f3667
6 changed files with 34 additions and 40 deletions
+8 -8
View File
@@ -31,7 +31,7 @@ static void draw_pass_shadow_esm_filter(render_context* rctx,
render_texture* dst, render_texture* buf, render_texture* src);
static bool draw_pass_shadow_litproj(render_context* rctx, light_proj* litproj);
static void draw_pass_sss_contour(render_context* rctx, post_process* pp);
static void draw_pass_sss_filter(render_context* rctx, sss_data* a1);
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);
@@ -1228,7 +1228,7 @@ static void draw_pass_sss_filter_calc_coef(double_t a1, size_t a2, double_t a3,
}
}
static void draw_pass_sss_filter(render_context* rctx, sss_data* a1) {
static void draw_pass_sss_filter(render_context* rctx, sss_data* sss) {
const int32_t sss_count = 6;
vec3 interest = rctx->camera->interest;
vec3 view_point = rctx->camera->view_point;
@@ -1280,8 +1280,8 @@ static void draw_pass_sss_filter(render_context* rctx, sss_data* a1) {
rctx->obj_batch.g_sss_param = { v33, 0.0f, 0.0f, 0.0f };
gl_state_active_texture(0);
if (a1->npr_contour) {
a1->textures[0].bind();
if (sss->npr_contour) {
sss->textures[0].bind();
glViewport(0, 0, 640, 360);
post_process* pp = &rctx->post_process;
uniform_value[U_REDUCE] = 0;
@@ -1289,11 +1289,11 @@ static void draw_pass_sss_filter(render_context* rctx, sss_data* a1) {
gl_state_bind_texture_2d(pp->rend_texture.color_texture->tex);
render_texture::draw_quad(&shaders_ft, 640, 360, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f);
}
a1->textures[2].bind();
sss->textures[2].bind();
glViewport(0, 0, 320, 180);
uniform_value[U_SSS_FILTER] = 0;
shaders_ft.set(SHADER_FT_SSS_FILT);
gl_state_bind_texture_2d(a1->textures[0].color_texture->tex);
gl_state_bind_texture_2d(sss->textures[0].color_texture->tex);
render_texture::draw_quad(&shaders_ft, 640, 360, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f);
sss_filter_gaussian_coef_shader_data shader_data = {};
@@ -1306,11 +1306,11 @@ static void draw_pass_sss_filter(render_context* rctx, sss_data* a1) {
draw_pass_sss_filter_calc_coef(1.0, sss_count, v34, 3, a5, a6, a7, a8, shader_data.g_coef);
rctx->sss_filter_gaussian_coef_ubo.WriteMapMemory(shader_data);
a1->textures[1].bind();
sss->textures[1].bind();
glViewport(0, 0, 320, 180);
uniform_value[U_SSS_FILTER] = 3;
shaders_ft.set(SHADER_FT_SSS_FILT);
gl_state_bind_texture_2d(a1->textures[2].color_texture->tex);
gl_state_bind_texture_2d(sss->textures[2].color_texture->tex);
rctx->sss_filter_gaussian_coef_ubo.Bind(1);
render_texture::draw_quad(&shaders_ft, 320, 180, 1.0f, 1.0f, 0.96f, 1.0f, 0.0f);
gl_state_bind_texture_2d(0);
+8 -8
View File
@@ -18,7 +18,7 @@ static void stage_param_snow_write_string(stream& s,
char* buf, size_t buf_size, std::string& value);
stage_param_snow_colli_ground::stage_param_snow_colli_ground()
: field_0(), field_4(), field_8(), field_C(), field_10() {
: min_x(), max_x(), min_z(), max_z(), y() {
}
@@ -183,8 +183,8 @@ static void stage_param_snow_read_inner(stage_param_snow* snow, stream& s) {
else if (!str_utils_compare_length(buf, sizeof(buf), "colli_ground", 12)) {
stage_param_snow_colli_ground& colli_ground = snow->colli_ground;
if (buf[12] != ' ' || sscanf_s(buf + 13, "%f %f %f %f %f",
&colli_ground.field_0, &colli_ground.field_4, &colli_ground.field_8,
&colli_ground.field_C, &colli_ground.field_10) != 5)
&colli_ground.min_x, &colli_ground.max_x,
&colli_ground.min_z, &colli_ground.max_z, &colli_ground.y) != 5)
goto End;
}
}
@@ -264,11 +264,11 @@ static void stage_param_snow_write_inner(stage_param_snow* snow, stream& s) {
stage_param_snow_colli_ground& colli_ground = snow->colli_ground;
s.write("colli_ground", 12);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.field_0);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.field_4);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.field_8);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.field_C);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.field_10);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.min_x);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.max_x);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.min_z);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.max_z);
stage_param_snow_write_float_t(s, buf, sizeof(buf), colli_ground.y);
s.write_char('\n');
}
+5 -5
View File
@@ -10,11 +10,11 @@
#include <string>
struct stage_param_snow_colli_ground {
float_t field_0;
float_t field_4;
float_t field_8;
float_t field_C;
float_t field_10;
float_t min_x;
float_t max_x;
float_t min_z;
float_t max_z;
float_t y;
stage_param_snow_colli_ground();
};
+2 -1
View File
@@ -43,7 +43,8 @@ bool TaskDataInit::Ctrl() {
switch (state) {
case 0: {
sprite_manager_reset_res_data();
// Fucks up scaling
//sprite_manager_reset_res_data();
sprite_manager_read_file(4, "", aft_data, aft_spr_db);
sprite_manager_read_file(472, "", aft_data, aft_spr_db);
sprite_manager_read_file(43, "", aft_data, aft_spr_db);
+4 -5
View File
@@ -2651,11 +2651,10 @@ namespace dw {
callback_data.field_8 = 0x1000002;
else {
vec2 v23 = sub_1402E4790();
if (v23.x + v10 <= v9)
if (v9 <= v23.x + v10 + v23.y)
callback_data.field_8 = 0x1000005;
else
callback_data.field_8 = 0x1000006;
if (v23.x + v10 > v9)
callback_data.field_8 = 0x1000005;
else if (v9 > v23.x + v10 + v23.y)
callback_data.field_8 = 0x1000006;
}
}
+7 -13
View File
@@ -240,6 +240,8 @@ int32_t render_main(render_init_struct* ris) {
#if !(BAKE_PNG || BAKE_VIDEO)
width = window_rect.right;
height = window_rect.bottom;
old_width = width;
old_height = height;
#endif
scale_index = ris->scale_index > 0 && ris->scale_index < RENDER_SCALE_MAX
@@ -852,6 +854,8 @@ static render_context* render_context_load() {
internal_2d_res.x, internal_2d_res.y, width, height);
rctx->render_manager.resize(internal_2d_res.x, internal_2d_res.y);
rctx->litproj->resize(internal_3d_res.x, internal_3d_res.y);
sprite_manager_set_res((double_t)internal_2d_res.x / (double_t)internal_2d_res.y,
internal_2d_res.x, internal_2d_res.y);
rctx->camera->initialize(aspect);
@@ -1326,22 +1330,12 @@ static void render_resize_fb(render_context* rctx, bool change_fb) {
double_t res_width = (double_t)width;
double_t res_height = (double_t)height;
double_t view_aspect = res_width / res_height;
res_width = round(res_height * aspect);
res_height = round(res_width / aspect);
if (view_aspect < aspect) {
res_width = (double_t)width;
if (view_aspect < aspect)
res_height = round(res_width / aspect);
}
else {
else if (view_aspect > aspect)
res_width = round(res_height * aspect);
res_height = round(res_width / aspect);
if (view_aspect > aspect)
res_height = round(res_width / aspect);
}
vec2i internal_res;
internal_res.x = (int32_t)res_width;
internal_res.y = (int32_t)res_height;
vec2i internal_res = { (int32_t)res_width, (int32_t)res_height };
#if BAKE_PNG || BAKE_VIDEO
internal_2d_res = vec2i::clamp(internal_res * 2, 1, sv_max_texture_size);