diff options
author | Martin Poirier <theeth@yahoo.com> | 2007-05-02 03:03:17 +0400 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2007-05-02 03:03:17 +0400 |
commit | 0b0f0b0ffb0075ce889b7515ebfd822bf99426cb (patch) | |
tree | b34ed1baf8e8e4b3c859d53822f94f825f7daf0e | |
parent | aa7d7103b1ad57671f19deef2a43d84e72eac831 (diff) |
== Bug Fixes ==
[ #6620 ] Problems to select faceloops in Select Only Visible mode
[ #6131 ] Vertex snapping broken in shaded face + edge select mode
Second bug was already "fixed", but that caused the other problem. Forced me to look more deeply into it find the real cause. So, faceloop problem is fixed by revert, the other is fixed by drawing vertice selection colors when in transform (previously was only when vert select was on).
-rw-r--r-- | source/blender/src/drawobject.c | 3 | ||||
-rw-r--r-- | source/blender/src/editmesh_mods.c | 18 |
2 files changed, 5 insertions, 16 deletions
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index 4a3616c0c6e..a39df5b7140 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -4403,7 +4403,8 @@ void draw_object_backbufsel(Object *ob) // we draw edges always, for loop (select) tools em_wireoffs= bbs_mesh_wire(dm, em_solidoffs); - if(G.scene->selectmode & SCE_SELECT_VERTEX) + // we draw verts if vert select mode or if in transform (for snap). + if(G.scene->selectmode & SCE_SELECT_VERTEX || G.moving & G_TRANSFORM_EDIT) em_vertoffs= bbs_mesh_verts(dm, em_wireoffs); else em_vertoffs= em_wireoffs; diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c index b25c9afd3c2..e3bc718858a 100644 --- a/source/blender/src/editmesh_mods.c +++ b/source/blender/src/editmesh_mods.c @@ -381,11 +381,7 @@ EditVert *findnearestvert(int *dist, short sel, short strict) short mval[2]; getmouseco_areawin(mval); - /* If possible, use OGL buffer selection - * This optimisation is possible only when draw mode is better than wire - * when ZBuffer Selection is on and when vertex select is on (otherwise, they aren't drawn) - */ - if(G.vd->drawtype>OB_WIRE && (G.vd->flag & V3D_ZBUF_SELECT) && (G.scene->selectmode & SCE_SELECT_VERTEX)){ + if(G.vd->drawtype>OB_WIRE && (G.vd->flag & V3D_ZBUF_SELECT)){ int distance; unsigned int index; EditVert *eve; @@ -494,11 +490,7 @@ EditEdge *findnearestedge(int *dist) getmouseco_areawin(mval); - /* If possible, use OGL buffer selection - * This optimisation is possible only when draw mode is better than wire - * when ZBuffer Selection is on and when edge select is on (otherwise, they aren't drawn) - */ - if(G.vd->drawtype>OB_WIRE && (G.vd->flag & V3D_ZBUF_SELECT) && (G.scene->selectmode & SCE_SELECT_EDGE)) { + if(G.vd->drawtype>OB_WIRE && (G.vd->flag & V3D_ZBUF_SELECT)) { int distance; unsigned int index = sample_backbuf_rect(mval, 50, em_solidoffs, em_wireoffs, &distance,0, NULL); EditEdge *eed = BLI_findlink(&G.editMesh->edges, index-1); @@ -564,11 +556,7 @@ static EditFace *findnearestface(int *dist) getmouseco_areawin(mval); - /* If possible, use OGL buffer selection - * This optimisation is possible only when draw mode is better than wire - * when ZBuffer Selection is on and when face select is on (otherwise, they aren't drawn) - */ - if(G.vd->drawtype>OB_WIRE && (G.vd->flag & V3D_ZBUF_SELECT) && (G.scene->selectmode & SCE_SELECT_FACE)) { + if(G.vd->drawtype>OB_WIRE && (G.vd->flag & V3D_ZBUF_SELECT)) { unsigned int index = sample_backbuf(mval[0], mval[1]); EditFace *efa = BLI_findlink(&G.editMesh->faces, index-1); |