diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2016-01-18 22:55:46 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2016-01-18 22:55:46 +0000 |
| commit | b86f2f735a004a66f62f70ec30aea01b828731bd (patch) | |
| tree | 1352d35984db4800527aadce0b700bf4dfd42a13 /src | |
| parent | 884928f68c6403947abb65b246a3bb3f2b23d6bf (diff) | |
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
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Gl_Window.cxx | 22 | ||||
| -rw-r--r-- | src/Fl_Image_Surface.cxx | 1 |
2 files changed, 19 insertions, 4 deletions
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() { |
