From bdc410f56bb078c14febc88b46d3f822abbb7ae1 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Thu, 28 May 2026 00:16:34 +0300 Subject: [PATCH] Renamed Uniforms --- src/CRE/Glitter/render_scene.cpp | 48 +++--- src/CRE/Vulkan/gl_wrap.cpp | 4 +- src/CRE/effect.cpp | 10 +- src/CRE/gl_rend_state.cpp | 4 +- src/CRE/mdl/draw_object.cpp | 74 +++++----- src/CRE/render.cpp | 28 ++-- src/CRE/render_context.cpp | 166 ++++++++++----------- src/CRE/render_context.hpp | 140 +++++++++--------- src/CRE/render_manager.cpp | 8 +- src/CRE/renderer/transparency.cpp | 2 +- src/CRE/shader.cpp | 2 +- src/CRE/shader.hpp | 6 +- src/CRE/shader_dev.cpp | 10 +- src/CRE/shader_ft.cpp | 238 +++++++++++++++--------------- src/CRE/shadow.cpp | 2 +- src/CRE/sss.cpp | 2 +- src/CRE/static_var.hpp | 58 ++++---- src/ReDIVA/app.cpp | 2 +- 18 files changed, 402 insertions(+), 402 deletions(-) diff --git a/src/CRE/Glitter/render_scene.cpp b/src/CRE/Glitter/render_scene.cpp index f47c487e..191c6bbe 100644 --- a/src/CRE/Glitter/render_scene.cpp +++ b/src/CRE/Glitter/render_scene.cpp @@ -1026,27 +1026,27 @@ namespace Glitter { if (rend_group->mask_texture) { mask_texture = rend_group->mask_texture; - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 2; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 2; switch (rend_group->mask_blend_mode) { default: - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 0; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 0; break; case PARTICLE_BLEND_MULTIPLY: - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 1; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 1; break; case PARTICLE_BLEND_ADD: - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 2; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 2; break; } } else { - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 1; - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 1; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 0; } } else { - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 0; - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 0; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 0; } rend_data_ctx.state.active_bind_texture_2d(0, texture); @@ -1056,13 +1056,13 @@ namespace Glitter { case PARTICLE_QUAD: switch (rend_group->fog_type) { default: - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 0; + rend_data_ctx.shader_flags.arr[U_FOG] = 0; break; case Glitter::FOG_DEPTH: - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 1; + rend_data_ctx.shader_flags.arr[U_FOG] = 1; break; case Glitter::FOG_HEIGHT: - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 2; + rend_data_ctx.shader_flags.arr[U_FOG] = 2; break; } @@ -1098,7 +1098,7 @@ namespace Glitter { case PARTICLE_LINE: rend_data_ctx.shader_flags.arr[U_ALPHA_TEST] = 0; rend_data_ctx.shader_flags.arr[U_ALPHA_BLEND] = 2; - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 0; + rend_data_ctx.shader_flags.arr[U_FOG] = 0; rend_data_ctx.state.enable_depth_test(); rend_data_ctx.state.set_depth_mask(GL_FALSE); @@ -1109,7 +1109,7 @@ namespace Glitter { case PARTICLE_LOCUS: rend_data_ctx.shader_flags.arr[U_ALPHA_TEST] = 0; rend_data_ctx.shader_flags.arr[U_ALPHA_BLEND] = 2; - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 0; + rend_data_ctx.shader_flags.arr[U_FOG] = 0; rend_data_ctx.state.enable_depth_test(); rend_data_ctx.state.set_depth_mask(GL_FALSE); @@ -2024,27 +2024,27 @@ namespace Glitter { if (rend_group->mask_texture) { mask_texture = rend_group->mask_texture; - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 2; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 2; switch (rend_group->mask_blend_mode) { default: - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 0; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 0; break; case PARTICLE_BLEND_MULTIPLY: - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 1; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 1; break; case PARTICLE_BLEND_ADD: - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 2; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 2; break; } } else { - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 1; - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 1; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 0; } } else { - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 0; - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 0; + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = 0; } rend_data_ctx.state.active_bind_texture_2d(0, texture); @@ -2052,13 +2052,13 @@ namespace Glitter { switch (rend_group->fog_type) { default: - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 0; + rend_data_ctx.shader_flags.arr[U_FOG] = 0; break; case Glitter::FOG_DEPTH: - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 1; + rend_data_ctx.shader_flags.arr[U_FOG] = 1; break; case Glitter::FOG_HEIGHT: - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = 2; + rend_data_ctx.shader_flags.arr[U_FOG] = 2; break; } diff --git a/src/CRE/Vulkan/gl_wrap.cpp b/src/CRE/Vulkan/gl_wrap.cpp index 7c091dee..63a714d1 100644 --- a/src/CRE/Vulkan/gl_wrap.cpp +++ b/src/CRE/Vulkan/gl_wrap.cpp @@ -547,13 +547,13 @@ namespace Vulkan { } - inline static bool get_use_binding(uniform_name use_uniform, + inline static bool get_use_binding(UniformName use_uniform, const shader_table* shader, const uint32_t* unival_arr) { if (use_uniform == U_INVALID) return true; const int32_t num_uniform = shader->num_uniform; - const uniform_name* _use_uniform = shader->use_uniform; + const UniformName* _use_uniform = shader->use_uniform; for (int32_t i = 0; i < num_uniform; i++) if (use_uniform == _use_uniform[i] && unival_arr[i]) return true; diff --git a/src/CRE/effect.cpp b/src/CRE/effect.cpp index 7f3f00f8..65d85eaa 100644 --- a/src/CRE/effect.cpp +++ b/src/CRE/effect.cpp @@ -1531,7 +1531,7 @@ void snow_particle_draw(render_data_context& rend_data_ctx, const cam_data& cam) rend_data_ctx.state.active_bind_texture_2d(1, rctx_ptr->render.rend_texture[0].get_depth_texture_glid()); rend_data_ctx.state.bind_vertex_array(rctx_ptr->common_vao); - rend_data_ctx.shader_flags.arr[U_SNOW_PARTICLE] = 0; + rend_data_ctx.shader_flags.arr[U_SNOW_TYPE] = 0; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_SNOW_PT); rend_data_ctx.state.bind_uniform_buffer_base(0, snow_particle_scene_ubo); rend_data_ctx.state.bind_uniform_buffer_base(1, snow_particle_batch_ubo); @@ -1542,7 +1542,7 @@ void snow_particle_draw(render_data_context& rend_data_ctx, const cam_data& cam) snow_fallen_storage.Bind(rend_data_ctx.state, 0); snow_fallen_storage.Draw(rend_data_ctx.state, GL_TRIANGLES, 0, (GLsizei)(snow_ptcl_fallen_count * 6)); - rend_data_ctx.shader_flags.arr[U_SNOW_PARTICLE] = 1; + rend_data_ctx.shader_flags.arr[U_SNOW_TYPE] = 1; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_SNOW_PT); rend_data_ctx.state.bind_uniform_buffer_base(0, snow_particle_scene_ubo); rend_data_ctx.state.bind_uniform_buffer_base(1, snow_particle_batch_ubo); @@ -5824,7 +5824,7 @@ static void draw_ripple_particles(render_data_context& rend_data_ctx, 0.0f, 0.0f }; rend_data_ctx.state.write_uniform_buffer(ripple_emit_scene_ubo, shader_data); - rend_data_ctx.shader_flags.arr[U_RIPPLE] = data->ripple_uniform; + rend_data_ctx.shader_flags.arr[U_TEX_FORMAT] = data->ripple_uniform; rend_data_ctx.shader_flags.arr[U_RIPPLE_EMIT] = data->ripple_emit_uniform; rend_data_ctx.state.begin_event("EffectRipple::Impl::draw_ripple_particles"); @@ -6779,9 +6779,9 @@ static void ripple_propagate(render_data_context& rend_data_ctx, dst->begin_render(rend_data_ctx.state); if (dst->get_texture()->internal_format == GL_RGBA32F || dst->get_texture()->internal_format == GL_RGBA16F) - rend_data_ctx.shader_flags.arr[U_RIPPLE] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_FORMAT] = 1; else - rend_data_ctx.shader_flags.arr[U_RIPPLE] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_FORMAT] = 0; ripple_propagate_sub(rend_data_ctx, dst->get_texture(), curr->get_texture(), prev->get_texture(), params); dst->end_render(rend_data_ctx.state); } diff --git a/src/CRE/gl_rend_state.cpp b/src/CRE/gl_rend_state.cpp index 0ad3481f..a9aaf097 100644 --- a/src/CRE/gl_rend_state.cpp +++ b/src/CRE/gl_rend_state.cpp @@ -1825,7 +1825,7 @@ inline void gl_rend_state::update_read_framebuffer() { glBindFramebuffer(GL_READ_FRAMEBUFFER, read_framebuffer_binding); if (read_framebuffer_binding) { GLenum status = glCheckFramebufferStatus(GL_READ_FRAMEBUFFER); - if (status != GL_FRAMEBUFFER_COMPLETE) + if (status != GL_FRAMEBUFFER_COMPLETE && status != GL_NO_ERROR) printf_debug("GL Error: Bind Read Framebuffer Status - 0x%04X\n", status); gl_get_error_print(); } @@ -1841,7 +1841,7 @@ inline void gl_rend_state::update_draw_framebuffer() { glBindFramebuffer(GL_DRAW_FRAMEBUFFER, draw_framebuffer_binding); if (draw_framebuffer_binding) { GLenum status = glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); - if (status != GL_FRAMEBUFFER_COMPLETE) + if (status != GL_FRAMEBUFFER_COMPLETE && status != GL_NO_ERROR) printf_debug("GL Error: Bind Draw Framebuffer Status - 0x%04X\n", status); gl_get_error_print(); } diff --git a/src/CRE/mdl/draw_object.cpp b/src/CRE/mdl/draw_object.cpp index a3f9c90e..bccee1e4 100644 --- a/src/CRE/mdl/draw_object.cpp +++ b/src/CRE/mdl/draw_object.cpp @@ -293,7 +293,7 @@ namespace mdl { rend_data_ctx.set_batch_material_color_emission(args->emission); draw_object_material_set_uniform(rend_data_ctx, material, false); if (material->material.attrib.m.alpha_tex) - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 0; rend_data_ctx.set_shader(rctx_ptr->draw_state->rend_data[rend_data_ctx.index].shader_index); } @@ -564,8 +564,8 @@ static void draw_object_chara_color_fog_set(render_data_context& rend_data_ctx, obj_material_attrib_member attrib = args->material->material.attrib.m; if (!attrib.no_z_fog && !disable_fog) { - rend_data_ctx.shader_flags.arr[U_FOG_STAGE] = attrib.y_fog ? (attrib.y_fogmap ? 3 : 2) : 1; - rend_data_ctx.shader_flags.arr[U_FOG_CHARA] = rctx_ptr->draw_state->fog_height ? 2 : 1; + rend_data_ctx.shader_flags.arr[U_FOG] = attrib.y_fog ? (attrib.y_fogmap ? 3 : 2) : 1; + rend_data_ctx.shader_flags.arr[U_FOGMAP] = rctx_ptr->draw_state->fog_height ? 2 : 1; } } @@ -671,16 +671,16 @@ static void draw_object_material_set_default(render_data_context& rend_data_ctx, bool disable_fog = draw_object_blend_set(rend_data_ctx, args, lighting_type); draw_object_material_set_uniform(rend_data_ctx, material, false); if (!rctx_ptr->draw_state->rend_data[rend_data_ctx.index].shadow) - rend_data_ctx.shader_flags.arr[U_STAGE_SHADOW] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_SHADOW] = 0; else if (args->receive_shadow == mdl::RECEIVE_SHADOW_DEFAULT) - rend_data_ctx.shader_flags.arr[U_STAGE_SHADOW] = args->sub_mesh->attrib.m.receive_shadow ? 1 : 0; + rend_data_ctx.shader_flags.arr[U_TEX_SHADOW] = args->sub_mesh->attrib.m.receive_shadow ? 1 : 0; else if (args->receive_shadow == mdl::RECEIVE_SHADOW_ENABLE) - rend_data_ctx.shader_flags.arr[U_STAGE_SHADOW] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_SHADOW] = 1; else // mdl::RECEIVE_SHADOW_DISABLE - rend_data_ctx.shader_flags.arr[U_STAGE_SHADOW] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_SHADOW] = 0; - rend_data_ctx.shader_flags.arr[U_CHARA_SHADOW2] = args->shadow_group > 0 ? 1 : 0; - rend_data_ctx.shader_flags.arr[U_CHARA_SHADOW] + rend_data_ctx.shader_flags.arr[U_SHADOW_SAMPLE] = args->shadow_group > 0 ? 1 : 0; + rend_data_ctx.shader_flags.arr[U_SELF_SHADOW] = rctx_ptr->draw_state->rend_data[rend_data_ctx.index].self_shadow ? 1 : 0; const obj_material_texture_data* texdata = material->material.texdata; @@ -715,16 +715,16 @@ static void draw_object_material_set_default(render_data_context& rend_data_ctx, if (texdata->attrib.m.ignore) { switch (tex_type) { case TEX_SHDATTR_TEXTURE_NORMAL_MAP: - rend_data_ctx.shader_flags.arr[U_NORMAL] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_NORMAL] = 0; break; case TEX_SHDATTR_TEXTURE_SPECULAR_MAP: - rend_data_ctx.shader_flags.arr[U_SPECULAR] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_SPECULAR] = 0; break; case TEX_SHDATTR_TEXTURE_TRNSL_MAP: - rend_data_ctx.shader_flags.arr[U_TRANSLUCENCY] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_LUCENCY] = 0; break; case TEX_SHDATTR_TEXTURE_TRNSP_MAP: - rend_data_ctx.shader_flags.arr[U_TRANSPARENCY] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_PARENCY] = 0; break; } continue; @@ -759,7 +759,7 @@ static void draw_object_material_set_default(render_data_context& rend_data_ctx, } if (material->material.shader.index == SHADER_FT_SKY) { - uniform_name uni_type = U_TEX_0_TYPE; + UniformName uni_type = U_TEX_0_TYPE; if (tex_unit == 1) uni_type = U_TEX_1_TYPE; @@ -775,13 +775,13 @@ static void draw_object_material_set_default(render_data_context& rend_data_ctx, } if (tex_unit >= 0 && tex_unit < 2) - rend_data_ctx.shader_flags.arr[U_TEXTURE_BLEND] = get_uniform_blend(&texdata->attrib); + rend_data_ctx.shader_flags.arr[U_BLEND_FUNC_01] = get_uniform_blend(&texdata->attrib); } if (material->material.attrib.m.double_sided) { rend_data_ctx.state.disable_cull_face(); if (!material->material.attrib.m.normal_dir_light) - rend_data_ctx.shader_flags.arr[U0B] = 1; + rend_data_ctx.shader_flags.arr[U_DOUBLE_SIDE] = 1; } else rend_data_ctx.state.enable_cull_face(); @@ -801,12 +801,12 @@ static void draw_object_material_set_default(render_data_context& rend_data_ctx, float_t luma = vec3::dot(*(vec3*)&specular, { 0.30f, 0.59f, 0.11f }); if (luma >= 0.01f || args->texture_color_coefficients.w >= 0.1f) - rend_data_ctx.shader_flags.arr[U_SPECULAR_IBL] = 1; + rend_data_ctx.shader_flags.arr[U_SPECULAR] = 1; else - rend_data_ctx.shader_flags.arr[U_SPECULAR_IBL] = 0; + rend_data_ctx.shader_flags.arr[U_SPECULAR] = 0; if (!material->material.shader_info.m.fresnel_type) - rend_data_ctx.shader_flags.arr[U_TRANSLUCENCY] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_LUCENCY] = 0; line_light = (float_t)material->material.shader_info.m.line_light * (float_t)(1.0 / 9.0); } @@ -933,43 +933,43 @@ static void draw_object_material_set_uniform(render_data_context& rend_data_ctx, if (shader_compo.color) { if (!shader_compo.color_l2) if (shader_compo.color_l1) { - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 2; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 2; v4 = 3; } else { - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 1; v4 = 1; } } else if (shader_compo.color_l1 && !shader_compo.color_l2) { - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 1; v4 = 1; } else - rend_data_ctx.shader_flags.arr[U_TEXTURE_COUNT] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_COLOR] = 0; if (shader_compo.normal_01) - rend_data_ctx.shader_flags.arr[U_NORMAL] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_NORMAL] = 1; if (shader_compo.specular) - rend_data_ctx.shader_flags.arr[U_SPECULAR] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_SPECULAR] = 1; if (shader_compo.transparency) { - rend_data_ctx.shader_flags.arr[U_TRANSPARENCY] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_PARENCY] = 1; v4 |= 2; } if (shader_compo.translucency) { - rend_data_ctx.shader_flags.arr[U_TRANSLUCENCY] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_LUCENCY] = 1; v4 |= 2; } if (shader_compo.env_cube) - rend_data_ctx.shader_flags.arr[U_ENV_MAP] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_ENVMAP] = 1; if (shader_info.aniso_direction != MAT_SHDATTR_ANISO_DIRECTION_NORMAL) - rend_data_ctx.shader_flags.arr[U_ANISO] = shader_info.aniso_direction; + rend_data_ctx.shader_flags.arr[U_ANISO_TANGENT] = shader_info.aniso_direction; if (v4 == 1) - rend_data_ctx.shader_flags.arr[U45] = 0; + rend_data_ctx.shader_flags.arr[U_UV_LAYER] = 0; else if (v4 == 2 || v4 == 3) - rend_data_ctx.shader_flags.arr[U45] = 1; + rend_data_ctx.shader_flags.arr[U_UV_LAYER] = 1; } static void draw_object_vertex_attrib_reset_cheap( @@ -981,7 +981,7 @@ static void draw_object_vertex_attrib_reset_cheap( rend_data_ctx.shader_flags.arr[U_SKINNING] = 0; if (args->morph_vb) { - rend_data_ctx.shader_flags.arr[U_MORPH] = 0; + rend_data_ctx.shader_flags.arr[U_MORPH_POS_NORMAL_UV] = 0; rend_data_ctx.shader_flags.arr[U_MORPH_COLOR] = 0; } @@ -997,7 +997,7 @@ static void draw_object_vertex_attrib_reset_default( rend_data_ctx.shader_flags.arr[U_SKINNING] = 0; if (args->morph_vb) { - rend_data_ctx.shader_flags.arr[U_MORPH] = 0; + rend_data_ctx.shader_flags.arr[U_MORPH_POS_NORMAL_UV] = 0; rend_data_ctx.shader_flags.arr[U_MORPH_COLOR] = 0; } @@ -1036,7 +1036,7 @@ static void draw_object_vertex_attrib_set_cheap( rend_data_ctx.shader_flags.arr[U_SKINNING] = 0; if (args->morph_vb) { - rend_data_ctx.shader_flags.arr[U_MORPH] = 1; + rend_data_ctx.shader_flags.arr[U_MORPH_POS_NORMAL_UV] = 1; if (vertex_format & OBJ_VERTEX_COLOR0) rend_data_ctx.shader_flags.arr[U_MORPH_COLOR] = 1; @@ -1046,7 +1046,7 @@ static void draw_object_vertex_attrib_set_cheap( rend_data_ctx.set_batch_morph_weight(args->morph_weight); } else { - rend_data_ctx.shader_flags.arr[U_MORPH] = 0; + rend_data_ctx.shader_flags.arr[U_MORPH_POS_NORMAL_UV] = 0; rend_data_ctx.shader_flags.arr[U_MORPH_COLOR] = 0; } } @@ -1098,7 +1098,7 @@ static void draw_object_vertex_attrib_set_default( rend_data_ctx.shader_flags.arr[U_SKINNING] = 0; if (args->morph_vb) { - rend_data_ctx.shader_flags.arr[U_MORPH] = 1; + rend_data_ctx.shader_flags.arr[U_MORPH_POS_NORMAL_UV] = 1; if (vertex_format & OBJ_VERTEX_COLOR0) rend_data_ctx.shader_flags.arr[U_MORPH_COLOR] = 1; @@ -1108,7 +1108,7 @@ static void draw_object_vertex_attrib_set_default( rend_data_ctx.set_batch_morph_weight(args->morph_weight); } else { - rend_data_ctx.shader_flags.arr[U_MORPH] = 0; + rend_data_ctx.shader_flags.arr[U_MORPH_POS_NORMAL_UV] = 0; rend_data_ctx.shader_flags.arr[U_MORPH_COLOR] = 0; } diff --git a/src/CRE/render.cpp b/src/CRE/render.cpp index 84451bce..2a6ea835 100644 --- a/src/CRE/render.cpp +++ b/src/CRE/render.cpp @@ -162,9 +162,9 @@ namespace rndr { texture* t = render_textures_data[i]; if (render_width[0] > t->width * 2 || render_height[0] > t->height * 2) - rend_data_ctx.shader_flags.arr[U_REDUCE] = 1; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 1; else - rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; rend_data_ctx.state.set_viewport(0, 0, t->width, t->height); rend_data_ctx.state.active_bind_texture_2d(0, taa_tex[taa_texture_selector]->glid); @@ -213,7 +213,7 @@ namespace rndr { mat4 mat; mat4_invert(&cam_view_projection, &mat); mat4_mul(&cam_view_projection_prev, &mat, &mat); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 6; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 6; camera_blur_shader_data shader_data = {}; shader_data.g_transform[0] = mat.row0; @@ -229,7 +229,7 @@ namespace rndr { taa_texture_selector = 0; rend_data_ctx.state.active_bind_texture_2d(1, taa_tex[taa_texture_selector]->glid); rend_data_ctx.state.bind_sampler(1, sampler); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 5; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 5; } shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); @@ -253,7 +253,7 @@ namespace rndr { rend_data_ctx.state.active_bind_texture_2d(0, taa_tex[taa_texture]->glid); rend_data_ctx.state.bind_sampler(0, rctx->render_samplers[0]); rend_data_ctx.shader_flags.arr[U_ALPHA_MASK] = ss_alpha_mask ? 1 : 0; - rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); draw_quad(rend_data_ctx, render_post_width[0], render_post_height[0], render_post_width_scale, render_post_height_scale, @@ -1180,7 +1180,7 @@ namespace rndr { rend_data_ctx.state.active_bind_texture_2d(0, tex->glid); rend_data_ctx.state.bind_sampler(0, rctx_ptr->render_samplers[0]); rend_data_ctx.state.set_viewport(0, 0, movie_textures_data[0]->width, movie_textures_data[0]->height); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); draw_quad(rend_data_ctx, tex->width, tex->height, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f); @@ -1504,7 +1504,7 @@ namespace rndr { void Render::downsample(render_data_context& rend_data_ctx) { render_context* rctx = rctx_ptr; - rend_data_ctx.shader_flags.arr[U_REDUCE] = 1; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 1; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); for (int32_t i = 1; i < downsample_count - 1; i++) { rend_texture[i].begin_render(rend_data_ctx.state); @@ -1517,7 +1517,7 @@ namespace rndr { 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f); } - rend_data_ctx.shader_flags.arr[U_REDUCE] = 3; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 3; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); int32_t downsample = max_def(downsample_count - 2, 0); @@ -1543,7 +1543,7 @@ namespace rndr { else { scale = 0.75; - rend_data_ctx.shader_flags.arr[U_REDUCE] = 1; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 1; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); } @@ -1682,7 +1682,7 @@ namespace rndr { taa_buffer[destination].begin_render(rend_data_ctx.state); rend_data_ctx.state.active_bind_texture_2d(0, taa_tex[source]->glid); rend_data_ctx.state.bind_sampler(0, rctx_ptr->render_samplers[1]); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); draw_quad(rend_data_ctx, render_post_width[0], render_post_height[0], render_post_width_scale, render_post_height_scale, @@ -1749,7 +1749,7 @@ namespace rndr { bool npr1, bool a31, bool npr_mask) { render_context* rctx = rctx_ptr; - rend_data_ctx.shader_flags.arr[U_TONE_MAP] = (int32_t)tone_map; + rend_data_ctx.shader_flags.arr[U_TONE_MAP_METHOD] = (int32_t)tone_map; rend_data_ctx.shader_flags.arr[U_FLARE] = 0; rend_data_ctx.shader_flags.arr[U_COMPOSITE_BACK] = 0; rend_data_ctx.shader_flags.arr[U_LIGHT_PROJ] = 0; @@ -2098,7 +2098,7 @@ namespace rndr { rend_data_ctx.state.active_bind_texture_2d(0, j.type == FRAME_TEXTURE_PRE_PP ? pre_pp_tex : post_pp_tex); rend_data_ctx.state.bind_sampler(0, rctx_ptr->render_samplers[0]); rend_data_ctx.state.set_viewport(0, 0, dst_tex->width, dst_tex->height); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); draw_quad(rend_data_ctx, dst_tex->width, dst_tex->height, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f); @@ -2207,7 +2207,7 @@ namespace rndr { rend_data_ctx.state.enable_blend(); rend_data_ctx.state.set_blend_func(GL_ONE, GL_ONE); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 4; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 4; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); rend_data_ctx.state.active_bind_texture_2d(0, lens_ghost_texture); rend_data_ctx.state.bind_sampler(0, rctx_ptr->render_samplers[0]); @@ -2276,7 +2276,7 @@ namespace rndr { 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, intensity.x * 0.5f, intensity.y * 0.5f, intensity.z * 0.5f, 1.0f); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 7; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 7; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); rend_data_ctx.state.set_viewport(0, 0, reduce_width[0], reduce_height[0]); diff --git a/src/CRE/render_context.cpp b/src/CRE/render_context.cpp index bda5361f..7a54efd9 100644 --- a/src/CRE/render_context.cpp +++ b/src/CRE/render_context.cpp @@ -207,76 +207,76 @@ void render_data::obj_shader_data::reset() { } void render_data::obj_shader_data::set_shader_flags(const int32_t* shader_flags) { - g_shader_flags.x.m.alpha_mask = shader_flags[U_ALPHA_MASK]; - g_shader_flags.x.m.alpha_test = shader_flags[U_ALPHA_TEST]; - g_shader_flags.x.m.aniso = shader_flags[U_ANISO]; - g_shader_flags.x.m.composite_back = shader_flags[U_COMPOSITE_BACK]; - g_shader_flags.x.m.texture_blend = shader_flags[U_TEXTURE_BLEND]; - g_shader_flags.x.m.unk = 0; //shader_flags[U_UNK_NEW_IN_MM_IDK_WHAT_TO_DO_WITH_IT]; - g_shader_flags.x.m.chara_color = shader_flags[U_CHARA_COLOR]; - g_shader_flags.x.m.clip_plane = shader_flags[U_CLIP_PLANE]; - g_shader_flags.x.m.u08 = shader_flags[U08]; - g_shader_flags.x.m.depth_peel = shader_flags[U_DEPTH_PEEL]; - g_shader_flags.x.m.depth = shader_flags[U_DEPTH]; - g_shader_flags.x.m.u0b = shader_flags[U0B]; - g_shader_flags.x.m.alpha_blend = shader_flags[U_ALPHA_BLEND]; - g_shader_flags.x.m.ripple_emit = shader_flags[U_RIPPLE_EMIT]; - g_shader_flags.x.m.esm_filter = shader_flags[U_ESM_FILTER]; - g_shader_flags.x.m.exposure = shader_flags[U_EXPOSURE]; - g_shader_flags.x.m.scene_fade = shader_flags[U_SCENE_FADE]; - g_shader_flags.x.m.fade = shader_flags[U_FADE]; - g_shader_flags.x.m.stage_ambient = shader_flags[U_STAGE_AMBIENT]; - g_shader_flags.x.m.flare = shader_flags[U_FLARE]; - g_shader_flags.y.m.fog_stage = shader_flags[U_FOG_STAGE]; - g_shader_flags.y.m.fog_chara = shader_flags[U_FOG_CHARA]; - g_shader_flags.y.m.u16 = shader_flags[U16]; - g_shader_flags.y.m.gauss = shader_flags[U_GAUSS]; - g_shader_flags.y.m.eye_lens = shader_flags[U_EYE_LENS]; - g_shader_flags.y.m.image_filter = shader_flags[U_IMAGE_FILTER]; - g_shader_flags.y.m.instance = shader_flags[U_INSTANCE]; - g_shader_flags.y.m.tone_curve = shader_flags[U_TONE_CURVE]; - g_shader_flags.y.m.light_proj = shader_flags[U_LIGHT_PROJ]; - g_shader_flags.y.m.magnify = shader_flags[U_MAGNIFY]; - g_shader_flags.y.m.membrane = shader_flags[U_MEMBRANE]; - g_shader_flags.y.m.mlaa = shader_flags[U_MLAA]; - g_shader_flags.y.m.mlaa_search = shader_flags[U_MLAA_SEARCH]; - g_shader_flags.y.m.morph_color = shader_flags[U_MORPH_COLOR]; - g_shader_flags.y.m.morph = shader_flags[U_MORPH]; - g_shader_flags.y.m.movie = shader_flags[U_MOVIE]; - g_shader_flags.y.m.u24 = shader_flags[U24]; - g_shader_flags.y.m.u25 = shader_flags[U25]; - g_shader_flags.y.m.npr_normal = shader_flags[U_NPR_NORMAL]; - g_shader_flags.z.m.npr = shader_flags[U_NPR]; - g_shader_flags.z.m.stage_shadow2 = shader_flags[U_STAGE_SHADOW2]; - g_shader_flags.z.m.reflect = shader_flags[U_REFLECT]; - g_shader_flags.z.m.reduce = shader_flags[U_REDUCE]; - g_shader_flags.z.m.chara_shadow = shader_flags[U_CHARA_SHADOW]; - g_shader_flags.z.m.chara_shadow2 = shader_flags[U_CHARA_SHADOW2]; - g_shader_flags.z.m.u2d = shader_flags[U2D]; - g_shader_flags.z.m.disp_lod = shader_flags[U_DISP_LOD]; - g_shader_flags.z.m.show_vector = shader_flags[U_SHOW_VECTOR]; - g_shader_flags.z.m.skinning = shader_flags[U_SKINNING]; - g_shader_flags.z.m.snow_particle = shader_flags[U_SNOW_PARTICLE]; - g_shader_flags.z.m.specular_ibl = shader_flags[U_SPECULAR_IBL]; - g_shader_flags.z.m.combiner = shader_flags[U_COMBINER]; - g_shader_flags.z.m.tex_0_type = shader_flags[U_TEX_0_TYPE]; - g_shader_flags.z.m.tex_1_type = shader_flags[U_TEX_1_TYPE]; - g_shader_flags.z.m.sss_filter = shader_flags[U_SSS_FILTER]; - g_shader_flags.w.m.sss_chara = shader_flags[U_SSS_CHARA]; - g_shader_flags.w.m.star = shader_flags[U_STAR]; - g_shader_flags.w.m.texture_count = shader_flags[U_TEXTURE_COUNT]; - g_shader_flags.w.m.env_map = shader_flags[U_ENV_MAP]; - g_shader_flags.w.m.ripple = shader_flags[U_RIPPLE]; - g_shader_flags.w.m.translucency = shader_flags[U_TRANSLUCENCY]; - g_shader_flags.w.m.normal = shader_flags[U_NORMAL]; - g_shader_flags.w.m.transparency = shader_flags[U_TRANSPARENCY]; - g_shader_flags.w.m.water_reflect = shader_flags[U_WATER_REFLECT]; - g_shader_flags.w.m.u40 = shader_flags[U40]; - g_shader_flags.w.m.u41 = shader_flags[U41]; - g_shader_flags.w.m.stage_shadow = shader_flags[U_STAGE_SHADOW]; - g_shader_flags.w.m.specular = shader_flags[U_SPECULAR]; - g_shader_flags.w.m.tone_map = shader_flags[U_TONE_MAP]; - g_shader_flags.w.m.u45 = shader_flags[U45]; + g_shader_flags.x.m.alpha_mask = shader_flags[U_ALPHA_MASK]; + g_shader_flags.x.m.alpha_test = shader_flags[U_ALPHA_TEST]; + g_shader_flags.x.m.aniso_tangent = shader_flags[U_ANISO_TANGENT]; + g_shader_flags.x.m.composite_back = shader_flags[U_COMPOSITE_BACK]; + g_shader_flags.x.m.blend_func_01 = shader_flags[U_BLEND_FUNC_01]; + g_shader_flags.x.m.unk = 0; //shader_flags[U_UNK_NEW_IN_MM_IDK_WHAT_TO_DO_WITH_IT]; + g_shader_flags.x.m.chara_color = shader_flags[U_CHARA_COLOR]; + g_shader_flags.x.m.clip_plane = shader_flags[U_CLIP_PLANE]; + g_shader_flags.x.m.u08 = shader_flags[U08]; + g_shader_flags.x.m.depth_peel = shader_flags[U_DEPTH_PEEL]; + g_shader_flags.x.m.depth = shader_flags[U_DEPTH]; + g_shader_flags.x.m.double_side = shader_flags[U_DOUBLE_SIDE]; + g_shader_flags.x.m.alpha_blend = shader_flags[U_ALPHA_BLEND]; + g_shader_flags.x.m.ripple_emit = shader_flags[U_RIPPLE_EMIT]; + g_shader_flags.x.m.esm_filter = shader_flags[U_ESM_FILTER]; + g_shader_flags.x.m.exposure = shader_flags[U_EXPOSURE]; + g_shader_flags.x.m.fade_color = shader_flags[U_FADE_COLOR]; + g_shader_flags.x.m.fade_type = shader_flags[U_FADE_TYPE]; + g_shader_flags.x.m.stage_ambient = shader_flags[U_STAGE_AMBIENT]; + g_shader_flags.x.m.flare = shader_flags[U_FLARE]; + g_shader_flags.y.m.fog = shader_flags[U_FOG]; + g_shader_flags.y.m.fogmap = shader_flags[U_FOGMAP]; + g_shader_flags.y.m.u16 = shader_flags[U16]; + g_shader_flags.y.m.gauss = shader_flags[U_GAUSS]; + g_shader_flags.y.m.eye_lens = shader_flags[U_EYE_LENS]; + g_shader_flags.y.m.image_filter = shader_flags[U_IMAGE_FILTER]; + g_shader_flags.y.m.instance = shader_flags[U_INSTANCE]; + g_shader_flags.y.m.tone_curve = shader_flags[U_TONE_CURVE]; + g_shader_flags.y.m.light_proj = shader_flags[U_LIGHT_PROJ]; + g_shader_flags.y.m.magnify = shader_flags[U_MAGNIFY]; + g_shader_flags.y.m.membrane = shader_flags[U_MEMBRANE]; + g_shader_flags.y.m.mlaa = shader_flags[U_MLAA]; + g_shader_flags.y.m.mlaa_search = shader_flags[U_MLAA_SEARCH]; + g_shader_flags.y.m.morph_color = shader_flags[U_MORPH_COLOR]; + g_shader_flags.y.m.morph_pos_normal_uv = shader_flags[U_MORPH_POS_NORMAL_UV]; + g_shader_flags.y.m.movie = shader_flags[U_MOVIE]; + g_shader_flags.y.m.u24 = shader_flags[U24]; + g_shader_flags.y.m.u25 = shader_flags[U25]; + g_shader_flags.y.m.npr_normal = shader_flags[U_NPR_NORMAL]; + g_shader_flags.z.m.npr = shader_flags[U_NPR]; + g_shader_flags.z.m.num_shadowmap = shader_flags[U_NUM_SHADOWMAP]; + g_shader_flags.z.m.reflect = shader_flags[U_REFLECT]; + g_shader_flags.z.m.reduce_tex = shader_flags[U_REDUCE_TEX]; + g_shader_flags.z.m.self_shadow = shader_flags[U_SELF_SHADOW]; + g_shader_flags.z.m.shadow_sample = shader_flags[U_SHADOW_SAMPLE]; + g_shader_flags.z.m.u2d = shader_flags[U2D]; + g_shader_flags.z.m.show_mipmap = shader_flags[U_SHOW_MIPMAP]; + g_shader_flags.z.m.show_vector = shader_flags[U_SHOW_VECTOR]; + g_shader_flags.z.m.skinning = shader_flags[U_SKINNING]; + g_shader_flags.z.m.snow_type = shader_flags[U_SNOW_TYPE]; + g_shader_flags.z.m.specular = shader_flags[U_SPECULAR]; + g_shader_flags.z.m.combiner = shader_flags[U_COMBINER]; + g_shader_flags.z.m.tex_0_type = shader_flags[U_TEX_0_TYPE]; + g_shader_flags.z.m.tex_1_type = shader_flags[U_TEX_1_TYPE]; + g_shader_flags.z.m.sss_filter = shader_flags[U_SSS_FILTER]; + g_shader_flags.w.m.sss_chara = shader_flags[U_SSS_CHARA]; + g_shader_flags.w.m.star = shader_flags[U_STAR]; + g_shader_flags.w.m.tex_color = shader_flags[U_TEX_COLOR]; + g_shader_flags.w.m.tex_envmap = shader_flags[U_TEX_ENVMAP]; + g_shader_flags.w.m.tex_format = shader_flags[U_TEX_FORMAT]; + g_shader_flags.w.m.tex_lucency = shader_flags[U_TEX_LUCENCY]; + g_shader_flags.w.m.tex_normal = shader_flags[U_TEX_NORMAL]; + g_shader_flags.w.m.tex_parency = shader_flags[U_TEX_PARENCY]; + g_shader_flags.w.m.tex_reflectmap = shader_flags[U_TEX_REFLECTMAP]; + g_shader_flags.w.m.tex_refractmap = shader_flags[U_TEX_REFRACTMAP]; + g_shader_flags.w.m.tex_refractmap_waterring = shader_flags[U_TEX_REFRACTMAP_WATERRING]; + g_shader_flags.w.m.tex_shadow = shader_flags[U_TEX_SHADOW]; + g_shader_flags.w.m.tex_specular = shader_flags[U_TEX_SPECULAR]; + g_shader_flags.w.m.tone_map_method = shader_flags[U_TONE_MAP_METHOD]; + g_shader_flags.w.m.uv_layer = shader_flags[U_UV_LAYER]; } void render_data::obj_scene_data::reset() { @@ -618,20 +618,20 @@ void render_data_context::get_scene_light(vec4* light_env_stage_diffuse, } void render_data_context::reset_shader_flags() { - shader_flags.arr[U_TEXTURE_COUNT] = 0; - shader_flags.arr[U_TEXTURE_BLEND] = 0; - shader_flags.arr[U_NORMAL] = 0; + shader_flags.arr[U_TEX_COLOR] = 0; + shader_flags.arr[U_BLEND_FUNC_01] = 0; + shader_flags.arr[U_TEX_NORMAL] = 0; + shader_flags.arr[U_TEX_SPECULAR] = 0; + shader_flags.arr[U_TEX_PARENCY] = 0; + shader_flags.arr[U_TEX_LUCENCY] = 0; + shader_flags.arr[U_TEX_ENVMAP] = 0; + shader_flags.arr[U_DOUBLE_SIDE] = 0; shader_flags.arr[U_SPECULAR] = 0; - shader_flags.arr[U_TRANSPARENCY] = 0; - shader_flags.arr[U_TRANSLUCENCY] = 0; - shader_flags.arr[U_ENV_MAP] = 0; - shader_flags.arr[U0B] = 0; - shader_flags.arr[U_SPECULAR_IBL] = 0; - shader_flags.arr[U_FOG_STAGE] = 0; - shader_flags.arr[U_FOG_CHARA] = 0; - shader_flags.arr[U_ANISO] = 0; - shader_flags.arr[U_STAGE_SHADOW] = 0; - shader_flags.arr[U45] = 0; + shader_flags.arr[U_FOG] = 0; + shader_flags.arr[U_FOGMAP] = 0; + shader_flags.arr[U_ANISO_TANGENT] = 0; + shader_flags.arr[U_TEX_SHADOW] = 0; + shader_flags.arr[U_UV_LAYER] = 0; shader_flags.arr[U_TEX_0_TYPE] = 0; shader_flags.arr[U_TEX_1_TYPE] = 0; } diff --git a/src/CRE/render_context.hpp b/src/CRE/render_context.hpp index 9c6dbee7..24f29abb 100644 --- a/src/CRE/render_context.hpp +++ b/src/CRE/render_context.hpp @@ -220,91 +220,91 @@ struct render_data { struct { union { struct { - uint32_t alpha_mask : 1; // bit 0 - uint32_t alpha_test : 1; // bit 1 - uint32_t aniso : 2; // bit 2:3 - uint32_t composite_back : 1; // bit 4 - uint32_t texture_blend : 3; // bit 5:7 - uint32_t unk : 2; // bit 8:9 - uint32_t chara_color : 1; // bit 10 - uint32_t clip_plane : 1; // bit 11 - uint32_t u08 : 1; // bit 12 - uint32_t depth_peel : 1; // bit 13 - uint32_t depth : 1; // bit 14 - uint32_t u0b : 1; // bit 15 - uint32_t alpha_blend : 3; // bit 16:18 - uint32_t ripple_emit : 1; // bit 19 - uint32_t esm_filter : 2; // bit 20:21 - uint32_t exposure : 2; // bit 22:23 - uint32_t scene_fade : 1; // bit 24 - uint32_t fade : 3; // bit 25:27 - uint32_t stage_ambient : 1; // bit 28 - uint32_t flare : 2; // bit 29:30 + uint32_t alpha_mask : 1; // bit 0 + uint32_t alpha_test : 1; // bit 1 + uint32_t aniso_tangent : 2; // bit 2:3 + uint32_t composite_back : 1; // bit 4 + uint32_t blend_func_01 : 3; // bit 5:7 + uint32_t unk : 2; // bit 8:9 + uint32_t chara_color : 1; // bit 10 + uint32_t clip_plane : 1; // bit 11 + uint32_t u08 : 1; // bit 12 + uint32_t depth_peel : 1; // bit 13 + uint32_t depth : 1; // bit 14 + uint32_t double_side : 1; // bit 15 + uint32_t alpha_blend : 3; // bit 16:18 + uint32_t ripple_emit : 1; // bit 19 + uint32_t esm_filter : 2; // bit 20:21 + uint32_t exposure : 2; // bit 22:23 + uint32_t fade_color : 1; // bit 24 + uint32_t fade_type : 3; // bit 25:27 + uint32_t stage_ambient : 1; // bit 28 + uint32_t flare : 2; // bit 29:30 } m; uint32_t w; } x; union { struct { - uint32_t fog_stage : 2; // bit 32+0:1 - uint32_t fog_chara : 2; // bit 32+2:3 - uint32_t u16 : 1; // bit 32+4 - uint32_t gauss : 2; // bit 32+5:6 - uint32_t eye_lens : 1; // bit 32+7 - uint32_t image_filter : 3; // bit 32+8:10 - uint32_t instance : 1; // bit 32+11 - uint32_t tone_curve : 1; // bit 32+12 - uint32_t light_proj : 1; // bit 32+13 - uint32_t magnify : 4; // bit 32+14:17 - uint32_t membrane : 2; // bit 32+18:19 - uint32_t mlaa : 2; // bit 32+20:21 - uint32_t mlaa_search : 2; // bit 32+22:23 - uint32_t morph_color : 1; // bit 32+24 - uint32_t morph : 1; // bit 32+25 - uint32_t movie : 2; // bit 32+26:27 - uint32_t u24 : 2; // bit 32+28:29 - uint32_t u25 : 1; // bit 32+30 - uint32_t npr_normal : 1; // bit 32+31 + uint32_t fog : 2; // bit 32+0:1 + uint32_t fogmap : 2; // bit 32+2:3 + uint32_t u16 : 1; // bit 32+4 + uint32_t gauss : 2; // bit 32+5:6 + uint32_t eye_lens : 1; // bit 32+7 + uint32_t image_filter : 3; // bit 32+8:10 + uint32_t instance : 1; // bit 32+11 + uint32_t tone_curve : 1; // bit 32+12 + uint32_t light_proj : 1; // bit 32+13 + uint32_t magnify : 4; // bit 32+14:17 + uint32_t membrane : 2; // bit 32+18:19 + uint32_t mlaa : 2; // bit 32+20:21 + uint32_t mlaa_search : 2; // bit 32+22:23 + uint32_t morph_color : 1; // bit 32+24 + uint32_t morph_pos_normal_uv : 1; // bit 32+25 + uint32_t movie : 2; // bit 32+26:27 + uint32_t u24 : 2; // bit 32+28:29 + uint32_t u25 : 1; // bit 32+30 + uint32_t npr_normal : 1; // bit 32+31 } m; uint32_t w; } y; union { struct { - uint32_t npr : 1; // bit 64+0 - uint32_t stage_shadow2 : 2; // bit 64+1:2 - uint32_t reflect : 2; // bit 64+3:4 - uint32_t reduce : 4; // bit 64+5:8 - uint32_t chara_shadow : 1; // bit 64+9 - uint32_t chara_shadow2 : 2; // bit 64+10:11 - uint32_t u2d : 3; // bit 64+12:14 - uint32_t disp_lod : 2; // bit 64+15:16 - uint32_t show_vector : 2; // bit 64+17:18 - uint32_t skinning : 1; // bit 64+19 - uint32_t snow_particle : 2; // bit 64+20:21 - uint32_t specular_ibl : 2; // bit 64+22:23 - uint32_t combiner : 1; // bit 64+24 - uint32_t tex_0_type : 2; // bit 64+25:26 - uint32_t tex_1_type : 2; // bit 64+27:28 - uint32_t sss_filter : 2; // bit 64+29:30 + uint32_t npr : 1; // bit 64+0 + uint32_t num_shadowmap : 2; // bit 64+1:2 + uint32_t reflect : 2; // bit 64+3:4 + uint32_t reduce_tex : 4; // bit 64+5:8 + uint32_t self_shadow : 1; // bit 64+9 + uint32_t shadow_sample : 2; // bit 64+10:11 + uint32_t u2d : 3; // bit 64+12:14 + uint32_t show_mipmap : 2; // bit 64+15:16 + uint32_t show_vector : 2; // bit 64+17:18 + uint32_t skinning : 1; // bit 64+19 + uint32_t snow_type : 2; // bit 64+20:21 + uint32_t specular : 2; // bit 64+22:23 + uint32_t combiner : 1; // bit 64+24 + uint32_t tex_0_type : 2; // bit 64+25:26 + uint32_t tex_1_type : 2; // bit 64+27:28 + uint32_t sss_filter : 2; // bit 64+29:30 } m; uint32_t w; } z; union { struct { - uint32_t sss_chara : 1; // bit 96+0 - uint32_t star : 1; // bit 96+1 - uint32_t texture_count : 2; // bit 96+2:3 - uint32_t env_map : 1; // bit 96+4 - uint32_t ripple : 2; // bit 96+5:6 - uint32_t translucency : 1; // bit 96+7 - uint32_t normal : 1; // bit 96+8 - uint32_t transparency : 1; // bit 96+9 - uint32_t water_reflect : 1; // bit 96+10 - uint32_t u40 : 1; // bit 96+11 - uint32_t u41 : 1; // bit 96+12 - uint32_t stage_shadow : 1; // bit 96+13 - uint32_t specular : 1; // bit 96+14 - uint32_t tone_map : 2; // bit 96+15 - uint32_t u45 : 1; // bit 96+16 + uint32_t sss_chara : 1; // bit 96+0 + uint32_t star : 1; // bit 96+1 + uint32_t tex_color : 2; // bit 96+2:3 + uint32_t tex_envmap : 1; // bit 96+4 + uint32_t tex_format : 2; // bit 96+5:6 + uint32_t tex_lucency : 1; // bit 96+7 + uint32_t tex_normal : 1; // bit 96+8 + uint32_t tex_parency : 1; // bit 96+9 + uint32_t tex_reflectmap : 1; // bit 96+10 + uint32_t tex_refractmap : 1; // bit 96+11 + uint32_t tex_refractmap_waterring : 1; // bit 96+12 + uint32_t tex_shadow : 1; // bit 96+13 + uint32_t tex_specular : 1; // bit 96+14 + uint32_t tone_map_method : 2; // bit 96+15 + uint32_t uv_layer : 1; // bit 96+16 } m; uint32_t w; } w; diff --git a/src/CRE/render_manager.cpp b/src/CRE/render_manager.cpp index 34b8009a..c79f83f9 100644 --- a/src/CRE/render_manager.cpp +++ b/src/CRE/render_manager.cpp @@ -725,7 +725,7 @@ namespace rndr { else rend_data_ctx.state.active_bind_texture_2d(14, rctx->empty_texture_2d->glid); - rend_data_ctx.shader_flags.arr[U_WATER_REFLECT] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_REFLECTMAP] = 0; rctx->sss_data->set_texture(rend_data_ctx.state, 3); @@ -960,11 +960,11 @@ namespace rndr { refl_tex = &get_render_texture(0); refl_tex->bind_texture(rend_data_ctx.state, 15); rend_data_ctx.state.active_bind_texture_2d(15, refl_tex->get_texture_glid()); - rend_data_ctx.shader_flags.arr[U_WATER_REFLECT] = 1; + rend_data_ctx.shader_flags.arr[U_TEX_REFLECTMAP] = 1; } else { rend_data_ctx.state.active_bind_texture_2d(15, rctx->empty_texture_2d->glid); - rend_data_ctx.shader_flags.arr[U_WATER_REFLECT] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_REFLECTMAP] = 0; } rctx->sss_data->set_texture(rend_data_ctx.state, 1); @@ -1703,7 +1703,7 @@ static void draw_pass_reflect_full(render_data_context& rend_data_ctx, rndr::Ren else rend_data_ctx.state.active_bind_texture_2d(14, rctx->empty_texture_2d->glid); - rend_data_ctx.shader_flags.arr[U_WATER_REFLECT] = 0; + rend_data_ctx.shader_flags.arr[U_TEX_REFLECTMAP] = 0; rctx->sss_data->set_texture(rend_data_ctx.state, 3); diff --git a/src/CRE/renderer/transparency.cpp b/src/CRE/renderer/transparency.cpp index 845418c6..1cbe009c 100644 --- a/src/CRE/renderer/transparency.cpp +++ b/src/CRE/renderer/transparency.cpp @@ -76,7 +76,7 @@ namespace renderer { if (!GLAD_GL_VERSION_4_3) { rend_data_ctx.state.disable_depth_test(); - rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); rend_data_ctx.state.active_bind_texture_2d(0, texture); rend_data_ctx.state.bind_sampler(0, rctx_ptr->render_samplers[1]); diff --git a/src/CRE/shader.cpp b/src/CRE/shader.cpp index e7309a1d..ac930a84 100644 --- a/src/CRE/shader.cpp +++ b/src/CRE/shader.cpp @@ -685,7 +685,7 @@ void shader_set_data::load(struct farc* f, bool ignore_cache, int32_t num_sub = shader->num_sub; const shader_sub_table* sub_table = shaders_table[i].sub; shader_sub* sub = shader->sub; - const uniform_name* use_uniform = shader->use_uniform; + const UniformName* use_uniform = shader->use_uniform; for (int32_t j = 0; j < num_sub; j++, sub++, sub_table++) { sub->sub_index = sub_table->sub_index; sub->vp_unival_max = sub_table->vp_unival_max; diff --git a/src/CRE/shader.hpp b/src/CRE/shader.hpp index cbcac3f3..6e55cc2e 100644 --- a/src/CRE/shader.hpp +++ b/src/CRE/shader.hpp @@ -45,7 +45,7 @@ struct shader_description { shader_description_type type; int32_t binding; int32_t data; - uniform_name use_uniform; + UniformName use_uniform; }; struct shader_sub_table { @@ -64,7 +64,7 @@ struct shader_table { int32_t num_sub; const shader_sub_table* sub; int32_t num_uniform; - const uniform_name* use_uniform; + const UniformName* use_uniform; }; struct shader; @@ -96,7 +96,7 @@ struct shader { int32_t num_sub; shader_sub* sub; int32_t num_uniform; - const uniform_name* use_uniform; + const UniformName* use_uniform; PFNSHADERBINDFUNCPROC bind_func; int32_t bind(struct p_gl_rend_state& p_gl_rend_st, diff --git a/src/CRE/shader_dev.cpp b/src/CRE/shader_dev.cpp index 37330e46..136615f4 100644 --- a/src/CRE/shader_dev.cpp +++ b/src/CRE/shader_dev.cpp @@ -132,20 +132,20 @@ static const shader_description cubemap_display_fpt_desc[] = { #undef SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER #pragma endregion -static const uniform_name CONVERT_YCBCR_BT709_uniform[] = { +static const UniformName CONVERT_YCBCR_BT709_uniform[] = { U_INVALID, }; -static const uniform_name CONVERT_ALPHA_uniform[] = { +static const UniformName CONVERT_ALPHA_uniform[] = { U_INVALID, }; -static const uniform_name CONVERT_RGB_uniform[] = { +static const UniformName CONVERT_RGB_uniform[] = { U_INVALID, }; #if DISPLAY_IBL -static const uniform_name CUBEMAP_DISPLAY_uniform[] = { +static const UniformName CUBEMAP_DISPLAY_uniform[] = { U_INVALID, }; #endif @@ -191,7 +191,7 @@ static const shader_sub_table CUBEMAP_DISPLAY_table[] = { SHADER_DEV_##n, \ sizeof(n##_table) / sizeof(shader_sub_table), \ n##_table, \ - n##_uniform[0] > 0 ? sizeof(n##_uniform) / sizeof(uniform_name) : 0, \ + n##_uniform[0] > 0 ? sizeof(n##_uniform) / sizeof(UniformName) : 0, \ n##_uniform, \ } diff --git a/src/CRE/shader_ft.cpp b/src/CRE/shader_ft.cpp index 0843a3c3..172d2134 100644 --- a/src/CRE/shader_ft.cpp +++ b/src/CRE/shader_ft.cpp @@ -733,11 +733,11 @@ static const shader_description blinn_per_vert_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -766,12 +766,12 @@ static const shader_description blinn_per_frag_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -801,11 +801,11 @@ static const shader_description item_blinn_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -833,12 +833,12 @@ static const shader_description stage_blinn_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1066,10 +1066,10 @@ static const shader_description sky_default_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1200,9 +1200,9 @@ static const shader_description silhouette_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 8, 2, U_INVALID, }, { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1223,11 +1223,11 @@ static const shader_description lambert_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1250,10 +1250,10 @@ static const shader_description constant_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1621,12 +1621,12 @@ static const shader_description water01_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 8, 2, U_INVALID, }, { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 12, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1749,11 +1749,11 @@ static const shader_description floor_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_EFFECT_TEXTURE_SAMPLER, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 10, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 11, 3, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1804,9 +1804,9 @@ static const shader_description simple_reflect_vpt_desc[] = { { SHADER_DESCRIPTION_VERTEX_INPUT, 8, 2, U_INVALID, }, { SHADER_DESCRIPTION_VERTEX_INPUT, 9, 2, U_INVALID, }, SHADER_DESCRIPTION_COMMON_SCENE, - { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH, }, - { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 5, 4, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 13, 2, U_MORPH_POS_NORMAL_UV, }, + { SHADER_DESCRIPTION_VERTEX_INPUT, 14, 2, U_MORPH_POS_NORMAL_UV, }, SHADER_DESCRIPTION_COMMON_SKINNING, { SHADER_DESCRIPTION_END, -1, -1, U_INVALID, }, }; @@ -1845,7 +1845,7 @@ static const shader_description ripple_emit_vpt_desc[] = { }; static const shader_description ripple_emit_fpt_desc[] = { - { SHADER_DESCRIPTION_SAMPLER, 7, 0, U_RIPPLE, }, + { SHADER_DESCRIPTION_SAMPLER, 7, 0, U_TEX_FORMAT, }, { SHADER_DESCRIPTION_UNIFORM, 0, SHADER_DESCRIPTION_UNIFORM_READ_ONLY | 0x30, U_INVALID, }, // sizeof(ripple_emit_scene_shader_data) { SHADER_DESCRIPTION_FRAGMENT_OUTPUT, 0, 4, U_INVALID, }, @@ -2348,224 +2348,224 @@ static const shader_sub_table TRANSPARENCY_table[] = { #undef shader_sub_table_struct -static const uniform_name BLINN_uniform[] = { +static const UniformName BLINN_uniform[] = { U_SKINNING, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, }; -static const uniform_name ITEM_uniform[] = { +static const UniformName ITEM_uniform[] = { U_SKINNING, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, }; -static const uniform_name STAGE_uniform[] = { +static const UniformName STAGE_uniform[] = { U_SKINNING, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, }; -static const uniform_name SKIN_uniform[] = { +static const UniformName SKIN_uniform[] = { U_SKINNING, U_ALPHA_TEST, }; -static const uniform_name SSS_SKIN_uniform[] = { +static const UniformName SSS_SKIN_uniform[] = { U_SKINNING, U_ALPHA_TEST, }; -static const uniform_name SSS_FILT_uniform[] = { +static const UniformName SSS_FILT_uniform[] = { U_INVALID, }; -static const uniform_name HAIR_uniform[] = { +static const UniformName HAIR_uniform[] = { U_SKINNING, U_ALPHA_TEST, }; -static const uniform_name CLOTH_uniform[] = { +static const UniformName CLOTH_uniform[] = { U_SKINNING, U_ALPHA_TEST, }; -static const uniform_name TIGHTS_uniform[] = { +static const UniformName TIGHTS_uniform[] = { U_SKINNING, U_ALPHA_TEST, }; -static const uniform_name SKY_uniform[] = { - U_MORPH, +static const UniformName SKY_uniform[] = { + U_MORPH_POS_NORMAL_UV, }; -static const uniform_name GLASEYE_uniform[] = { +static const UniformName GLASEYE_uniform[] = { U_SKINNING, }; -static const uniform_name ESMGAUSS_uniform[] = { +static const UniformName ESMGAUSS_uniform[] = { U_LIGHT_PROJ, }; -static const uniform_name ESMFILT_uniform[] = { +static const UniformName ESMFILT_uniform[] = { U_INVALID, }; -static const uniform_name LITPROJ_uniform[] = { +static const UniformName LITPROJ_uniform[] = { U_SKINNING, U_ALPHA_TEST, }; -static const uniform_name SIMPLE_uniform[] = { +static const UniformName SIMPLE_uniform[] = { U_SKINNING, U_ALPHA_TEST, }; -static const uniform_name SIL_uniform[] = { +static const UniformName SIL_uniform[] = { U_SKINNING, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, U_DEPTH, }; -static const uniform_name LAMBERT_uniform[] = { +static const UniformName LAMBERT_uniform[] = { U_SKINNING, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, }; -static const uniform_name CONSTANT_uniform[] = { +static const UniformName CONSTANT_uniform[] = { U_SKINNING, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, }; -static const uniform_name TONEMAP_uniform[] = { - U_TONE_MAP, +static const UniformName TONEMAP_uniform[] = { + U_TONE_MAP_METHOD, U_COMPOSITE_BACK, }; -static const uniform_name REDUCE_uniform[] = { +static const UniformName REDUCE_uniform[] = { U_INVALID, }; -static const uniform_name MAGNIFY_uniform[] = { +static const UniformName MAGNIFY_uniform[] = { U_INVALID, }; -static const uniform_name MLAA_uniform[] = { +static const UniformName MLAA_uniform[] = { U_ALPHA_MASK, U_MLAA_SEARCH, }; -static const uniform_name CONTOUR_uniform[] = { +static const UniformName CONTOUR_uniform[] = { U_INVALID, }; -static const uniform_name CONTOUR_NPR_uniform[] = { +static const UniformName CONTOUR_NPR_uniform[] = { U_INVALID, }; -static const uniform_name EXPOSURE_uniform[] = { +static const UniformName EXPOSURE_uniform[] = { U_INVALID, }; -static const uniform_name GAUSS_uniform[] = { +static const UniformName GAUSS_uniform[] = { U_INVALID, }; -static const uniform_name SUN_uniform[] = { +static const UniformName SUN_uniform[] = { U_INVALID, }; -static const uniform_name SUN_NO_TEXTURED_uniform[] = { +static const UniformName SUN_NO_TEXTURED_uniform[] = { U_INVALID, }; -static const uniform_name WATER01_uniform[] = { - U_MORPH, +static const UniformName WATER01_uniform[] = { + U_MORPH_POS_NORMAL_UV, }; -static const uniform_name W_PTCL_uniform[] = { +static const UniformName W_PTCL_uniform[] = { U_INVALID, }; -static const uniform_name SNOW_PT_uniform[] = { +static const UniformName SNOW_PT_uniform[] = { U_INVALID, }; -static const uniform_name LEAF_PT_uniform[] = { +static const UniformName LEAF_PT_uniform[] = { U_INVALID, }; -static const uniform_name STAR_uniform[] = { +static const UniformName STAR_uniform[] = { U_INVALID, }; -static const uniform_name FLOOR_uniform[] = { - U_MORPH, +static const UniformName FLOOR_uniform[] = { + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, }; -static const uniform_name PUDDLE_uniform[] = { +static const UniformName PUDDLE_uniform[] = { U_INVALID, }; -static const uniform_name S_REFL_uniform[] = { +static const UniformName S_REFL_uniform[] = { U_SKINNING, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_ALPHA_TEST, U_CLIP_PLANE, }; -static const uniform_name S_REFR_uniform[] = { +static const UniformName S_REFR_uniform[] = { U_SKINNING, }; -static const uniform_name RIPEMIT_uniform[] = { - U_RIPPLE, +static const UniformName RIPEMIT_uniform[] = { + U_TEX_FORMAT, U_RIPPLE_EMIT, }; -static const uniform_name RAIN_uniform[] = { +static const UniformName RAIN_uniform[] = { U_INVALID, }; -static const uniform_name RIPPLE_uniform[] = { - U_RIPPLE, +static const UniformName RIPPLE_uniform[] = { + U_TEX_FORMAT, }; -static const uniform_name FOGPTCL_uniform[] = { +static const UniformName FOGPTCL_uniform[] = { U_INVALID, }; -static const uniform_name PARTICL_uniform[] = { +static const UniformName PARTICL_uniform[] = { U_INVALID, }; -static const uniform_name GLITTER_PT_uniform[] = { +static const UniformName GLITTER_PT_uniform[] = { U_INVALID, }; -static const uniform_name FONT_uniform[] = { +static const UniformName FONT_uniform[] = { U_INVALID, }; -static const uniform_name IMGFILT_uniform[] = { +static const UniformName IMGFILT_uniform[] = { U_INVALID, }; -static const uniform_name SPRITE_uniform[] = { +static const UniformName SPRITE_uniform[] = { U_TEX_0_TYPE, U_TEX_1_TYPE, U_COMBINER, }; -static const uniform_name DOF_uniform[] = { +static const UniformName DOF_uniform[] = { U_DOF, }; -static const uniform_name TRANSPARENCY_uniform[] = { +static const UniformName TRANSPARENCY_uniform[] = { U_INVALID, }; @@ -2598,7 +2598,7 @@ struct glass_eye_struct { SHADER_FT_##n, \ sizeof(n##_table) / sizeof(shader_sub_table), \ n##_table, \ - n##_uniform[0] > 0 ? sizeof(n##_uniform) / sizeof(uniform_name) : 0, \ + n##_uniform[0] > 0 ? sizeof(n##_uniform) / sizeof(UniformName) : 0, \ n##_uniform, \ } @@ -2892,14 +2892,14 @@ static void glass_eye_set(p_gl_rend_state& p_gl_rend_st, glass_eye_struct* glass static void shader_bind_blinn(p_gl_rend_state& p_gl_rend_st, uniform_value& shader_flags, shader_set_data* set, shader* shad) { - shad->bind(p_gl_rend_st, shader_flags, set, shader_flags.arr[U_NORMAL] + shad->bind(p_gl_rend_st, shader_flags, set, shader_flags.arr[U_TEX_NORMAL] ? SHADER_FT_SUB_BLINN_FRAG : SHADER_FT_SUB_BLINN_VERT); } static void shader_bind_cloth(p_gl_rend_state& p_gl_rend_st, uniform_value& shader_flags, shader_set_data* set, shader* shad) { shad->bind(p_gl_rend_st, shader_flags, set, shader_flags.arr[U_NPR] ? SHADER_FT_SUB_CLOTH_NPR1 - : (shader_flags.arr[U_ANISO] ? SHADER_FT_SUB_CLOTH_ANISO : SHADER_FT_SUB_CLOTH_DEFAULT)); + : (shader_flags.arr[U_ANISO_TANGENT] ? SHADER_FT_SUB_CLOTH_ANISO : SHADER_FT_SUB_CLOTH_DEFAULT)); } static void shader_bind_hair(p_gl_rend_state& p_gl_rend_st, @@ -2949,7 +2949,7 @@ static void shader_bind_esm_filter(p_gl_rend_state& p_gl_rend_st, static void shader_bind_reduce_tex(p_gl_rend_state& p_gl_rend_st, uniform_value& shader_flags, shader_set_data* set, shader* shad) { - switch (shader_flags.arr[U_REDUCE]) { + switch (shader_flags.arr[U_REDUCE_TEX]) { case 0: switch (shader_flags.arr[U_ALPHA_MASK]) { case 0: @@ -3070,7 +3070,7 @@ static void shader_bind_gauss(p_gl_rend_state& p_gl_rend_st, static void shader_bind_snow_particle(p_gl_rend_state& p_gl_rend_st, uniform_value& shader_flags, shader_set_data* set, shader* shad) { - switch (shader_flags.arr[U_SNOW_PARTICLE]) { + switch (shader_flags.arr[U_SNOW_TYPE]) { case 0: shad->bind(p_gl_rend_st, shader_flags, set, SHADER_FT_SUB_SNOW_PARTICLE_CPU); break; diff --git a/src/CRE/shadow.cpp b/src/CRE/shadow.cpp index 6df25b04..bec4861c 100644 --- a/src/CRE/shadow.cpp +++ b/src/CRE/shadow.cpp @@ -619,7 +619,7 @@ void Shadow::bind_shadow(render_data_context& rend_data_ctx, render_context* rct vec4 shadow_ambient1; if (m_num_group > 0) { rctx->draw_state->rend_data[rend_data_ctx.index].shadow = true; - rend_data_ctx.shader_flags.arr[U_STAGE_SHADOW2] = m_num_group > 1 ? 1 : 0; + rend_data_ctx.shader_flags.arr[U_NUM_SHADOWMAP] = m_num_group > 1 ? 1 : 0; float_t distance = get_distance(); for (int32_t i = 0; i < 2; i++) { diff --git a/src/CRE/sss.cpp b/src/CRE/sss.cpp index b2be8b05..ea0941be 100644 --- a/src/CRE/sss.cpp +++ b/src/CRE/sss.cpp @@ -48,7 +48,7 @@ void sss_data::apply_filter(struct render_data_context& rend_data_ctx) { textures[0].begin_render(rend_data_ctx.state); rend_data_ctx.state.set_viewport(0, 0, 640, 360); rndr::Render* rend = &rctx->render; - rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_REDUCE); RenderTexture& rt = reflect_draw ? rctx->render_manager->get_render_texture(0) diff --git a/src/CRE/static_var.hpp b/src/CRE/static_var.hpp index 757ea4ce..1067d203 100644 --- a/src/CRE/static_var.hpp +++ b/src/CRE/static_var.hpp @@ -29,29 +29,29 @@ enum gpu_vendor { GPU_VENDOR_INTEL, }; -enum uniform_name { +enum UniformName { U_NONE = 0, U_ALPHA_MASK, U_ALPHA_TEST, - U_ANISO, + U_ANISO_TANGENT, U_COMPOSITE_BACK, - U_TEXTURE_BLEND, + U_BLEND_FUNC_01, U_CHARA_COLOR, U_CLIP_PLANE, U08, U_DEPTH_PEEL, U_DEPTH, - U0B, + U_DOUBLE_SIDE, U_ALPHA_BLEND, U_RIPPLE_EMIT, U_ESM_FILTER, U_EXPOSURE, - U_SCENE_FADE, - U_FADE, + U_FADE_COLOR, + U_FADE_TYPE, U_STAGE_AMBIENT, U_FLARE, - U_FOG_STAGE, - U_FOG_CHARA, + U_FOG, + U_FOGMAP, U16, U_GAUSS, U_EYE_LENS, @@ -64,42 +64,42 @@ enum uniform_name { U_MLAA, U_MLAA_SEARCH, U_MORPH_COLOR, - U_MORPH, + U_MORPH_POS_NORMAL_UV, U_MOVIE, U24, U25, U_NPR_NORMAL, U_NPR, - U_STAGE_SHADOW2, + U_NUM_SHADOWMAP, U_REFLECT, - U_REDUCE, - U_CHARA_SHADOW, - U_CHARA_SHADOW2, + U_REDUCE_TEX, + U_SELF_SHADOW, + U_SHADOW_SAMPLE, U2D, - U_DISP_LOD, + U_SHOW_MIPMAP, U_SHOW_VECTOR, U_SKINNING, - U_SNOW_PARTICLE, - U_SPECULAR_IBL, + U_SNOW_TYPE, + U_SPECULAR, U_COMBINER, U_TEX_0_TYPE, U_TEX_1_TYPE, U_SSS_FILTER, U_SSS_CHARA, U_STAR, - U_TEXTURE_COUNT, - U_ENV_MAP, - U_RIPPLE, - U_TRANSLUCENCY, - U_NORMAL, - U_TRANSPARENCY, - U_WATER_REFLECT, - U40, - U41, - U_STAGE_SHADOW, - U_SPECULAR, - U_TONE_MAP, - U45, + U_TEX_COLOR, + U_TEX_ENVMAP, + U_TEX_FORMAT, + U_TEX_LUCENCY, + U_TEX_NORMAL, + U_TEX_PARENCY, + U_TEX_REFLECTMAP, + U_TEX_REFRACTMAP, + U_TEX_REFRACTMAP_WATERRING, + U_TEX_SHADOW, + U_TEX_SPECULAR, + U_TONE_MAP_METHOD, + U_UV_LAYER, U_MAX, U_INVALID = -1, diff --git a/src/ReDIVA/app.cpp b/src/ReDIVA/app.cpp index 8ed06cea..c15e620d 100644 --- a/src/ReDIVA/app.cpp +++ b/src/ReDIVA/app.cpp @@ -1274,7 +1274,7 @@ static void render_context_disp(render_context* rctx) { post_rend_data_ctx.state.bind_framebuffer(0); post_rend_data_ctx.state.active_bind_texture_2d(0, rctx->screen_buffer.get_texture_glid()); post_rend_data_ctx.shader_flags.arr[U_ALPHA_MASK] = 0; - post_rend_data_ctx.shader_flags.arr[U_REDUCE] = 0; + post_rend_data_ctx.shader_flags.arr[U_REDUCE_TEX] = 0; shaders_ft.set(post_rend_data_ctx.state, post_rend_data_ctx.shader_flags, SHADER_FT_REDUCE); rctx->render.draw_quad(post_rend_data_ctx, rctx->sprite_width, rctx->sprite_height, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);