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