From 79d3b8d69d019ffc19c63eba621dd8d10560e47b Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Wed, 2 Aug 2023 20:24:46 +0200 Subject: #762: saves all frequently used OpenGL attributes When rendering the OpenGL layer, this prepares the FLTK rendering parameters and restores them after FLTK rendering. --- src/Fl_Gl_Window.cxx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index edcf45f0d..a3c2641bd 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -354,13 +354,11 @@ void Fl_Gl_Window::draw_begin() { valid(1); } - glPushAttrib(GL_ENABLE_BIT); - glPushAttrib(GL_TRANSFORM_BIT); + glPushAttrib(GL_ALL_ATTRIB_BITS); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); -// glOrtho(-0.5, w()-0.5, h()-0.5, -0.5, -1, 1); glOrtho(0.0, w(), h(), 0.0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); @@ -368,6 +366,8 @@ void Fl_Gl_Window::draw_begin() { glLoadIdentity(); glDisable(GL_DEPTH_TEST); + glDisable(GL_LIGHTING); + glDisable(GL_TEXTURE_2D); glEnable(GL_POINT_SMOOTH); glLineWidth((GLfloat)(drv->pixels_per_unit_*drv->line_width_)); @@ -375,7 +375,6 @@ void Fl_Gl_Window::draw_begin() { glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); if (!pGlWindowDriver->need_scissor()) glDisable(GL_SCISSOR_TEST); - // TODO: all of the settings should be saved on the GL stack } /** @@ -389,8 +388,7 @@ void Fl_Gl_Window::draw_end() { glMatrixMode(GL_PROJECTION); glPopMatrix(); - glPopAttrib(); // GL_TRANSFORM_BIT - glPopAttrib(); // GL_ENABLE_BIT + glPopAttrib(); // GL_ALL_ATTRIB_BITS Fl_Surface_Device::pop_current(); if (mode() & FL_OPENGL3) pGlWindowDriver->switch_back(); -- cgit v1.2.3