FLTK 1.3.4
Fl_Image_Surface.H
1 //
2 // "$Id: Fl_Image_Surface.H 11156 2016-02-11 20:42:51Z manolo $"
3 //
4 // Draw-to-image code for the Fast Light Tool Kit (FLTK).
5 //
6 // Copyright 1998-2014 by Bill Spitzak and others.
7 //
8 // This library is free software. Distribution and use rights are outlined in
9 // the file "COPYING" which should have been included with this file. If this
10 // file is missing or damaged, see the license at:
11 //
12 // http://www.fltk.org/COPYING.php
13 //
14 // Please report all bugs and problems on the following page:
15 //
16 // http://www.fltk.org/str.php
17 //
18 
19 #ifndef Fl_Image_Surface_H
20 #define Fl_Image_Surface_H
21 
22 #include <FL/Fl_Copy_Surface.H>
23 #include <FL/Fl_Image.H>
24 #include <FL/Fl_Shared_Image.H>
25 
26 
47 class FL_EXPORT Fl_Image_Surface : public Fl_Surface_Device {
48 private:
49  void prepare_(int w, int h, int highres);
50  Fl_Offscreen offscreen;
51  int width;
52  int height;
53  Fl_Paged_Device *helper;
54 #ifdef __APPLE__
55 #elif defined(WIN32)
56  HDC _sgc;
57  Window _sw;
58  Fl_Surface_Device *_ss;
59  int _savedc;
60 #else
61  Fl_Surface_Device *previous;
62  Window pre_window;
63  GC gc;
64 #endif
65 public:
66  static const char *class_id;
67  const char *class_name() {return class_id;};
68 #if FLTK_ABI_VERSION >= 10304 || defined(FL_DOXYGEN)
69  Fl_Image_Surface(int w, int h, int highres = 0);
70 #else
71  Fl_Image_Surface(int w, int h, int highres);
72  Fl_Image_Surface(int w, int h);
73 #endif
75  void set_current();
76  void draw(Fl_Widget*, int delta_x = 0, int delta_y = 0);
77  void draw_decorated_window(Fl_Window* win, int delta_x = 0, int delta_y = 0);
78  Fl_RGB_Image *image();
79  Fl_Shared_Image *highres_image();
80 };
81 
82 #ifdef __APPLE__
83 /* Mac class to implement translate()/untranslate() for a flipped bitmap graphics context */
84 class FL_EXPORT Fl_Quartz_Flipped_Surface_ : public Fl_Quartz_Surface_ {
85 public:
86  static const char *class_id;
87  const char *class_name() {return class_id;};
88  Fl_Quartz_Flipped_Surface_(int w, int h);
89  void translate(int x, int y);
90  void untranslate();
91  virtual ~Fl_Quartz_Flipped_Surface_() {};
92 };
93 #endif
94 
95 #endif // Fl_Image_Surface_H
96 
97 //
98 // End of "$Id: Fl_Image_Surface.H 11156 2016-02-11 20:42:51Z manolo $".
99 //
Fl_Widget is the base class for all widgets in FLTK.
Definition: Fl_Widget.H:101
Represents page-structured drawing surfaces.
Definition: Fl_Paged_Device.H:38
This widget produces an actual window.
Definition: Fl_Window.H:57
A drawing surface that's susceptible to receive graphical output.
Definition: Fl_Device.H:556
virtual void set_current(void)
Make this surface the current drawing surface.
Definition: Fl_Device.cxx:44
Fl_Image, Fl_RGB_Image classes.
The Fl_RGB_Image class supports caching and drawing of full-color images with 1 to 4 channels of colo...
Definition: Fl_Image.H:202
Directs all graphics requests to an Fl_Image.
Definition: Fl_Image_Surface.H:47
Fl_Shared_Image class.
const char * class_name()
Returns the name of the class of this object.
Definition: Fl_Image_Surface.H:67
This class supports caching, loading, scaling, and drawing of image files.
Definition: Fl_Shared_Image.H:50