diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c index 03008da1059..994e62ea257 100644 --- a/release/datafiles/userdef/userdef_default_theme.c +++ b/release/datafiles/userdef/userdef_default_theme.c @@ -317,14 +317,16 @@ const bTheme U_theme_default = { .vertex_select = RGBA(0xff7a00ff), .vertex_bevel = RGBA(0x00a5ffff), .edge = RGBA(0x000000ff), - .edge_select = RGBA(0xffa000ff), + .edge_select = RGBA(0xff9900ff), + .edge_mode_select = RGBA(0xffd800ff), .edge_seam = RGBA(0xdb2512ff), .edge_sharp = RGBA(0x00ffffff), .edge_facesel = RGBA(0x4b4b4bff), .edge_crease = RGBA(0xcc0099ff), .edge_bevel = RGBA(0x00a5ffff), .face = RGBA(0xffffff02), - .face_select = RGBA(0xffa5522e), + .face_select = RGBA(0xffa30033), + .face_mode_select = RGBA(0xffb70033), .face_retopology = RGBA(0x50c8ff0f), .face_back = RGBA(0xff0000b3), .face_front = RGBA(0x0000ffb3), diff --git a/scripts/presets/interface_theme/Blender_Light.xml b/scripts/presets/interface_theme/Blender_Light.xml index b1381a2092d..64b723bfe6f 100644 --- a/scripts/presets/interface_theme/Blender_Light.xml +++ b/scripts/presets/interface_theme/Blender_Light.xml @@ -368,12 +368,13 @@ light="#00000028" speaker="#000000" vertex="#000000" - vertex_select="#ff8500" + vertex_select="#ff7a00" vertex_active="#000000" vertex_size="3" vertex_bevel="#00a5ff" vertex_unreferenced="#000000" - edge_select="#ffa000" + edge_select="#ff9900" + edge_mode_select="#ffd800" edge_seam="#db2512" edge_sharp="#00ffff" edge_crease="#cc0099" @@ -381,7 +382,8 @@ edge_facesel="#4b4b4b" freestyle_edge_mark="#7fff7f" face="#00000012" - face_select="#ff85004d" + face_select="#ffa30033" + face_mode_select="#ffb70033" face_dot="#ff8500" facedot_size="4" freestyle_face_mark="#7fff7f33" diff --git a/scripts/startup/bl_ui/space_view3d.py b/scripts/startup/bl_ui/space_view3d.py index d5797f45e01..7c1dc07aabf 100644 --- a/scripts/startup/bl_ui/space_view3d.py +++ b/scripts/startup/bl_ui/space_view3d.py @@ -7055,9 +7055,6 @@ class VIEW3D_PT_overlay_edit_mesh(Panel): split = col.split() - sub = split.column() - sub.active = is_any_solid_shading - sub.prop(overlay, "show_edges", text="Edges") sub = split.column() sub.prop(overlay, "show_faces", text="Faces") sub = split.column() diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 960e1922aad..238f9e57d08 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -29,7 +29,7 @@ extern "C" { /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 3 +#define BLENDER_FILE_SUBVERSION 4 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and cancel loading the file, showing a warning to diff --git a/source/blender/blenloader/intern/versioning_280.cc b/source/blender/blenloader/intern/versioning_280.cc index d0e329cf450..f14db696176 100644 --- a/source/blender/blenloader/intern/versioning_280.cc +++ b/source/blender/blenloader/intern/versioning_280.cc @@ -4148,8 +4148,8 @@ void blo_do_versions_280(FileData *fd, Library * /*lib*/, Main *bmain) View3D *v3d = (View3D *)sl; v3d->overlay.edit_flag |= V3D_OVERLAY_EDIT_FACES | V3D_OVERLAY_EDIT_SEAMS | V3D_OVERLAY_EDIT_SHARP | V3D_OVERLAY_EDIT_FREESTYLE_EDGE | - V3D_OVERLAY_EDIT_FREESTYLE_FACE | V3D_OVERLAY_EDIT_EDGES | - V3D_OVERLAY_EDIT_CREASES | V3D_OVERLAY_EDIT_BWEIGHTS; + V3D_OVERLAY_EDIT_FREESTYLE_FACE | V3D_OVERLAY_EDIT_CREASES | + V3D_OVERLAY_EDIT_BWEIGHTS; } } } diff --git a/source/blender/blenloader/intern/versioning_defaults.cc b/source/blender/blenloader/intern/versioning_defaults.cc index 7517b2ff58b..cafaac62034 100644 --- a/source/blender/blenloader/intern/versioning_defaults.cc +++ b/source/blender/blenloader/intern/versioning_defaults.cc @@ -188,8 +188,8 @@ static void blo_update_defaults_screen(bScreen *screen, v3d->overlay.texture_paint_mode_opacity = 1.0f; v3d->overlay.weight_paint_mode_opacity = 1.0f; v3d->overlay.vertex_paint_mode_opacity = 1.0f; - /* Use dimmed selected edges. */ - v3d->overlay.edit_flag &= ~V3D_OVERLAY_EDIT_EDGES; + /* Clear this deprecated bit for later reuse. */ + v3d->overlay.edit_flag &= ~V3D_OVERLAY_EDIT_EDGES_DEPRECATED; /* grease pencil settings */ v3d->vertex_opacity = 1.0f; v3d->gp_flag |= V3D_GP_SHOW_EDIT_LINES; diff --git a/source/blender/blenloader/intern/versioning_userdef.cc b/source/blender/blenloader/intern/versioning_userdef.cc index 82c1bca1460..3da1008a7dc 100644 --- a/source/blender/blenloader/intern/versioning_userdef.cc +++ b/source/blender/blenloader/intern/versioning_userdef.cc @@ -133,6 +133,13 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) memcpy(btheme, &U_theme_default, sizeof(*btheme)); } + if (!USER_VERSION_ATLEAST(401, 4)) { + FROM_DEFAULT_V4_UCHAR(space_view3d.edge_select); + FROM_DEFAULT_V4_UCHAR(space_view3d.edge_mode_select); + FROM_DEFAULT_V4_UCHAR(space_view3d.face_select); + FROM_DEFAULT_V4_UCHAR(space_view3d.face_mode_select); + } + /** * Versioning code until next subversion bump goes here. * diff --git a/source/blender/draw/engines/overlay/overlay_edit_mesh.cc b/source/blender/draw/engines/overlay/overlay_edit_mesh.cc index c6ad2290ebc..0a4e6ce00fa 100644 --- a/source/blender/draw/engines/overlay/overlay_edit_mesh.cc +++ b/source/blender/draw/engines/overlay/overlay_edit_mesh.cc @@ -53,6 +53,7 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata) DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); const DRWContextState *draw_ctx = DRW_context_state_get(); + const View3DShading *shading = &draw_ctx->v3d->shading; ToolSettings *tsettings = draw_ctx->scene->toolsettings; View3D *v3d = draw_ctx->v3d; bool select_vert = pd->edit_mesh.select_vert = (tsettings->selectmode & SCE_SELECT_VERTEX) != 0; @@ -66,7 +67,6 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata) float retopology_offset = RETOPOLOGY_OFFSET(v3d); pd->edit_mesh.do_faces = true; - pd->edit_mesh.do_edges = true; int *mask = shdata->data_mask; mask[0] = 0xFF; /* Face Flag */ @@ -85,16 +85,8 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata) if ((flag & V3D_OVERLAY_EDIT_FACES) == 0) { pd->edit_mesh.do_faces = false; } - if ((flag & V3D_OVERLAY_EDIT_EDGES) == 0) { - if ((tsettings->selectmode & SCE_SELECT_EDGE) == 0) { - if ((v3d->shading.type < OB_SOLID) || (v3d->shading.flag & V3D_SHADING_XRAY)) { - /* Special case, when drawing wire, draw edges, see: #67637. */ - } - else { - pd->edit_mesh.do_edges = false; - } - } - } + + const bool is_wire_shmode = (shading->type == OB_WIRE); float backwire_opacity = (pd->edit_mesh.do_zbufclip) ? v3d->overlay.backwire_opacity : 1.0f; float face_alpha = (!pd->edit_mesh.do_faces) ? 0.0f : 1.0f; @@ -172,7 +164,8 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata) DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); DRW_shgroup_uniform_ivec4(grp, "dataMask", mask, 1); DRW_shgroup_uniform_float_copy(grp, "alpha", face_alpha); - DRW_shgroup_uniform_bool_copy(grp, "selectFaces", select_face); + DRW_shgroup_uniform_bool_copy(grp, "selectFace", select_face); + DRW_shgroup_uniform_bool_copy(grp, "wireShading", is_wire_shmode); DRW_shgroup_uniform_float_copy(grp, "retopologyOffset", retopology_offset); } @@ -191,7 +184,7 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata) DRW_shgroup_uniform_ivec4(grp, "dataMask", mask, 1); DRW_shgroup_uniform_float_copy(grp, "alpha", backwire_opacity); DRW_shgroup_uniform_texture_ref(grp, "depthTex", depth_tex); - DRW_shgroup_uniform_bool_copy(grp, "selectEdges", pd->edit_mesh.do_edges || select_edge); + DRW_shgroup_uniform_bool_copy(grp, "selectEdge", select_edge); DRW_shgroup_uniform_bool_copy(grp, "do_smooth_wire", do_smooth_wire); DRW_shgroup_uniform_float_copy(grp, "retopologyOffset", retopology_offset); diff --git a/source/blender/draw/engines/overlay/overlay_private.hh b/source/blender/draw/engines/overlay/overlay_private.hh index 390c1addc7c..f300f70ed5f 100644 --- a/source/blender/draw/engines/overlay/overlay_private.hh +++ b/source/blender/draw/engines/overlay/overlay_private.hh @@ -367,7 +367,6 @@ struct OVERLAY_PrivateData { struct { bool do_zbufclip; bool do_faces; - bool do_edges; bool select_vert; bool select_face; bool select_edge; diff --git a/source/blender/draw/engines/overlay/overlay_shader_shared.h b/source/blender/draw/engines/overlay/overlay_shader_shared.h index 400cf8be8bf..025507f046b 100644 --- a/source/blender/draw/engines/overlay/overlay_shader_shared.h +++ b/source/blender/draw/engines/overlay/overlay_shader_shared.h @@ -108,7 +108,10 @@ struct ThemeColorData { float4 color_vertex_unreferenced; float4 color_vertex_missing_data; float4 color_edit_mesh_active; + /** For edge selection, not edge select mode. */ float4 color_edge_select; + /** For edge mode selection. */ + float4 color_edge_mode_select; float4 color_edge_seam; float4 color_edge_sharp; float4 color_edge_crease; @@ -116,7 +119,10 @@ struct ThemeColorData { float4 color_edge_face_select; float4 color_edge_freestyle; float4 color_face; + /** For face selection, not face select mode. */ float4 color_face_select; + /** For face mode selection. */ + float4 color_face_mode_select; float4 color_face_freestyle; float4 color_gpencil_vertex; float4 color_gpencil_vertex_select; diff --git a/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh b/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh index 9249e2c0fcc..cbedf7fab25 100644 --- a/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh +++ b/source/blender/draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh @@ -17,8 +17,9 @@ GPU_SHADER_CREATE_INFO(overlay_edit_mesh_common) .define("blender_srgb_to_framebuffer_space(a)", "a") .sampler(0, ImageType::DEPTH_2D, "depthTex") .fragment_out(0, Type::VEC4, "fragColor") - .push_constant(Type::BOOL, "selectFaces") - .push_constant(Type::BOOL, "selectEdges") + .push_constant(Type::BOOL, "wireShading") + .push_constant(Type::BOOL, "selectFace") + .push_constant(Type::BOOL, "selectEdge") .push_constant(Type::FLOAT, "alpha") .push_constant(Type::FLOAT, "retopologyOffset") .push_constant(Type::IVEC4, "dataMask") @@ -31,8 +32,9 @@ GPU_SHADER_CREATE_INFO(overlay_edit_mesh_common_no_geom) .define("blender_srgb_to_framebuffer_space(a)", "a") .sampler(0, ImageType::DEPTH_2D, "depthTex") .fragment_out(0, Type::VEC4, "fragColor") - .push_constant(Type::BOOL, "selectFaces") - .push_constant(Type::BOOL, "selectEdges") + .push_constant(Type::BOOL, "wireShading") + .push_constant(Type::BOOL, "selectFace") + .push_constant(Type::BOOL, "selectEdge") .push_constant(Type::FLOAT, "alpha") .push_constant(Type::FLOAT, "retopologyOffset") .push_constant(Type::IVEC4, "dataMask") diff --git a/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_common_lib.glsl b/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_common_lib.glsl index cf48254af9b..5d9379fb911 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_common_lib.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_common_lib.glsl @@ -16,23 +16,20 @@ vec4 EDIT_MESH_edge_color_outer(uint edge_flag, uint face_flag, float crease, fl vec4 EDIT_MESH_edge_color_inner(uint edge_flag) { vec4 color = colorWireEdit; - vec4 color_select = (selectEdges) ? colorEdgeSelect : mix(colorEdgeSelect, colorWireEdit, .45); - color = ((edge_flag & EDGE_SELECTED) != 0u) ? color_select : color; + vec4 selected_edge_col = (selectEdge) ? colorEdgeModeSelect : colorEdgeSelect; + color = ((edge_flag & EDGE_SELECTED) != 0u) ? selected_edge_col : color; color = ((edge_flag & EDGE_ACTIVE) != 0u) ? colorEditMeshActive : color; - - color.a = (selectEdges || (edge_flag & (EDGE_SELECTED | EDGE_ACTIVE)) != 0u) ? 1.0 : 0.7; + color.a = 1.0; return color; } vec4 EDIT_MESH_edge_vertex_color(uint vertex_flag) { - vec4 color = colorWireEdit; - vec4 color_select = (selectEdges) ? colorEdgeSelect : mix(colorEdgeSelect, colorWireEdit, .45); - + /* Edge color in vextex selection mode. */ + vec4 selected_edge_col = (selectEdge) ? colorEdgeModeSelect : colorEdgeSelect; bool edge_selected = (vertex_flag & (VERT_ACTIVE | VERT_SELECTED)) != 0u; - color = (edge_selected) ? color_select : color; - - color.a = (selectEdges || edge_selected) ? 1.0 : 0.7; + vec4 color = (edge_selected) ? selected_edge_col : colorWireEdit; + color.a = 1.0; return color; } @@ -55,15 +52,26 @@ vec4 EDIT_MESH_vertex_color(uint vertex_flag, float vertex_crease) vec4 EDIT_MESH_face_color(uint face_flag) { + bool face_freestyle = (face_flag & FACE_FREESTYLE) != 0u; + bool face_selected = (face_flag & FACE_SELECTED) != 0u; + bool face_active = (face_flag & FACE_ACTIVE) != 0u; + vec4 selected_face_col = (selectFace) ? colorFaceModeSelect : colorFaceSelect; vec4 color = colorFace; - vec4 color_active = mix(colorFaceSelect, colorEditMeshActive, 0.5); color = (retopologyOffset > 0.0) ? colorFaceRetopology : color; - color = ((face_flag & FACE_FREESTYLE) != 0u) ? colorFaceFreestyle : color; - color = ((face_flag & FACE_SELECTED) != 0u) ? colorFaceSelect : color; - color = ((face_flag & FACE_ACTIVE) != 0u) ? color_active : color; - color.a *= ((face_flag & (FACE_FREESTYLE | FACE_SELECTED | FACE_ACTIVE)) == 0u || selectFaces) ? - 1.0 : - 0.5; + color = face_freestyle ? colorFaceFreestyle : color; + color = face_selected ? selected_face_col : color; + if (selectFace && face_active) { + color = mix(selected_face_col, colorEditMeshActive, 0.5); + color.a = selected_face_col.a; + } + if (wireShading) { + /* Lower face selection opacity for better wireframe visibility. */ + color.a = (face_selected) ? color.a * 0.6 : color.a; + } + else { + /* Don't always fill 'colorFace'. */ + color.a = (selectFace || face_selected || face_active || face_freestyle) ? color.a : 0.0; + } return color; } diff --git a/source/blender/draw/intern/draw_common.cc b/source/blender/draw/intern/draw_common.cc index b5c7a5943f8..3d7023c2235 100644 --- a/source/blender/draw/intern/draw_common.cc +++ b/source/blender/draw/intern/draw_common.cc @@ -61,6 +61,7 @@ void DRW_globals_update() UI_COLOR_RGBA_FROM_U8(0xB0, 0x00, 0xB0, 0xFF, gb->color_vertex_missing_data); UI_GetThemeColor4fv(TH_EDITMESH_ACTIVE, gb->color_edit_mesh_active); UI_GetThemeColor4fv(TH_EDGE_SELECT, gb->color_edge_select); + UI_GetThemeColor4fv(TH_EDGE_MODE_SELECT, gb->color_edge_mode_select); UI_GetThemeColor4fv(TH_GP_VERTEX, gb->color_gpencil_vertex); UI_GetThemeColor4fv(TH_GP_VERTEX_SELECT, gb->color_gpencil_vertex_select); @@ -71,6 +72,7 @@ void DRW_globals_update() UI_GetThemeColor4fv(TH_EDGE_FACESEL, gb->color_edge_face_select); UI_GetThemeColor4fv(TH_FACE, gb->color_face); UI_GetThemeColor4fv(TH_FACE_SELECT, gb->color_face_select); + UI_GetThemeColor4fv(TH_FACE_MODE_SELECT, gb->color_face_mode_select); UI_GetThemeColor4fv(TH_FACE_RETOPOLOGY, gb->color_face_retopology); UI_GetThemeColor4fv(TH_FACE_BACK, gb->color_face_back); UI_GetThemeColor4fv(TH_FACE_FRONT, gb->color_face_front); diff --git a/source/blender/draw/intern/draw_common_shader_shared.h b/source/blender/draw/intern/draw_common_shader_shared.h index bfefac9d84d..2ca0b1faaa1 100644 --- a/source/blender/draw/intern/draw_common_shader_shared.h +++ b/source/blender/draw/intern/draw_common_shader_shared.h @@ -40,7 +40,8 @@ struct GlobalsUboStorage { float4 color_vertex_unreferenced; float4 color_vertex_missing_data; float4 color_edit_mesh_active; - float4 color_edge_select; + float4 color_edge_select; /* Stands for edge selection, not edge select mode. */ + float4 color_edge_mode_select; /* Stands for edge mode selection. */ float4 color_edge_seam; float4 color_edge_sharp; float4 color_edge_crease; @@ -48,7 +49,8 @@ struct GlobalsUboStorage { float4 color_edge_face_select; float4 color_edge_freestyle; float4 color_face; - float4 color_face_select; + float4 color_face_select; /* Stands for face selection, not face select mode. */ + float4 color_face_mode_select; /* Stands for face mode selection. */ float4 color_face_retopology; float4 color_face_freestyle; float4 color_gpencil_vertex; @@ -160,6 +162,7 @@ BLI_STATIC_ASSERT_ALIGN(GlobalsUboStorage, 16) # define colorVertexMissingData globalsBlock.color_vertex_missing_data # define colorEditMeshActive globalsBlock.color_edit_mesh_active # define colorEdgeSelect globalsBlock.color_edge_select +# define colorEdgeModeSelect globalsBlock.color_edge_mode_select # define colorEdgeSeam globalsBlock.color_edge_seam # define colorEdgeSharp globalsBlock.color_edge_sharp # define colorEdgeCrease globalsBlock.color_edge_crease @@ -168,6 +171,7 @@ BLI_STATIC_ASSERT_ALIGN(GlobalsUboStorage, 16) # define colorEdgeFreestyle globalsBlock.color_edge_freestyle # define colorFace globalsBlock.color_face # define colorFaceSelect globalsBlock.color_face_select +# define colorFaceModeSelect globalsBlock.color_face_mode_select # define colorFaceRetopology globalsBlock.color_face_retopology # define colorFaceFreestyle globalsBlock.color_face_freestyle # define colorGpencilVertex globalsBlock.color_gpencil_vertex diff --git a/source/blender/editors/include/UI_resources.hh b/source/blender/editors/include/UI_resources.hh index 19950c546da..437533e444e 100644 --- a/source/blender/editors/include/UI_resources.hh +++ b/source/blender/editors/include/UI_resources.hh @@ -92,11 +92,13 @@ enum ThemeColorID { TH_OUTLINE_WIDTH, TH_OBCENTER_DIA, TH_EDGE, - TH_EDGE_SELECT, + TH_EDGE_SELECT, /* Stands for edge selection, not edge select mode. */ + TH_EDGE_MODE_SELECT, TH_EDGE_SEAM, TH_EDGE_FACESEL, TH_FACE, - TH_FACE_SELECT, + TH_FACE_SELECT, /* Stands for face selection, not face select mode. */ + TH_FACE_MODE_SELECT, TH_FACE_RETOPOLOGY, TH_FACE_BACK, TH_FACE_FRONT, diff --git a/source/blender/editors/interface/resources.cc b/source/blender/editors/interface/resources.cc index d9c4b0e25b1..0eb2e7e1d27 100644 --- a/source/blender/editors/interface/resources.cc +++ b/source/blender/editors/interface/resources.cc @@ -391,6 +391,9 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) case TH_EDGE_SELECT: cp = ts->edge_select; break; + case TH_EDGE_MODE_SELECT: + cp = ts->edge_mode_select; + break; case TH_EDGE_SEAM: cp = ts->edge_seam; break; @@ -415,6 +418,9 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) case TH_FACE_SELECT: cp = ts->face_select; break; + case TH_FACE_MODE_SELECT: + cp = ts->face_mode_select; + break; case TH_FACE_RETOPOLOGY: cp = ts->face_retopology; break; diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 1479bcaaeae..26d70a20869 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -287,10 +287,11 @@ typedef struct ThemeSpace { unsigned char active[4], group[4], group_active[4], transform[4]; unsigned char vertex[4], vertex_select[4], vertex_active[4], vertex_bevel[4], vertex_unreferenced[4]; - unsigned char edge[4], edge_select[4]; + unsigned char edge[4], edge_select[4], edge_mode_select[4]; unsigned char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4], edge_bevel[4]; /** Solid faces. */ - unsigned char face[4], face_select[4], face_retopology[4], face_back[4], face_front[4]; + unsigned char face[4], face_select[4], face_mode_select[4], face_retopology[4]; + unsigned char face_back[4], face_front[4]; /** Selected color. */ unsigned char face_dot[4]; unsigned char extra_edge_len[4], extra_edge_angle[4], extra_face_angle[4], extra_face_area[4]; @@ -350,7 +351,6 @@ typedef struct ThemeSpace { unsigned char node_zone_simulation[4]; unsigned char node_zone_repeat[4]; - unsigned char _pad9[4]; unsigned char simulated_frames[4]; /** For sequence editor. */ @@ -378,7 +378,7 @@ typedef struct ThemeSpace { unsigned char path_keyframe_before[4], path_keyframe_after[4]; unsigned char camera_path[4]; unsigned char camera_passepartout[4]; - unsigned char _pad1[6]; + unsigned char _pad1[2]; unsigned char gp_vertex_size; unsigned char gp_vertex[4], gp_vertex_select[4]; diff --git a/source/blender/makesdna/DNA_view3d_defaults.h b/source/blender/makesdna/DNA_view3d_defaults.h index 2a422f5e28e..1ac5ec72b07 100644 --- a/source/blender/makesdna/DNA_view3d_defaults.h +++ b/source/blender/makesdna/DNA_view3d_defaults.h @@ -56,8 +56,8 @@ \ .edit_flag = V3D_OVERLAY_EDIT_FACES | V3D_OVERLAY_EDIT_SEAMS | \ V3D_OVERLAY_EDIT_SHARP | V3D_OVERLAY_EDIT_FREESTYLE_EDGE | \ - V3D_OVERLAY_EDIT_FREESTYLE_FACE | V3D_OVERLAY_EDIT_EDGES | \ - V3D_OVERLAY_EDIT_CREASES | V3D_OVERLAY_EDIT_BWEIGHTS, \ + V3D_OVERLAY_EDIT_FREESTYLE_FACE | V3D_OVERLAY_EDIT_CREASES | \ + V3D_OVERLAY_EDIT_BWEIGHTS, \ .handle_display = CURVE_HANDLE_SELECTED, \ \ .gpencil_paper_opacity = 0.5f, \ diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index cef766cd6f6..6640c56d38f 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -587,7 +587,7 @@ enum { V3D_OVERLAY_EDIT_WEIGHT = (1 << 4), - V3D_OVERLAY_EDIT_EDGES = (1 << 5), + V3D_OVERLAY_EDIT_EDGES_DEPRECATED = (1 << 5), V3D_OVERLAY_EDIT_FACES = (1 << 6), V3D_OVERLAY_EDIT_FACE_DOT = (1 << 7), diff --git a/source/blender/makesrna/intern/rna_space.cc b/source/blender/makesrna/intern/rna_space.cc index df41b98f906..9051527245e 100644 --- a/source/blender/makesrna/intern/rna_space.cc +++ b/source/blender/makesrna/intern/rna_space.cc @@ -4610,11 +4610,6 @@ static void rna_def_space_view3d_overlay(BlenderRNA *brna) prop, "Display Split Normals", "Display vertex-per-face normals as lines"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, nullptr); - prop = RNA_def_property(srna, "show_edges", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, nullptr, "overlay.edit_flag", V3D_OVERLAY_EDIT_EDGES); - RNA_def_property_ui_text(prop, "Display Edges", "Highlight selected edges"); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, nullptr); - prop = RNA_def_property(srna, "show_faces", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, nullptr, "overlay.edit_flag", V3D_OVERLAY_EDIT_FACES); RNA_def_property_ui_text(prop, "Display Faces", "Highlight selected faces"); diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc index 7f6e35a4e29..9dba218a81c 100644 --- a/source/blender/makesrna/intern/rna_userdef.cc +++ b/source/blender/makesrna/intern/rna_userdef.cc @@ -2132,7 +2132,12 @@ static void rna_def_userdef_theme_spaces_edge(StructRNA *srna) prop = RNA_def_property(srna, "edge_select", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Edge Select", ""); + RNA_def_property_ui_text(prop, "Edge Selection", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "edge_mode_select", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Edge Mode Selection", ""); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); prop = RNA_def_property(srna, "edge_seam", PROP_FLOAT, PROP_COLOR_GAMMA); @@ -2178,7 +2183,12 @@ static void rna_def_userdef_theme_spaces_face(StructRNA *srna) prop = RNA_def_property(srna, "face_select", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Face Selected", ""); + RNA_def_property_ui_text(prop, "Face Selection", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "face_mode_select", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Face Mode Selection", ""); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); prop = RNA_def_property(srna, "face_dot", PROP_FLOAT, PROP_COLOR_GAMMA);