فهرست منبع

added function to take images

Cary Sandvig 25 سال پیش
والد
کامیت
824d2d8c53
2فایلهای تغییر یافته به همراه15 افزوده شده و 0 حذف شده
  1. 13 0
      direct/src/showbase/showBase.cxx
  2. 2 0
      direct/src/showbase/showBase.h

+ 13 - 0
direct/src/showbase/showBase.cxx

@@ -275,6 +275,19 @@ void toggle_texture(NodeAttributes &initial_state) {
   }
 }
 
+void take_snapshot(GraphicsWindow *win, const string &name) {
+  PixelBuffer p;
+  GraphicsStateGuardian* g = win->get_gsg();
+  const RenderBuffer& r = g->get_render_buffer(RenderBuffer::T_front);
+
+  p.set_xsize(win->get_width());
+  p.set_ysize(win->get_height());
+  p._image = PTA_uchar(win->get_width() * win->get_height() + 3);
+
+  p.copy(g, g->get_current_display_region(), r);
+  p.write(name.c_str());
+}
+
 // Returns the configure object for accessing config variables from a
 // scripting language.
 ConfigShowbase &

+ 2 - 0
direct/src/showbase/showBase.h

@@ -45,6 +45,8 @@ EXPCL_DIRECT void toggle_wireframe(NodeAttributes &initial_state);
 EXPCL_DIRECT void toggle_texture(NodeAttributes &initial_state);
 EXPCL_DIRECT void toggle_backface(NodeAttributes &initial_state);
 
+EXPCL_DIRECT void take_snapshot(GraphicsWindow *win, const string &name);
+
 EXPCL_DIRECT ConfigShowbase &get_config_showbase();
 
 END_PUBLISH