Revision: 49348
          http://brlcad.svn.sourceforge.net/brlcad/?rev=49348&view=rev
Author:   bob1961
Date:     2012-02-08 20:54:48 +0000 (Wed, 08 Feb 2012)
Log Message:
-----------
This fixes the problem with using the framebuffer while drawing things in 
shaded mode.

Modified Paths:
--------------
    brlcad/trunk/include/tclcad.h
    brlcad/trunk/src/libtclcad/tclcad_obj.c

Modified: brlcad/trunk/include/tclcad.h
===================================================================
--- brlcad/trunk/include/tclcad.h       2012-02-08 20:53:16 UTC (rev 49347)
+++ brlcad/trunk/include/tclcad.h       2012-02-08 20:54:48 UTC (rev 49348)
@@ -132,7 +132,8 @@
 TCLCAD_EXPORT extern void go_refresh(struct ged_obj *gop,
                                  struct ged_dm_view *gdvp);
 TCLCAD_EXPORT extern void go_refresh_draw(struct ged_obj *gop,
-                                      struct ged_dm_view *gdvp);
+                                         struct ged_dm_view *gdvp,
+                                         int restore_zbuffer);
 
 /* defined in cmdhist_obj.c */
 TCLCAD_EXPORT extern int Cho_Init(Tcl_Interp *interp);

Modified: brlcad/trunk/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/trunk/src/libtclcad/tclcad_obj.c     2012-02-08 20:53:16 UTC (rev 
49347)
+++ brlcad/trunk/src/libtclcad/tclcad_obj.c     2012-02-08 20:54:48 UTC (rev 
49348)
@@ -11977,17 +11977,13 @@
     }
 
     DM_DRAW_BEGIN(gdvp->gdv_dmp);
-    go_refresh_draw(gop, gdvp);
+    go_refresh_draw(gop, gdvp, restore_zbuffer);
     DM_DRAW_END(gdvp->gdv_dmp);
-
-    if (restore_zbuffer) {
-       DM_SET_ZBUFFER(gdvp->gdv_dmp, 1);
-    }
 }
 
 
 void
-go_refresh_draw(struct ged_obj *gop, struct ged_dm_view *gdvp)
+go_refresh_draw(struct ged_obj *gop, struct ged_dm_view *gdvp, int 
restore_zbuffer)
 {
     if (gdvp->gdv_fbs.fbs_mode == TCLCAD_OBJ_FB_MODE_OVERLAY) {
        if (gdvp->gdv_view->gv_rect.grs_draw) {
@@ -12005,6 +12001,10 @@
            fb_refresh(gdvp->gdv_fbs.fbs_fbp, 0, 0,
                       gdvp->gdv_dmp->dm_width, gdvp->gdv_dmp->dm_height);
 
+       if (restore_zbuffer) {
+           DM_SET_ZBUFFER(gdvp->gdv_dmp, 1);
+       }
+
        return;
     } else if (gdvp->gdv_fbs.fbs_mode == TCLCAD_OBJ_FB_MODE_INTERLAY) {
        go_draw(gdvp);
@@ -12016,6 +12016,10 @@
        } else
            fb_refresh(gdvp->gdv_fbs.fbs_fbp, 0, 0,
                       gdvp->gdv_dmp->dm_width, gdvp->gdv_dmp->dm_height);
+
+       if (restore_zbuffer) {
+           DM_SET_ZBUFFER(gdvp->gdv_dmp, 1);
+       }
     } else {
        if (gdvp->gdv_fbs.fbs_mode == TCLCAD_OBJ_FB_MODE_UNDERLAY) {
            if (gdvp->gdv_view->gv_rect.grs_draw) {
@@ -12025,8 +12029,17 @@
            } else
                fb_refresh(gdvp->gdv_fbs.fbs_fbp, 0, 0,
                           gdvp->gdv_dmp->dm_width, gdvp->gdv_dmp->dm_height);
+
+           if (gdvp->gdv_dmp->dm_zbuffer) {
+               bu_log("Set zbuffer on, after underlay\n");
+               DM_SET_ZBUFFER(gdvp->gdv_dmp, 1);
+           }
        }
 
+       if (restore_zbuffer) {
+           DM_SET_ZBUFFER(gdvp->gdv_dmp, 1);
+       }
+
        go_draw(gdvp);
     }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to