Revision: 26699
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26699
Author: campbellbarton
Date: 2010-02-08 11:12:02 +0100 (Mon, 08 Feb 2010)
Log Message:
-----------
[#21018] Lasso select fails [26694]
fix for #20936 broke lasso and border select whe not in wire view.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_view3d/view3d_select.c
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_select.c
2010-02-08 09:22:17 UTC (rev 26698)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_select.c
2010-02-08 10:12:02 UTC (rev 26699)
@@ -469,18 +469,24 @@
/* workaround: init mats first, EM_mask_init_backbuf_border can change
view matrix to pixel space, breaking edge select with backbuf. fixes
bug #20936 */
- ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's
screen/vert projection */
+
+ /* [#21018] breaks zbuf select. run below. only if bbsel fails */
+ /* ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d) */
+
+ glLoadMatrixf(vc->rv3d->viewmat);
bbsel= EM_mask_init_backbuf_border(vc, mcords, moves, rect.xmin,
rect.ymin, rect.xmax, rect.ymax);
if(ts->selectmode & SCE_SELECT_VERTEX) {
if (bbsel) {
EM_backbuf_checkAndSelectVerts(vc->em, select);
} else {
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for
foreach's screen/vert projection */
mesh_foreachScreenVert(vc,
do_lasso_select_mesh__doSelectVert, &data, 1);
}
}
if(ts->selectmode & SCE_SELECT_EDGE) {
/* Does both bbsel and non-bbsel versions (need screen
cos for both) */
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for
foreach's screen/vert projection */
data.pass = 0;
mesh_foreachScreenEdge(vc, do_lasso_select_mesh__doSelectEdge,
&data, 0);
@@ -495,6 +501,7 @@
if (bbsel) {
EM_backbuf_checkAndSelectFaces(vc->em, select);
} else {
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for
foreach's screen/vert projection */
mesh_foreachScreenFace(vc,
do_lasso_select_mesh__doSelectFace, &data);
}
}
@@ -1397,13 +1404,19 @@
/* workaround: init mats first, EM_mask_init_backbuf_border can change
view matrix to pixel space, breaking edge select with backbuf. fixes
bug #20936 */
- ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's
screen/vert projection */
+ /*ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);*/ /* for foreach's
screen/vert projection */
+
+ /* [#21018] breaks zbuf select. run below. only if bbsel fails */
+ /* ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d) */
+
+ glLoadMatrixf(vc->rv3d->viewmat);
bbsel= EM_init_backbuf_border(vc, rect->xmin, rect->ymin, rect->xmax,
rect->ymax);
if(ts->selectmode & SCE_SELECT_VERTEX) {
if (bbsel) {
EM_backbuf_checkAndSelectVerts(vc->em, select);
} else {
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
mesh_foreachScreenVert(vc,
do_mesh_box_select__doSelectVert, &data, 1);
}
}
@@ -1423,6 +1436,7 @@
if(bbsel) {
EM_backbuf_checkAndSelectFaces(vc->em, select);
} else {
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
mesh_foreachScreenFace(vc,
do_mesh_box_select__doSelectFace, &data);
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs