From b86f2f735a004a66f62f70ec30aea01b828731bd Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Mon, 18 Jan 2016 22:55:46 +0000 Subject: Replaced static initializer with Fl_OpenGL_Display_Device. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11008 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Gl_Window.cxx | 22 ++++++++++++++++++---- src/Fl_Image_Surface.cxx | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index 4fe8ca13e..da93fd399 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -151,7 +151,21 @@ public: const char *Fl_OpenGL_Graphics_Driver::class_id = "Fl_OpenGL_Graphics_Driver"; -Fl_OpenGL_Graphics_Driver fl_opengl_graphics_driver; +Fl_OpenGL_Display_Device *Fl_OpenGL_Display_Device::display_device() { + static Fl_OpenGL_Display_Device *display = new Fl_OpenGL_Display_Device(new Fl_OpenGL_Graphics_Driver()); + return display; +}; + + +Fl_OpenGL_Display_Device::Fl_OpenGL_Display_Device(Fl_OpenGL_Graphics_Driver *graphics_driver) +: Fl_Surface_Device(graphics_driver) +{ +} + + +const char *Fl_OpenGL_Display_Device::class_id = "Fl_OpenGL_Display_Device"; + + #endif // ------ end of separate file! ------------------------------------------------ @@ -659,8 +673,8 @@ void Fl_Gl_Window::draw_overlay() {} */ void Fl_Gl_Window::draw() { #ifdef FL_CFG_GFX_OPENGL - Fl_Graphics_Driver *prev_driver = fl_graphics_driver; - fl_graphics_driver = &fl_opengl_graphics_driver; + Fl_Surface_Device *prev_device = Fl_Surface_Device::surface(); + Fl_OpenGL_Display_Device::display_device()->set_current(); glPushAttrib(GL_ENABLE_BIT); glDisable(GL_DEPTH_TEST); glPushMatrix(); @@ -673,7 +687,7 @@ void Fl_Gl_Window::draw() { glPopMatrix(); glPushAttrib(GL_ENABLE_BIT); - fl_graphics_driver = prev_driver; + prev_device->set_current(); #else Fl::fatal("Fl_Gl_Window::draw() *must* be overriden. Please refer to the documentation."); #endif diff --git a/src/Fl_Image_Surface.cxx b/src/Fl_Image_Surface.cxx index 79f5c28d3..7f6198967 100644 --- a/src/Fl_Image_Surface.cxx +++ b/src/Fl_Image_Surface.cxx @@ -82,6 +82,7 @@ Fl_Image_Surface::~Fl_Image_Surface() { /** Returns an image made of all drawings sent to the Fl_Image_Surface object. The returned object contains its own copy of the RGB data. + The caller is responsible for deleting the image. */ Fl_RGB_Image* Fl_Image_Surface::image() { -- cgit v1.2.3