diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index caf19482ba..ad9e073f5a 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -389,13 +389,37 @@ class ShowBase: self.eventMgr.shutdown() def toggleBackface(self): - toggleBackface(self.render.arc()) + return toggleBackface(self.render.arc()) + + def backfaceCullingOn(self): + if self.toggleBackface(): + self.toggleBackface() + + def backfaceCullingOff(self): + if not self.toggleBackface(): + self.toggleBackface() def toggleTexture(self): - toggleTexture(self.render.arc()) + return toggleTexture(self.render.arc()) + + def textureOn(self): + if not self.toggleTexture(): + self.toggleTexture() + + def textureOff(self): + if self.toggleTexture(): + self.toggleTexture() def toggleWireframe(self): - toggleWireframe(self.render.arc()) + return toggleWireframe(self.render.arc()) + + def wireframeOn(self): + if not self.toggleWireframe(): + self.toggleWireframe() + + def wireframeOff(self): + if self.toggleWireframe(): + self.toggleWireframe() def disableMouse(self): """ diff --git a/direct/src/showbase/showBase.cxx b/direct/src/showbase/showBase.cxx index bb6a1334cb..2a38f0eb55 100644 --- a/direct/src/showbase/showBase.cxx +++ b/direct/src/showbase/showBase.cxx @@ -207,7 +207,7 @@ add_render_layer(GraphicsWindow *win, Node *render_top, Camera *camera) { } -void +bool toggle_wireframe(NodeRelation *render_arc) { static bool wireframe_mode = false; @@ -226,10 +226,11 @@ toggle_wireframe(NodeRelation *render_arc) { render_arc->set_transition(rma); render_arc->set_transition(cfa); } + return wireframe_mode; } -void +bool toggle_backface(NodeRelation *render_arc) { static bool backface_mode = false; @@ -245,10 +246,11 @@ toggle_backface(NodeRelation *render_arc) { CullFaceTransition *cfa = new CullFaceTransition(CullFaceProperty::M_cull_clockwise); render_arc->set_transition(cfa); } + return backface_mode; } -void toggle_texture(NodeRelation *render_arc) { +bool toggle_texture(NodeRelation *render_arc) { static bool textures_enabled = true; textures_enabled = !textures_enabled; @@ -261,6 +263,7 @@ void toggle_texture(NodeRelation *render_arc) { ta->set_priority(100); render_arc->set_transition(ta); } + return textures_enabled; } void take_snapshot(GraphicsWindow *win, const string &name) { diff --git a/direct/src/showbase/showBase.h b/direct/src/showbase/showBase.h index 1a4678bb22..ca8adf890c 100644 --- a/direct/src/showbase/showBase.h +++ b/direct/src/showbase/showBase.h @@ -51,9 +51,9 @@ EXPCL_DIRECT NodePath setup_panda_2d(GraphicsWindow *win, const string &name); EXPCL_DIRECT void add_render_layer(GraphicsWindow *win, Node *render_top, Camera *camera); -EXPCL_DIRECT void toggle_wireframe(NodeRelation *render_arc); -EXPCL_DIRECT void toggle_texture(NodeRelation *render_arc); -EXPCL_DIRECT void toggle_backface(NodeRelation *render_arc); +EXPCL_DIRECT bool toggle_wireframe(NodeRelation *render_arc); +EXPCL_DIRECT bool toggle_texture(NodeRelation *render_arc); +EXPCL_DIRECT bool toggle_backface(NodeRelation *render_arc); EXPCL_DIRECT void take_snapshot(GraphicsWindow *win, const string &name);