diff options
| -rw-r--r-- | FL/Fl_Device.H | 14 | ||||
| -rw-r--r-- | FL/win32.H | 2 | ||||
| -rw-r--r-- | FL/x.H | 4 | ||||
| -rw-r--r-- | src/Fl_Bitmap.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Device.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Double_Window.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Pixmap.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_cocoa.mm | 4 | ||||
| -rw-r--r-- | src/Fl_win32.cxx | 4 | ||||
| -rw-r--r-- | src/Fl_x.cxx | 4 |
10 files changed, 18 insertions, 22 deletions
diff --git a/FL/Fl_Device.H b/FL/Fl_Device.H index f7c7fecbb..e47343e28 100644 --- a/FL/Fl_Device.H +++ b/FL/Fl_Device.H @@ -40,12 +40,8 @@ #include <FL/Fl_RGB_Image.H> class Fl_Graphics_Driver; -class Fl_Display_Device; -class Fl_Surface_Device; /** \brief Points to the driver that currently receives all graphics requests */ FL_EXPORT extern Fl_Graphics_Driver *fl_graphics_driver; -/** \brief Points to the surface that currently receives all graphics requests */ -FL_EXPORT extern Fl_Surface_Device *fl_surface; /** signature of image generation callback function. @@ -365,6 +361,7 @@ public: class FL_EXPORT Fl_Surface_Device : public Fl_Device { /** \brief The graphics driver in use by this surface. */ Fl_Graphics_Driver *_driver; + static Fl_Surface_Device *_surface; // the surface that currently receives graphics output protected: /** \brief Constructor that sets the graphics driver to use for the created surface. */ Fl_Surface_Device(Fl_Graphics_Driver *graphics_driver) {_driver = graphics_driver; }; @@ -376,7 +373,7 @@ public: /** \brief Returns the graphics driver of this drawing surface. */ inline Fl_Graphics_Driver *driver() {return _driver; }; /** \brief the surface that currently receives graphics output */ - static Fl_Surface_Device *surface() {return fl_surface; }; + static inline Fl_Surface_Device *surface() {return _surface; }; /** \brief The destructor. */ virtual ~Fl_Surface_Device() {} }; @@ -385,14 +382,13 @@ public: \brief A display to which the computer can draw. */ class FL_EXPORT Fl_Display_Device : public Fl_Surface_Device { + static Fl_Display_Device *_display; // the platform display device public: static const char *class_id; /** \brief A constructor that sets the graphics driver used by the display */ Fl_Display_Device(Fl_Graphics_Driver *graphics_driver) : Fl_Surface_Device( graphics_driver) { class_name( class_id); }; - /** - @brief Returns the platform's display device. - */ - static Fl_Display_Device *display_device(); + /** Returns the platform display device. */ + static inline Fl_Display_Device *display_device() {return _display;}; }; /** diff --git a/FL/win32.H b/FL/win32.H index cb19475df..ac484db6b 100644 --- a/FL/win32.H +++ b/FL/win32.H @@ -136,7 +136,7 @@ typedef HBITMAP Fl_Offscreen; # define fl_begin_offscreen(b) \ HDC _sgc=fl_gc; Window _sw=fl_window; \ - Fl_Surface_Device *_ss = fl_surface; Fl_Display_Device::display_device()->set_current(); \ + Fl_Surface_Device *_ss = Fl_Surface_Device::surface(); Fl_Display_Device::display_device()->set_current(); \ fl_gc=fl_makeDC(b); int _savedc = SaveDC(fl_gc); fl_window=(HWND)b; fl_push_no_clip() # define fl_end_offscreen() \ @@ -84,13 +84,13 @@ extern FL_EXPORT ulong fl_event_time; typedef ulong Fl_Offscreen; # define fl_create_offscreen(w,h) \ XCreatePixmap(fl_display, \ - (fl_surface->class_name() == Fl_Display_Device::class_id ? \ + (Fl_Surface_Device::surface()->class_name() == Fl_Display_Device::class_id ? \ fl_window : fl_xid(Fl::first_window()) ) , \ w, h, fl_visual->depth) // begin/end are macros that save the old state in local variables: # define fl_begin_offscreen(pixmap) \ Window _sw=fl_window; fl_window=pixmap; \ - Fl_Surface_Device *_ss = fl_surface; Fl_Display_Device::display_device()->set_current(); \ + Fl_Surface_Device *_ss = Fl_Surface_Device::surface(); Fl_Display_Device::display_device()->set_current(); \ fl_push_no_clip() # define fl_end_offscreen() \ fl_pop_clip(); fl_window = _sw; _ss->set_current() diff --git a/src/Fl_Bitmap.cxx b/src/Fl_Bitmap.cxx index 1c49dc530..0f2e0220f 100644 --- a/src/Fl_Bitmap.cxx +++ b/src/Fl_Bitmap.cxx @@ -304,7 +304,7 @@ void Fl_GDI_Graphics_Driver::draw(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, HDC tempdc; int save; BOOL use_print_algo = false; - if (fl_surface->class_name() == Fl_Printer::class_id) { + if (Fl_Surface_Device::surface()->class_name() == Fl_Printer::class_id) { static HMODULE hMod = NULL; if (!hMod) { hMod = LoadLibrary("MSIMG32.DLL"); diff --git a/src/Fl_Device.cxx b/src/Fl_Device.cxx index d74ce11fb..0a099bc85 100644 --- a/src/Fl_Device.cxx +++ b/src/Fl_Device.cxx @@ -48,7 +48,7 @@ const char *Fl_Xlib_Graphics_Driver::class_id = "Fl_Xlib_Graphics_Driver"; void Fl_Surface_Device::set_current(void) { fl_graphics_driver = _driver; - fl_surface = this; + _surface = this; } // diff --git a/src/Fl_Double_Window.cxx b/src/Fl_Double_Window.cxx index b64f949cf..fa59c8cec 100644 --- a/src/Fl_Double_Window.cxx +++ b/src/Fl_Double_Window.cxx @@ -278,7 +278,7 @@ static Fl_Surface_Device *_ss; \param ctx the offscreen buffer. */ void fl_begin_offscreen(Fl_Offscreen ctx) { - _ss = fl_surface; + _ss = Fl_Surface_Device::surface(); Fl_Display_Device::display_device()->set_current(); if (stack_ix<stack_max) { stack_gc[stack_ix] = fl_gc; diff --git a/src/Fl_Pixmap.cxx b/src/Fl_Pixmap.cxx index 18f533761..75200c60e 100644 --- a/src/Fl_Pixmap.cxx +++ b/src/Fl_Pixmap.cxx @@ -145,7 +145,7 @@ void Fl_GDI_Graphics_Driver::draw(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP } fl_end_offscreen(); } - if (fl_surface->class_name() == Fl_Printer::class_id) { + if (Fl_Surface_Device::surface()->class_name() == Fl_Printer::class_id) { typedef BOOL (WINAPI* fl_transp_func) (HDC,int,int,int,int,HDC,int,int,int,int,UINT); static HMODULE hMod = NULL; static fl_transp_func fl_TransparentBlt = NULL; diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index ca25ee54e..90e40a07a 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -99,8 +99,8 @@ static void cocoaMouseHandler(NSEvent *theEvent); static Fl_Quartz_Graphics_Driver fl_quartz_driver; static Fl_Display_Device fl_quartz_display(&fl_quartz_driver); FL_EXPORT Fl_Graphics_Driver *fl_graphics_driver = (Fl_Graphics_Driver*)&fl_quartz_driver; // the current target device of graphics operations -FL_EXPORT Fl_Surface_Device *fl_surface = (Fl_Surface_Device*)&fl_quartz_display; // the current target surface of graphics operations -Fl_Display_Device *Fl_Display_Device::display_device() { return &fl_quartz_display; }; +Fl_Surface_Device* Fl_Surface_Device::_surface = (Fl_Surface_Device*)&fl_quartz_display; // the current target surface of graphics operations +Fl_Display_Device *Fl_Display_Device::_display = &fl_quartz_display; // the platform display // public variables int fl_screen; diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 7f7328914..c9f1f64b3 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -87,8 +87,8 @@ static Fl_GDI_Graphics_Driver fl_gdi_driver; static Fl_Display_Device fl_gdi_display(&fl_gdi_driver); FL_EXPORT Fl_Graphics_Driver *fl_graphics_driver = (Fl_Graphics_Driver*)&fl_gdi_driver; // the current target driver of graphics operations -FL_EXPORT Fl_Surface_Device *fl_surface = (Fl_Surface_Device*)&fl_gdi_display; // the current target surface of graphics operations -Fl_Display_Device *Fl_Display_Device::display_device() { return &fl_gdi_display; }; +Fl_Surface_Device* Fl_Surface_Device::_surface = (Fl_Surface_Device*)&fl_gdi_display; // the current target surface of graphics operations +Fl_Display_Device *Fl_Display_Device::_display = &fl_gdi_display; // the platform display // dynamic wsock dll handling api: #if defined(__CYGWIN__) && !defined(SOCKET) diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index a00b4ac13..9215b2256 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -54,8 +54,8 @@ static Fl_Xlib_Graphics_Driver fl_xlib_driver; static Fl_Display_Device fl_xlib_display(&fl_xlib_driver); FL_EXPORT Fl_Graphics_Driver *fl_graphics_driver = (Fl_Graphics_Driver*)&fl_xlib_driver; // the current target device of graphics operations -FL_EXPORT Fl_Surface_Device *fl_surface = (Fl_Surface_Device*)&fl_xlib_display; // the current target surface of graphics operations -Fl_Display_Device *Fl_Display_Device::display_device() { return &fl_xlib_display; }; +Fl_Surface_Device* Fl_Surface_Device::_surface = (Fl_Surface_Device*)&fl_xlib_display; // the current target surface of graphics operations +Fl_Display_Device *Fl_Display_Device::_display = &fl_xlib_display;// the platform display //////////////////////////////////////////////////////////////// // interface to poll/select call: |
