Fixed bug #6711, Retopo problem when maximizing 3d view and still painting
authorNicholas Bishop <nicholasbishop@gmail.com>
Tue, 18 Dec 2007 21:56:17 +0000 (21:56 +0000)
committerNicholas Bishop <nicholasbishop@gmail.com>
Tue, 18 Dec 2007 21:56:17 +0000 (21:56 +0000)
Caused by some incorrect usage of the current v3d during updates

source/blender/src/drawview.c
source/blender/src/editscreen.c
source/blender/src/retopo.c
source/blender/src/toets.c

index 19df0f672974968cf5a54143617c80e5af8e7e6b..b3ffd1263ad2f99c6a3785cc4cda6dbfbf4b163d 100644 (file)
@@ -3065,6 +3065,8 @@ void drawview3dspace(ScrArea *sa, void *spacedata)
                                fdrawXORcirc((float)car[0], (float)car[1], sculptmode_brush()->size);
                }
        }
+
+       retopo_paint_view_update(v3d);
        retopo_draw_paint_lines();
 
        if(!G.obedit && OBACT && G.f&G_PARTICLEEDIT && area_is_active_area(v3d->area)){
index b843d820ba55b153449b15fbca11271b3ad31569..741b6ab6d1340c57ada133397f60c8ea5719f6d3 100644 (file)
@@ -2443,9 +2443,6 @@ void area_fullscreen(void)        /* with curarea */
                wich_cursor(newa);
        }
        
-       if(curarea->full)
-               retopo_force_update();
-
        /* there's also events in queue for this, but we call fullscreen for render output
        now, and that doesn't go back to queue. Bad code, but doesn't hurt... (ton) */
        for(sa= G.curscreen->areabase.first; sa; sa= sa->next) {
@@ -2455,8 +2452,7 @@ void area_fullscreen(void)        /* with curarea */
        /* bad code #2: setscreen() ends with first area active. fullscreen render assumes this too */
        curarea= sc->areabase.first;
        
-       if(!curarea->full)
-               retopo_force_update();
+       retopo_force_update();
 }
 
 static void area_autoplayscreen(void)
index 287909da470913450e892c08b6b1c57c94d56f56..60be622e3addb0759884fb3d6b44dc25a35048b7 100644 (file)
@@ -452,11 +452,8 @@ void retopo_force_update()
                if(vd) {
                        if(vd->depths) vd->depths->damaged= 1;
                        retopo_queue_updates(vd);
-                       if(retopo_mesh_paint_check() && vd->retopo_view_data) {
-                               /* Force redraw */
-                               drawview3dspace(vd->area, vd);
-                               retopo_paint_view_update(vd);
-                       }
+                       if(retopo_mesh_paint_check() && vd->retopo_view_data)
+                               allqueue(REDRAWVIEW3D, 0);
                }
        }
 }
index 27a39537988911ef9878499aeee7eacc86e74ee1..f2c50ffc2a49a9b6a763988ed586be2e290814a9 100644 (file)
@@ -384,7 +384,6 @@ void persptoetsen(unsigned short event)
 
        if(G.vd->depths) G.vd->depths->damaged= 1;
        retopo_queue_updates(G.vd);
-       retopo_force_update();
        
        if(preview3d_event) 
                BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);