Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw/engines/select/select_draw_utils.c')
-rw-r--r--source/blender/draw/engines/select/select_draw_utils.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/source/blender/draw/engines/select/select_draw_utils.c b/source/blender/draw/engines/select/select_draw_utils.c
index 241a05d0feb..745c55405de 100644
--- a/source/blender/draw/engines/select/select_draw_utils.c
+++ b/source/blender/draw/engines/select/select_draw_utils.c
@@ -40,6 +40,25 @@
/** \name Draw Utilities
* \{ */
+short select_id_get_object_select_mode(Scene *scene, Object *ob)
+{
+ short r_select_mode = 0;
+ if (ob->mode & (OB_MODE_WEIGHT_PAINT | OB_MODE_VERTEX_PAINT | OB_MODE_TEXTURE_PAINT)) {
+ Mesh *me_orig = DEG_get_original_object(ob)->data;
+ if (me_orig->editflag & ME_EDIT_PAINT_FACE_SEL) {
+ r_select_mode = SCE_SELECT_FACE;
+ }
+ if (me_orig->editflag & ME_EDIT_PAINT_VERT_SEL) {
+ r_select_mode |= SCE_SELECT_VERTEX;
+ }
+ }
+ else {
+ r_select_mode = scene->toolsettings->selectmode;
+ }
+
+ return r_select_mode;
+}
+
static bool check_ob_drawface_dot(short select_mode, const View3D *v3d, char dt)
{
if (select_mode & SCE_SELECT_FACE) {
@@ -189,16 +208,6 @@ void select_id_draw_object(void *vedata,
r_face_offset);
}
else {
- if (ob->mode & (OB_MODE_WEIGHT_PAINT | OB_MODE_VERTEX_PAINT | OB_MODE_TEXTURE_PAINT)) {
- Mesh *me_orig = DEG_get_original_object(ob)->data;
- select_mode = 0;
- if (me_orig->editflag & ME_EDIT_PAINT_FACE_SEL) {
- select_mode = SCE_SELECT_FACE;
- }
- if (me_orig->editflag & ME_EDIT_PAINT_VERT_SEL) {
- select_mode |= SCE_SELECT_VERTEX;
- }
- }
draw_select_id_mesh(
stl, ob, select_mode, initial_offset, r_vert_offset, r_edge_offset, r_face_offset);
}