summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2010-03-17 07:56:50 +0000
committerManolo Gouy <Manolo>2010-03-17 07:56:50 +0000
commit8e4d054650d879bdd7eb549a4ef4ebc9104e2677 (patch)
tree6e98f68222712d247d79258d9dc97751043379c7
parent762d02fb6207c40e3c0e2ff8a9d41a510094f9c0 (diff)
Some fine tuning after introduction of Fl_Gl_Window-capable Fl_Printer::print_widget()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7281 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--src/Fl_Device.cxx14
-rw-r--r--src/Fl_Gl_Printer.cxx4
-rw-r--r--test/cube.cxx2
-rw-r--r--test/glpuzzle.cxx29
4 files changed, 5 insertions, 44 deletions
diff --git a/src/Fl_Device.cxx b/src/Fl_Device.cxx
index 642ddd22b..4372d58db 100644
--- a/src/Fl_Device.cxx
+++ b/src/Fl_Device.cxx
@@ -45,13 +45,6 @@ void Fl_Virtual_Printer::print_widget(Fl_Widget* widget, int delta_x, int delta_
}
// if widget is a window, clip all drawings to the window area
if (is_window) fl_push_clip(0, 0, widget->w(), widget->h() );
-#ifdef __APPLE__
- CGContextRef save_gc = fl_gc;
-#elif defined(WIN32) // && !defined(__CYGWIN__)
- HDC save_gc = fl_gc;
-#else
- _XGC *save_gc = fl_gc; // FIXME
-#endif
// we do some trickery to recognize OpenGL windows and draw them via a plugin
int drawn_by_plugin = 0;
if (widget->as_gl_window()) {
@@ -59,10 +52,9 @@ void Fl_Virtual_Printer::print_widget(Fl_Widget* widget, int delta_x, int delta_
Fl_Device_Plugin *pi = (Fl_Device_Plugin*)pm.plugin("opengl.device.fltk.org");
if (pi) drawn_by_plugin = pi->print(this, widget, 0, 0);
}
- if (!drawn_by_plugin)
- widget->draw();
-
- fl_gc = save_gc;
+ if (!drawn_by_plugin) {
+ widget->draw();
+ }
if (is_window) fl_pop_clip();
// find subwindows of widget and print them
traverse(widget);
diff --git a/src/Fl_Gl_Printer.cxx b/src/Fl_Gl_Printer.cxx
index ac1892dde..46d8f011f 100644
--- a/src/Fl_Gl_Printer.cxx
+++ b/src/Fl_Gl_Printer.cxx
@@ -91,8 +91,8 @@ void Fl_Gl_Printer::print_gl_window(Fl_Gl_Window *glw, int x, int y)
}
/*
- This class will make sure that OpenGL printing is availbale if fltk_gl
- was linked to the programm.
+ This class will make sure that OpenGL printing is available if fltk_gl
+ was linked to the program.
*/
class Fl_Gl_Device_Plugin : public Fl_Device_Plugin {
public:
diff --git a/test/cube.cxx b/test/cube.cxx
index e726b0e8f..b91fc0f87 100644
--- a/test/cube.cxx
+++ b/test/cube.cxx
@@ -170,8 +170,6 @@ void print_cb(Fl_Widget *w, void *data)
if( printer.start_page() ) return;
printer.scale(0.5,0.5);
printer.print_widget( win );
- printer.print_gl_window( cube, cube->x(), cube->y() );
- printer.print_gl_window( cube2, cube2->x(), cube2->y() );
printer.end_page();
printer.end_job();
}
diff --git a/test/glpuzzle.cxx b/test/glpuzzle.cxx
index 7b8a64d1a..8a4d57b20 100644
--- a/test/glpuzzle.cxx
+++ b/test/glpuzzle.cxx
@@ -1420,38 +1420,9 @@ menu(int choice)
}
}
-// added to demo printing
-#include <FL/Fl_Sys_Menu_Bar.H>
-#include <FL/Fl_Gl_Printer.H>
-
-void print_cb(Fl_Widget *w, void *data)
-{
- Fl_Gl_Printer printer;
- Fl_Window *win = Fl::first_window();
- if(!win) return;
- if( printer.start_job(1) ) return;
- if( printer.start_page() ) return;
- printer.scale(0.68,0.68);
- printer.print_gl_window( (Fl_Gl_Window*)win );
- printer.end_page();
- printer.end_job();
-}
-// end of printing demo
-
int
main(int argc, char **argv)
{
- // added to demo printing
- static Fl_Menu_Item items[] = {
- { "Menu", 0, 0, 0, FL_SUBMENU },
- { "Print", 0, print_cb, 0, 0 },
- { 0 },
- { 0 }
- };
- Fl_Sys_Menu_Bar *menubar_;
- menubar_ = new Fl_Sys_Menu_Bar(0, 0, 1, 25);
- menubar_->menu(items);
- // end of printing demo
long i;
glutInit(&argc, argv);