diff options
Diffstat (limited to 'src/ScreenDump.cxx')
| -rw-r--r-- | src/ScreenDump.cxx | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/src/ScreenDump.cxx b/src/ScreenDump.cxx deleted file mode 100644 index f331a76..0000000 --- a/src/ScreenDump.cxx +++ /dev/null @@ -1,59 +0,0 @@ -// -// Copyright 2009 Johannes Hofmann <Johannes.Hofmann@gmx.de> -// -// This software may be used and distributed according to the terms -// of the GNU General Public License, incorporated herein by reference. - -#include <FL/Fl.H> -#include <FL/x.H> -#include <FL/fl_draw.H> - -#include "ScreenDump.H" - -ScreenDump::ScreenDump(Fl_Widget *widget) { - Fl_Offscreen offscreen; - int x, y; - - x = widget->x(); - y = widget->y(); - w = widget->w(); - h = widget->h(); - - Fl::flush(); - widget->resize(0, 0, w, h); - - offscreen = fl_create_offscreen(w, h); - fl_begin_offscreen(offscreen); - widget->redraw(); - widget->draw(); - fl_color(FL_YELLOW); - fl_draw("created with gipfel", w - 80, h - 10); - rgb = fl_read_image(NULL, 0, 0, w, h); - fl_end_offscreen(); - fl_delete_offscreen(offscreen); - - widget->resize(x, y, w, h); -} - -ScreenDump::~ScreenDump() { - if (rgb) - delete[] rgb; -} - -int -ScreenDump::save(OutputImage *out) { - if (!rgb) - return 1; - - out->init(w, h); - - for (int y = 0; y < h; y++) { - for (int x = 0; x < w; x++) { - unsigned char *px = &rgb[(y * w + x) * 3]; - out->set_pixel(x, px[0] * 255, px[1] * 255, px[2] * 255); - } - out->next_line(); - } - - return out->done(); -} |
