diff --git a/source/blender/draw/intern/draw_common.c b/source/blender/draw/intern/draw_common.c index f4847844650..125803fe733 100644 --- a/source/blender/draw/intern/draw_common.c +++ b/source/blender/draw/intern/draw_common.c @@ -54,9 +54,6 @@ void DRW_globals_update(void) UI_GetThemeColor4fv(TH_ACTIVE, ts.colorActive); UI_GetThemeColor4fv(TH_SELECT, ts.colorSelect); UI_GetThemeColor4fv(TH_TRANSFORM, ts.colorTransform); - UI_GetThemeColor4fv(TH_GROUP_ACTIVE, ts.colorGroupActive); - UI_GetThemeColorShade4fv(TH_GROUP_ACTIVE, -25, ts.colorGroupSelect); - UI_GetThemeColor4fv(TH_GROUP, ts.colorGroup); UI_COLOR_RGBA_FROM_U8(0x88, 0xFF, 0xFF, 155, ts.colorLibrarySelect); UI_COLOR_RGBA_FROM_U8(0x55, 0xCC, 0xCC, 155, ts.colorLibrary); UI_GetThemeColor4fv(TH_LAMP, ts.colorLamp); @@ -613,26 +610,16 @@ int DRW_object_wire_theme_get(Object *ob, ViewLayer *view_layer, float **r_color } else { /* Sets the 'theme_id' or fallback to wire */ - if ((ob->flag & OB_FROMGROUP) != 0) { - if ((ob->base_flag & BASE_SELECTED) != 0) { - theme_id = TH_GROUP_ACTIVE; - } - else { - theme_id = TH_GROUP; - } + if ((ob->base_flag & BASE_SELECTED) != 0) { + theme_id = (active) ? TH_ACTIVE : TH_SELECT; } else { - if ((ob->base_flag & BASE_SELECTED) != 0) { - theme_id = (active) ? TH_ACTIVE : TH_SELECT; - } - else { - if (ob->type == OB_LAMP) theme_id = TH_LAMP; - else if (ob->type == OB_SPEAKER) theme_id = TH_SPEAKER; - else if (ob->type == OB_CAMERA) theme_id = TH_CAMERA; - else if (ob->type == OB_EMPTY) theme_id = TH_EMPTY; - else if (ob->type == OB_LIGHTPROBE) theme_id = TH_EMPTY; /* TODO add lightprobe color */ - /* fallback to TH_WIRE */ - } + if (ob->type == OB_LAMP) theme_id = TH_LAMP; + else if (ob->type == OB_SPEAKER) theme_id = TH_SPEAKER; + else if (ob->type == OB_CAMERA) theme_id = TH_CAMERA; + else if (ob->type == OB_EMPTY) theme_id = TH_EMPTY; + else if (ob->type == OB_LIGHTPROBE) theme_id = TH_EMPTY; /* TODO add lightprobe color */ + /* fallback to TH_WIRE */ } } @@ -641,8 +628,6 @@ int DRW_object_wire_theme_get(Object *ob, ViewLayer *view_layer, float **r_color case TH_WIRE_EDIT: *r_color = ts.colorWireEdit; break; case TH_ACTIVE: *r_color = ts.colorActive; break; case TH_SELECT: *r_color = ts.colorSelect; break; - case TH_GROUP: *r_color = ts.colorGroup; break; - case TH_GROUP_ACTIVE: *r_color = ts.colorGroupActive; break; case TH_TRANSFORM: *r_color = ts.colorTransform; break; case OB_SPEAKER: *r_color = ts.colorSpeaker; break; case OB_CAMERA: *r_color = ts.colorCamera; break; @@ -650,11 +635,6 @@ int DRW_object_wire_theme_get(Object *ob, ViewLayer *view_layer, float **r_color case OB_LAMP: *r_color = ts.colorLamp; break; default: *r_color = ts.colorWire; break; } - - /* uses darker active color for non-active + selected */ - if ((theme_id == TH_GROUP_ACTIVE) && !active) { - *r_color = ts.colorGroupSelect; - } } return theme_id; @@ -670,8 +650,6 @@ float *DRW_color_background_blend_get(int theme_id) case TH_WIRE_EDIT: ret = colors[0]; break; case TH_ACTIVE: ret = colors[1]; break; case TH_SELECT: ret = colors[2]; break; - case TH_GROUP: ret = colors[3]; break; - case TH_GROUP_ACTIVE: ret = colors[4]; break; case TH_TRANSFORM: ret = colors[5]; break; case OB_SPEAKER: ret = colors[6]; break; case OB_CAMERA: ret = colors[7]; break; diff --git a/source/blender/draw/intern/draw_common.h b/source/blender/draw/intern/draw_common.h index 052cbc7bee9..fe781e2cc9a 100644 --- a/source/blender/draw/intern/draw_common.h +++ b/source/blender/draw/intern/draw_common.h @@ -41,9 +41,6 @@ typedef struct GlobalsUboStorage { float colorActive[4]; float colorSelect[4]; float colorTransform[4]; - float colorGroupActive[4]; - float colorGroupSelect[4]; - float colorGroup[4]; float colorLibrarySelect[4]; float colorLibrary[4]; float colorLamp[4]; diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index 4830aa3334e..5449a6c13bc 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -166,7 +166,6 @@ typedef struct OBJECT_PrivateData { /* Lamps */ DRWShadingGroup *lamp_center; - DRWShadingGroup *lamp_center_group; DRWShadingGroup *lamp_groundpoint; DRWShadingGroup *lamp_groundline; DRWShadingGroup *lamp_circle; @@ -204,50 +203,36 @@ typedef struct OBJECT_PrivateData { /* Outlines */ DRWShadingGroup *outlines_active; - DRWShadingGroup *outlines_active_group; DRWShadingGroup *outlines_select; - DRWShadingGroup *outlines_select_group; DRWShadingGroup *outlines_transform; /* Lightprobes */ DRWShadingGroup *lightprobes_cube_select; - DRWShadingGroup *lightprobes_cube_select_group; DRWShadingGroup *lightprobes_cube_active; - DRWShadingGroup *lightprobes_cube_active_group; DRWShadingGroup *lightprobes_cube_transform; DRWShadingGroup *lightprobes_planar_select; - DRWShadingGroup *lightprobes_planar_select_group; DRWShadingGroup *lightprobes_planar_active; - DRWShadingGroup *lightprobes_planar_active_group; DRWShadingGroup *lightprobes_planar_transform; /* Wire */ DRWShadingGroup *wire; DRWShadingGroup *wire_active; - DRWShadingGroup *wire_active_group; DRWShadingGroup *wire_select; - DRWShadingGroup *wire_select_group; DRWShadingGroup *wire_transform; /* Points */ DRWShadingGroup *points; DRWShadingGroup *points_active; - DRWShadingGroup *points_active_group; DRWShadingGroup *points_select; - DRWShadingGroup *points_select_group; DRWShadingGroup *points_transform; /* Outlines id offset */ int id_ofs_active; - int id_ofs_active_group; int id_ofs_select; - int id_ofs_select_group; int id_ofs_transform; int id_ofs_prb_active; - int id_ofs_prb_active_group; int id_ofs_prb_select; - int id_ofs_prb_select_group; int id_ofs_prb_transform; } OBJECT_PrivateData; /* Transient data */ @@ -632,10 +617,6 @@ static int *shgroup_theme_id_to_probe_outline_counter( return &stl->g_data->id_ofs_prb_active; case TH_SELECT: return &stl->g_data->id_ofs_prb_select; - case TH_GROUP: - return &stl->g_data->id_ofs_prb_select_group; - case TH_GROUP_ACTIVE: - return &stl->g_data->id_ofs_prb_active_group; case TH_TRANSFORM: default: return &stl->g_data->id_ofs_prb_transform; @@ -650,10 +631,6 @@ static int *shgroup_theme_id_to_outline_counter( return &stl->g_data->id_ofs_active; case TH_SELECT: return &stl->g_data->id_ofs_select; - case TH_GROUP: - return &stl->g_data->id_ofs_select_group; - case TH_GROUP_ACTIVE: - return &stl->g_data->id_ofs_active_group; case TH_TRANSFORM: default: return &stl->g_data->id_ofs_transform; @@ -669,10 +646,6 @@ static DRWShadingGroup *shgroup_theme_id_to_probe_planar_outline_shgrp( return stl->g_data->lightprobes_planar_active; case TH_SELECT: return stl->g_data->lightprobes_planar_select; - case TH_GROUP: - return stl->g_data->lightprobes_planar_select_group; - case TH_GROUP_ACTIVE: - return stl->g_data->lightprobes_planar_active_group; case TH_TRANSFORM: default: return stl->g_data->lightprobes_planar_transform; @@ -688,10 +661,6 @@ static DRWShadingGroup *shgroup_theme_id_to_probe_cube_outline_shgrp( return stl->g_data->lightprobes_cube_active; case TH_SELECT: return stl->g_data->lightprobes_cube_select; - case TH_GROUP: - return stl->g_data->lightprobes_cube_select_group; - case TH_GROUP_ACTIVE: - return stl->g_data->lightprobes_cube_active_group; case TH_TRANSFORM: default: return stl->g_data->lightprobes_cube_transform; @@ -709,10 +678,6 @@ static DRWShadingGroup *shgroup_theme_id_to_outline_or( return stl->g_data->outlines_active; case TH_SELECT: return stl->g_data->outlines_select; - case TH_GROUP: - return stl->g_data->outlines_select_group; - case TH_GROUP_ACTIVE: - return stl->g_data->outlines_active_group; case TH_TRANSFORM: return stl->g_data->outlines_transform; default: @@ -728,10 +693,6 @@ static DRWShadingGroup *shgroup_theme_id_to_wire_or( return stl->g_data->wire_active; case TH_SELECT: return stl->g_data->wire_select; - case TH_GROUP: - return stl->g_data->wire_select_group; - case TH_GROUP_ACTIVE: - return stl->g_data->wire_active_group; case TH_TRANSFORM: return stl->g_data->wire_transform; default: @@ -747,10 +708,6 @@ static DRWShadingGroup *shgroup_theme_id_to_point_or( return stl->g_data->points_active; case TH_SELECT: return stl->g_data->points_select; - case TH_GROUP: - return stl->g_data->points_select_group; - case TH_GROUP_ACTIVE: - return stl->g_data->points_active_group; case TH_TRANSFORM: return stl->g_data->points_transform; default: @@ -905,19 +862,15 @@ static void OBJECT_cache_init(void *vedata) /* Select */ g_data->outlines_select = shgroup_outline(psl->outlines, &g_data->id_ofs_select, sh); - g_data->outlines_select_group = shgroup_outline(psl->outlines, &g_data->id_ofs_select_group, sh); /* Transform */ g_data->outlines_transform = shgroup_outline(psl->outlines, &g_data->id_ofs_transform, sh); /* Active */ g_data->outlines_active = shgroup_outline(psl->outlines, &g_data->id_ofs_active, sh); - g_data->outlines_active_group = shgroup_outline(psl->outlines, &g_data->id_ofs_active_group, sh); g_data->id_ofs_select = 0; - g_data->id_ofs_select_group = 0; g_data->id_ofs_active = 0; - g_data->id_ofs_active_group = 0; g_data->id_ofs_transform = 0; } @@ -929,22 +882,16 @@ static void OBJECT_cache_init(void *vedata) /* Cubemap */ g_data->lightprobes_cube_select = shgroup_instance_outline(pass, sphere, &g_data->id_ofs_prb_select); - g_data->lightprobes_cube_select_group = shgroup_instance_outline(pass, sphere, &g_data->id_ofs_prb_select_group); g_data->lightprobes_cube_active = shgroup_instance_outline(pass, sphere, &g_data->id_ofs_prb_active); - g_data->lightprobes_cube_active_group = shgroup_instance_outline(pass, sphere, &g_data->id_ofs_prb_active_group); g_data->lightprobes_cube_transform = shgroup_instance_outline(pass, sphere, &g_data->id_ofs_prb_transform); /* Planar */ g_data->lightprobes_planar_select = shgroup_instance_outline(pass, quad, &g_data->id_ofs_prb_select); - g_data->lightprobes_planar_select_group = shgroup_instance_outline(pass, quad, &g_data->id_ofs_prb_select_group); g_data->lightprobes_planar_active = shgroup_instance_outline(pass, quad, &g_data->id_ofs_prb_active); - g_data->lightprobes_planar_active_group = shgroup_instance_outline(pass, quad, &g_data->id_ofs_prb_active_group); g_data->lightprobes_planar_transform = shgroup_instance_outline(pass, quad, &g_data->id_ofs_prb_transform); g_data->id_ofs_prb_select = 0; - g_data->id_ofs_prb_select_group = 0; g_data->id_ofs_prb_active = 0; - g_data->id_ofs_prb_active_group = 0; g_data->id_ofs_prb_transform = 0; } @@ -964,7 +911,7 @@ static void OBJECT_cache_init(void *vedata) DRW_shgroup_uniform_texture_ref(grp, "sceneDepth", &dtxl->depth); DRW_shgroup_uniform_block(grp, "globalsBlock", globals_ubo); DRW_shgroup_uniform_float(grp, "alphaOcclu", &alphaOcclu, 1); - DRW_shgroup_uniform_int(grp, "idOffsets", &stl->g_data->id_ofs_active, 5); + DRW_shgroup_uniform_int(grp, "idOffsets", &stl->g_data->id_ofs_active, 3); DRW_shgroup_call_add(grp, quad, NULL); psl->outlines_expand = DRW_pass_create("Outlines Expand Pass", state); @@ -1157,14 +1104,12 @@ static void OBJECT_cache_init(void *vedata) /* Select */ stl->g_data->wire_select = shgroup_wire(psl->non_meshes, ts.colorSelect, sh); - stl->g_data->wire_select_group = shgroup_wire(psl->non_meshes, ts.colorGroupActive, sh); /* Transform */ stl->g_data->wire_transform = shgroup_wire(psl->non_meshes, ts.colorTransform, sh); /* Active */ stl->g_data->wire_active = shgroup_wire(psl->non_meshes, ts.colorActive, sh); - stl->g_data->wire_active_group = shgroup_wire(psl->non_meshes, ts.colorGroupActive, sh); } @@ -1176,14 +1121,12 @@ static void OBJECT_cache_init(void *vedata) /* Select */ stl->g_data->points_select = shgroup_points(psl->non_meshes, ts.colorSelect, sh); - stl->g_data->points_select_group = shgroup_points(psl->non_meshes, ts.colorGroupActive, sh); /* Transform */ stl->g_data->points_transform = shgroup_points(psl->non_meshes, ts.colorTransform, sh); /* Active */ stl->g_data->points_active = shgroup_points(psl->non_meshes, ts.colorActive, sh); - stl->g_data->points_active_group = shgroup_points(psl->non_meshes, ts.colorGroupActive, sh); } { @@ -1203,7 +1146,6 @@ static void OBJECT_cache_init(void *vedata) stl->g_data->lamp_buflimit = shgroup_distance_lines_instance(psl->non_meshes, geom); stl->g_data->lamp_center = shgroup_dynpoints_uniform_color(psl->non_meshes, ts.colorLampNoAlpha, &ts.sizeLampCenter); - stl->g_data->lamp_center_group = shgroup_dynpoints_uniform_color(psl->non_meshes, ts.colorGroup, &ts.sizeLampCenter); geom = DRW_cache_lamp_get(); stl->g_data->lamp_circle = shgroup_instance_screenspace(psl->non_meshes, geom, &ts.sizeLampCircle); @@ -1380,9 +1322,7 @@ static void DRW_shgroup_lamp(OBJECT_StorageList *stl, Object *ob, ViewLayer *vie float (*spotblendmat)[4] = lamp_engine_data->spot_blend_mat; /* Don't draw the center if it's selected or active */ - if (theme_id == TH_GROUP) - DRW_shgroup_call_dynamic_add(stl->g_data->lamp_center_group, ob->obmat[3]); - else if (theme_id == TH_LAMP) + if (theme_id == TH_LAMP) DRW_shgroup_call_dynamic_add(stl->g_data->lamp_center, ob->obmat[3]); /* First circle */ @@ -2211,19 +2151,15 @@ static void OBJECT_draw_scene(void *vedata) DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); int id_ct_select = g_data->id_ofs_select; - int id_ct_select_group = g_data->id_ofs_select_group; int id_ct_active = g_data->id_ofs_active; - int id_ct_active_group = g_data->id_ofs_active_group; int id_ct_transform = g_data->id_ofs_transform; int id_ct_prb_select = g_data->id_ofs_prb_select; - int id_ct_prb_select_group = g_data->id_ofs_prb_select_group; int id_ct_prb_active = g_data->id_ofs_prb_active; - int id_ct_prb_active_group = g_data->id_ofs_prb_active_group; int id_ct_prb_transform = g_data->id_ofs_prb_transform; - int outline_calls = id_ct_select + id_ct_select_group + id_ct_active + id_ct_active_group + id_ct_transform; - outline_calls += id_ct_prb_select + id_ct_prb_select_group + id_ct_prb_active + id_ct_prb_active_group + id_ct_prb_transform; + int outline_calls = id_ct_select + id_ct_active + id_ct_transform; + outline_calls += id_ct_prb_select + id_ct_prb_active + id_ct_prb_transform; float clearcol[4] = {0.0f, 0.0f, 0.0f, 0.0f}; @@ -2245,15 +2181,11 @@ static void OBJECT_draw_scene(void *vedata) DRW_stats_group_start("Outlines"); g_data->id_ofs_active = 1; - g_data->id_ofs_active_group = g_data->id_ofs_active + id_ct_active + id_ct_prb_active + 1; - g_data->id_ofs_select = g_data->id_ofs_active_group + id_ct_active_group + id_ct_prb_active_group + 1; - g_data->id_ofs_select_group = g_data->id_ofs_select + id_ct_select + id_ct_prb_select + 1; - g_data->id_ofs_transform = g_data->id_ofs_select_group + id_ct_select_group + id_ct_prb_select_group + 1; + g_data->id_ofs_select = g_data->id_ofs_active + id_ct_active + id_ct_prb_active + 1; + g_data->id_ofs_transform = g_data->id_ofs_select + id_ct_select + id_ct_prb_select + 1; g_data->id_ofs_prb_active = g_data->id_ofs_active + id_ct_active; - g_data->id_ofs_prb_active_group = g_data->id_ofs_active_group + id_ct_active_group; g_data->id_ofs_prb_select = g_data->id_ofs_select + id_ct_select; - g_data->id_ofs_prb_select_group = g_data->id_ofs_select_group + id_ct_select_group; g_data->id_ofs_prb_transform = g_data->id_ofs_transform + id_ct_transform; /* Render filled polygon on a separate framebuffer */ diff --git a/source/blender/draw/modes/shaders/common_globals_lib.glsl b/source/blender/draw/modes/shaders/common_globals_lib.glsl index 0c14c1e7db0..4a0104e2cf2 100644 --- a/source/blender/draw/modes/shaders/common_globals_lib.glsl +++ b/source/blender/draw/modes/shaders/common_globals_lib.glsl @@ -6,9 +6,6 @@ layout(std140) uniform globalsBlock { vec4 colorActive; vec4 colorSelect; vec4 colorTransform; - vec4 colorGroupActive; - vec4 colorGroupSelect; - vec4 colorGroup; vec4 colorLibrarySelect; vec4 colorLibrary; vec4 colorLamp; diff --git a/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl b/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl index 554328aa9ea..45bbdb18340 100644 --- a/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl +++ b/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl @@ -7,7 +7,7 @@ uniform usampler2D outlineId; uniform sampler2D outlineDepth; uniform sampler2D sceneDepth; -uniform int idOffsets[5]; +uniform int idOffsets[3]; uniform float alphaOcclu; uniform vec2 viewportSize; @@ -21,14 +21,8 @@ vec4 convert_id_to_color(int id) return colorActive; } else if (id < idOffsets[2]) { - return colorGroupActive; - } - else if (id < idOffsets[3]) { return colorSelect; } - else if (id < idOffsets[4]) { - return colorGroup; - } else { return colorTransform; } diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index c50d09746ad..f94d821045b 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1654,18 +1654,6 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Active Object", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); - prop = RNA_def_property(srna, "object_grouped", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_float_sdna(prop, NULL, "group"); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Object Grouped", ""); - RNA_def_property_update(prop, 0, "rna_userdef_update"); - - prop = RNA_def_property(srna, "object_grouped_active", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_float_sdna(prop, NULL, "group_active"); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Object Grouped Active", ""); - RNA_def_property_update(prop, 0, "rna_userdef_update"); - prop = RNA_def_property(srna, "text_keyframe", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, NULL, "time_keyframe"); RNA_def_property_array(prop, 3);