Renamed translucent_no_shadow to translucent_sort_by_radius
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include "disp_manager.hpp"
|
||||
#include "../../KKdLib/hash.hpp"
|
||||
#include "../Glitter/glitter.hpp"
|
||||
#include "../rob/rob.hpp"
|
||||
#include "../gl_state.hpp"
|
||||
@@ -1586,7 +1587,7 @@ namespace mdl {
|
||||
|
||||
switch (type) {
|
||||
case OBJ_TYPE_TRANSLUCENT:
|
||||
case OBJ_TYPE_TRANSLUCENT_NO_SHADOW:
|
||||
case OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS:
|
||||
//case OBJ_TYPE_TRANSLUCENT_LOCAL:
|
||||
if (depth_mask)
|
||||
func = draw_sub_mesh_translucent;
|
||||
@@ -1695,7 +1696,7 @@ namespace mdl {
|
||||
|
||||
switch (type) {
|
||||
case OBJ_TYPE_TRANSLUCENT:
|
||||
case OBJ_TYPE_TRANSLUCENT_NO_SHADOW:
|
||||
case OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS:
|
||||
case OBJ_TYPE_REFLECT_TRANSLUCENT:
|
||||
case OBJ_TYPE_REFRACT_TRANSLUCENT:
|
||||
if (!depth_mask)
|
||||
@@ -1927,7 +1928,7 @@ namespace mdl {
|
||||
obj_mesh_index_buffer* obj_index_buf, const mat4* mat,
|
||||
prj::vector<GLuint>* textures, vec4* blend_color, mat4* bone_mat, ::obj* object_morph,
|
||||
obj_mesh_vertex_buffer* obj_morph_vertex_buf, int32_t instances_count, mat4* instances_mat,
|
||||
void(*func)(const ObjSubMeshArgs*), const ObjSubMeshArgs* func_data,
|
||||
void(*func)(const mdl::ObjSubMeshArgs*), const ObjSubMeshArgs* func_data,
|
||||
bool enable_bone_mat, bool local) {
|
||||
if (!obj_vertex_buf || !obj_index_buf)
|
||||
return false;
|
||||
@@ -2231,9 +2232,9 @@ namespace mdl {
|
||||
if (!attrib.translucent_priority)
|
||||
/*if (local)
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_LOCAL, data);
|
||||
else */if (mesh->attrib.m.translucent_no_shadow
|
||||
|| obj_flags & mdl::OBJ_TRANSLUCENT_NO_SHADOW) {
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_NO_SHADOW, data);
|
||||
else */if (mesh->attrib.m.translucent_sort_by_radius
|
||||
|| obj_flags & mdl::OBJ_TRANSLUCENT_SORT_BY_RADIUS) {
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, data);
|
||||
}
|
||||
else
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT, data);
|
||||
|
||||
@@ -40,44 +40,44 @@ namespace mdl {
|
||||
};
|
||||
|
||||
enum ObjFlags : uint32_t {
|
||||
OBJ_SHADOW = 0x00000001,
|
||||
OBJ_2 = 0x00000002,
|
||||
OBJ_4 = 0x00000004,
|
||||
OBJ_8 = 0x00000008,
|
||||
OBJ_10 = 0x00000010,
|
||||
OBJ_20 = 0x00000020,
|
||||
OBJ_40 = 0x00000040,
|
||||
OBJ_SHADOW_OBJECT = 0x00000080,
|
||||
OBJ_CHARA_REFLECT = 0x00000100,
|
||||
OBJ_REFLECT = 0x00000200,
|
||||
OBJ_REFRACT = 0x00000400,
|
||||
OBJ_800 = 0x00000800,
|
||||
OBJ_TRANSLUCENT_NO_SHADOW = 0x00001000,
|
||||
OBJ_SSS = 0x00002000,
|
||||
OBJ_4000 = 0x00004000,
|
||||
OBJ_8000 = 0x00008000,
|
||||
OBJ_ALPHA_ORDER_1 = 0x00010000,
|
||||
OBJ_ALPHA_ORDER_2 = 0x00020000,
|
||||
OBJ_ALPHA_ORDER_3 = 0x00040000,
|
||||
OBJ_80000 = 0x00080000,
|
||||
OBJ_100000 = 0x00100000,
|
||||
OBJ_200000 = 0x00200000,
|
||||
OBJ_400000 = 0x00400000,
|
||||
OBJ_800000 = 0x00800000,
|
||||
OBJ_USER = 0x01000000,
|
||||
OBJ_2000000 = 0x02000000,
|
||||
OBJ_4000000 = 0x04000000,
|
||||
OBJ_8000000 = 0x08000000,
|
||||
OBJ_10000000 = 0x10000000,
|
||||
OBJ_20000000 = 0x20000000,
|
||||
OBJ_40000000 = 0x40000000,
|
||||
OBJ_NO_TRANSLUCENCY = 0x80000000,
|
||||
OBJ_SHADOW = 0x00000001,
|
||||
OBJ_2 = 0x00000002,
|
||||
OBJ_4 = 0x00000004,
|
||||
OBJ_8 = 0x00000008,
|
||||
OBJ_10 = 0x00000010,
|
||||
OBJ_20 = 0x00000020,
|
||||
OBJ_40 = 0x00000040,
|
||||
OBJ_SHADOW_OBJECT = 0x00000080,
|
||||
OBJ_CHARA_REFLECT = 0x00000100,
|
||||
OBJ_REFLECT = 0x00000200,
|
||||
OBJ_REFRACT = 0x00000400,
|
||||
OBJ_800 = 0x00000800,
|
||||
OBJ_TRANSLUCENT_SORT_BY_RADIUS = 0x00001000,
|
||||
OBJ_SSS = 0x00002000,
|
||||
OBJ_4000 = 0x00004000,
|
||||
OBJ_8000 = 0x00008000,
|
||||
OBJ_ALPHA_ORDER_1 = 0x00010000,
|
||||
OBJ_ALPHA_ORDER_2 = 0x00020000,
|
||||
OBJ_ALPHA_ORDER_3 = 0x00040000,
|
||||
OBJ_80000 = 0x00080000,
|
||||
OBJ_100000 = 0x00100000,
|
||||
OBJ_200000 = 0x00200000,
|
||||
OBJ_400000 = 0x00400000,
|
||||
OBJ_800000 = 0x00800000,
|
||||
OBJ_USER = 0x01000000,
|
||||
OBJ_2000000 = 0x02000000,
|
||||
OBJ_4000000 = 0x04000000,
|
||||
OBJ_8000000 = 0x08000000,
|
||||
OBJ_10000000 = 0x10000000,
|
||||
OBJ_20000000 = 0x20000000,
|
||||
OBJ_40000000 = 0x40000000,
|
||||
OBJ_NO_TRANSLUCENCY = 0x80000000,
|
||||
};
|
||||
|
||||
enum ObjType {
|
||||
OBJ_TYPE_OPAQUE = 0,
|
||||
OBJ_TYPE_TRANSLUCENT,
|
||||
OBJ_TYPE_TRANSLUCENT_NO_SHADOW,
|
||||
OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS,
|
||||
OBJ_TYPE_TRANSPARENT,
|
||||
OBJ_TYPE_SHADOW_CHARA,
|
||||
OBJ_TYPE_SHADOW_STAGE,
|
||||
|
||||
@@ -323,7 +323,7 @@ static_assert(sizeof(obj_sub_mesh) == 0x70, "\"obj_sub_mesh\" struct should have
|
||||
struct obj_mesh_attrib_member {
|
||||
uint32_t double_buffer : 1;
|
||||
uint32_t billboard_y_axis : 1;
|
||||
uint32_t translucent_no_shadow : 1;
|
||||
uint32_t translucent_sort_by_radius : 1;
|
||||
uint32_t billboard : 1;
|
||||
uint32_t dummy : 28;
|
||||
};
|
||||
|
||||
@@ -703,7 +703,7 @@ namespace rndr {
|
||||
|
||||
if (alpha_z_sort) {
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT, 1);
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW, 2);
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, 2);
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_1, 1);
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_2, 1);
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_3, 1);
|
||||
@@ -768,7 +768,7 @@ namespace rndr {
|
||||
gl_state_enable_blend();
|
||||
gl_state_set_blend_func(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
gl_state_set_depth_mask(GL_FALSE);
|
||||
disp_manager->draw(mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW);
|
||||
disp_manager->draw(mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS);
|
||||
disp_manager->draw(mdl::OBJ_TYPE_TRANSLUCENT);
|
||||
gl_state_disable_blend();
|
||||
}
|
||||
@@ -859,7 +859,7 @@ namespace rndr {
|
||||
|
||||
if (alpha_z_sort) {
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT, 1);
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW, 2);
|
||||
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, 2);
|
||||
}
|
||||
|
||||
if (opaque_z_sort)
|
||||
@@ -875,7 +875,7 @@ namespace rndr {
|
||||
if (draw_pass_3d[DRAW_PASS_3D_TRANSPARENT])
|
||||
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSPARENT, i);
|
||||
if (draw_pass_3d[DRAW_PASS_3D_TRANSLUCENT]) {
|
||||
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW, i);
|
||||
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, i);
|
||||
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSLUCENT, i);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user