summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2021-04-29 10:40:02 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2021-04-29 10:40:18 +0200
commit9df287b415cd4d67a7a371c4cc89a11ebb8340f6 (patch)
treec918ed8ee29b088555746e7ad391e425b1aa920f
parentf9e8ef0b7acd645a6327eb9d8fb76ce99481b0f9 (diff)
Cleaner access to Fl_Gl_Window_Driver objects.
-rw-r--r--FL/Fl_Gl_Window.H5
-rw-r--r--src/Fl_Gl_Window_Driver.H1
-rw-r--r--src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx2
-rw-r--r--src/drivers/X11/Fl_X11_Gl_Window_Driver.cxx2
4 files changed, 3 insertions, 7 deletions
diff --git a/FL/Fl_Gl_Window.H b/FL/Fl_Gl_Window.H
index 0204c3efc..e3279f915 100644
--- a/FL/Fl_Gl_Window.H
+++ b/FL/Fl_Gl_Window.H
@@ -50,13 +50,8 @@ class Fl_Gl_Window_Driver;
*/
class FL_EXPORT Fl_Gl_Window : public Fl_Window {
friend class Fl_Gl_Window_Driver;
- friend class _Fl_Gl_Overlay;
- friend class Fl_OpenGL_Display_Device;
Fl_Gl_Window_Driver *pGlWindowDriver;
- /** Returns a pointer to the window's Fl_Gl_Window_Driver object */
- Fl_Gl_Window_Driver *gl_driver() {return pGlWindowDriver;}
-
int mode_;
const int *alist;
Fl_Gl_Choice *g;
diff --git a/src/Fl_Gl_Window_Driver.H b/src/Fl_Gl_Window_Driver.H
index bebde10fc..ae2c66ff2 100644
--- a/src/Fl_Gl_Window_Driver.H
+++ b/src/Fl_Gl_Window_Driver.H
@@ -100,6 +100,7 @@ public:
virtual int genlistsize() { return 0; } // support for gl_draw()
virtual Fl_Font_Descriptor** fontnum_to_fontdescriptor(int fnum);
virtual Fl_RGB_Image* capture_gl_rectangle(int x, int y, int w, int h);
+ static inline Fl_Gl_Window_Driver* driver(const Fl_Gl_Window *win) {return win->pGlWindowDriver;}
};
#endif /* Fl_Gl_Window_Driver_H */
diff --git a/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx b/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx
index 121c0dba4..1d0b25ccf 100644
--- a/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx
+++ b/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx
@@ -40,7 +40,7 @@ Fl_OpenGL_Display_Device::Fl_OpenGL_Display_Device(Fl_OpenGL_Graphics_Driver *gr
Fl_RGB_Image* Fl_OpenGL_Display_Device::capture_gl_rectangle(Fl_Gl_Window* glw, int x, int y, int w, int h)
{
- return glw->gl_driver()->capture_gl_rectangle(x, y, w, h);
+ return Fl_Gl_Window_Driver::driver(glw)->capture_gl_rectangle(x, y, w, h);
}
/* Captures a rectangle of a Fl_Gl_Window and returns it as a RGB image.
diff --git a/src/drivers/X11/Fl_X11_Gl_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Gl_Window_Driver.cxx
index a52d4c70f..ac7041f19 100644
--- a/src/drivers/X11/Fl_X11_Gl_Window_Driver.cxx
+++ b/src/drivers/X11/Fl_X11_Gl_Window_Driver.cxx
@@ -430,7 +430,7 @@ void _Fl_Gl_Overlay::draw() {
uchar save_valid = w->valid();
w->valid(valid());
Fl_Xlib_Graphics_Driver::fl_overlay = 1;
- w->gl_driver()->draw_overlay();
+ Fl_Gl_Window_Driver::driver(w)->draw_overlay();
Fl_Xlib_Graphics_Driver::fl_overlay = 0;
valid(w->valid());
w->valid(save_valid);