From 2d52a3494dcf1574287fed0c5ad89009de2b59e0 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Wed, 2 Mar 2016 22:10:03 +0000 Subject: Rewrite Fl_Image_Surface with full separation of public API and platform-specific implementation. File Fl_Image_Surface.cxx still needs to be cut in several platform-specific files. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11273 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_Image_Surface.H | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) (limited to 'FL') diff --git a/FL/Fl_Image_Surface.H b/FL/Fl_Image_Surface.H index 20450be55..3236addd5 100644 --- a/FL/Fl_Image_Surface.H +++ b/FL/Fl_Image_Surface.H @@ -22,7 +22,7 @@ #include #include #include -#include +#include // for Fl_Offscreen /** Directs all graphics requests to an Fl_Image. @@ -46,33 +46,17 @@ \endcode */ class FL_EXPORT Fl_Image_Surface : public Fl_Widget_Surface { - friend Fl_Offscreen fl_create_offscreen(int, int); + friend Fl_Offscreen fl_create_offscreen(int w, int h); #ifndef FL_DOXYGEN friend Fl_Offscreen fl_create_offscreen_with_alpha(int, int);//X11 only #endif - friend void fl_begin_offscreen(Fl_Offscreen); + friend void fl_begin_offscreen(Fl_Offscreen ctx); friend void fl_end_offscreen(void); - friend void fl_delete_offscreen(Fl_Offscreen); + friend void fl_delete_offscreen(Fl_Offscreen ctx); private: - Fl_Offscreen offscreen; - int width; - int height; - Fl_Surface_Device *previous; - Window pre_window; -#if defined(__APPLE__) - int was_high; -#endif - Fl_Image_Surface(Fl_Offscreen pixmap, int w, int h); // for X11 only - void initialize_(Fl_Offscreen pixmap, int w, int h, int high_res); - void end_current(); -#ifdef __APPLE__ // PORTME: Fl_Surface_Driver - platform image surface driver -#elif defined(WIN32) - HDC _sgc; - int _savedc; -#elif defined(FL_PORTING) -# pragma message "FL_PORTING: define variables to hold image data for Fl_Image_Surface" -#else -#endif + class Helper; + Helper *platform_surface; + Fl_Offscreen offscreen(); protected: void translate(int x, int y); void untranslate(); @@ -80,8 +64,12 @@ public: Fl_Image_Surface(int w, int h, int high_res = 0); ~Fl_Image_Surface(); void set_current(); + void end_current(); Fl_RGB_Image *image(); Fl_Shared_Image *highres_image(); + void origin(int *x, int *y); + void origin(int x, int y); + int printable_rect(int *w, int *h); }; #endif // Fl_Image_Surface_H -- cgit v1.2.3