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

Reply via email to