mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	Backends: OpenGL2: Explicitly backup, setup and restore GL_TEXTURE_ENV to increase compatibility with legacy OpenGL applications. (#3000)
This commit is contained in:
		@@ -171,6 +171,8 @@ Other Changes:
 | 
				
			|||||||
- Examples: DX12: Using IDXGIDebug1::ReportLiveObjects() when DX12_ENABLE_DEBUG_LAYER is enabled.
 | 
					- Examples: DX12: Using IDXGIDebug1::ReportLiveObjects() when DX12_ENABLE_DEBUG_LAYER is enabled.
 | 
				
			||||||
- Examples: Emscripten: Removed BINARYEN_TRAP_MODE=clamp from Makefile which was removed in Emscripten 1.39.0
 | 
					- Examples: Emscripten: Removed BINARYEN_TRAP_MODE=clamp from Makefile which was removed in Emscripten 1.39.0
 | 
				
			||||||
  but required prior to 1.39.0, making life easier for absolutely no-one. (#2877, #2878) [@podsvirov]
 | 
					  but required prior to 1.39.0, making life easier for absolutely no-one. (#2877, #2878) [@podsvirov]
 | 
				
			||||||
 | 
					- Backends: OpenGL2: Explicitly backup, setup and restore GL_TEXTURE_ENV to increase compatibility with
 | 
				
			||||||
 | 
					  legacy OpenGL applications. (#3000)
 | 
				
			||||||
- Backends: OpenGL3: Fix building with pre-3.2 GL loaders which do not expose glDrawElementsBaseVertex(),
 | 
					- Backends: OpenGL3: Fix building with pre-3.2 GL loaders which do not expose glDrawElementsBaseVertex(),
 | 
				
			||||||
  using runtime GL version to decide if we set ImGuiBackendFlags_RendererHasVtxOffset. (#2866, #2852) [@dpilawa]
 | 
					  using runtime GL version to decide if we set ImGuiBackendFlags_RendererHasVtxOffset. (#2866, #2852) [@dpilawa]
 | 
				
			||||||
- Backends: OSX: Fix using Backspace key. (#2578, #2817, #2818) [@DiligentGraphics]
 | 
					- Backends: OSX: Fix using Backspace key. (#2578, #2817, #2818) [@DiligentGraphics]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// CHANGELOG
 | 
					// CHANGELOG
 | 
				
			||||||
// (minor and older changes stripped away, please see git history for details)
 | 
					// (minor and older changes stripped away, please see git history for details)
 | 
				
			||||||
 | 
					//  2020-01-23: OpenGL: Explicitly backup, setup and restore GL_TEXTURE_ENV to increase compatibility with legacy OpenGL applications.
 | 
				
			||||||
//  2019-04-30: OpenGL: Added support for special ImDrawCallback_ResetRenderState callback to reset render state.
 | 
					//  2019-04-30: OpenGL: Added support for special ImDrawCallback_ResetRenderState callback to reset render state.
 | 
				
			||||||
//  2019-02-11: OpenGL: Projecting clipping rectangles correctly using draw_data->FramebufferScale to allow multi-viewports for retina display.
 | 
					//  2019-02-11: OpenGL: Projecting clipping rectangles correctly using draw_data->FramebufferScale to allow multi-viewports for retina display.
 | 
				
			||||||
//  2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window.
 | 
					//  2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window.
 | 
				
			||||||
@@ -89,6 +90,7 @@ static void ImGui_ImplOpenGL2_SetupRenderState(ImDrawData* draw_data, int fb_wid
 | 
				
			|||||||
    glEnableClientState(GL_COLOR_ARRAY);
 | 
					    glEnableClientState(GL_COLOR_ARRAY);
 | 
				
			||||||
    glEnable(GL_TEXTURE_2D);
 | 
					    glEnable(GL_TEXTURE_2D);
 | 
				
			||||||
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
 | 
					    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
 | 
				
			||||||
 | 
					    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // If you are using this code with non-legacy OpenGL header/contexts (which you should not, prefer using imgui_impl_opengl3.cpp!!),
 | 
					    // If you are using this code with non-legacy OpenGL header/contexts (which you should not, prefer using imgui_impl_opengl3.cpp!!),
 | 
				
			||||||
    // you may need to backup/reset/restore current shader using the lines below. DO NOT MODIFY THIS FILE! Add the code in your calling function:
 | 
					    // you may need to backup/reset/restore current shader using the lines below. DO NOT MODIFY THIS FILE! Add the code in your calling function:
 | 
				
			||||||
@@ -126,6 +128,7 @@ void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data)
 | 
				
			|||||||
    GLint last_polygon_mode[2]; glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode);
 | 
					    GLint last_polygon_mode[2]; glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode);
 | 
				
			||||||
    GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport);
 | 
					    GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport);
 | 
				
			||||||
    GLint last_scissor_box[4]; glGetIntegerv(GL_SCISSOR_BOX, last_scissor_box);
 | 
					    GLint last_scissor_box[4]; glGetIntegerv(GL_SCISSOR_BOX, last_scissor_box);
 | 
				
			||||||
 | 
					    GLint last_tex_env_mode; glGetTexEnviv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, &last_tex_env_mode);
 | 
				
			||||||
    glPushAttrib(GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT | GL_TRANSFORM_BIT);
 | 
					    glPushAttrib(GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT | GL_TRANSFORM_BIT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Setup desired GL state
 | 
					    // Setup desired GL state
 | 
				
			||||||
@@ -193,6 +196,7 @@ void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data)
 | 
				
			|||||||
    glPolygonMode(GL_FRONT, (GLenum)last_polygon_mode[0]); glPolygonMode(GL_BACK, (GLenum)last_polygon_mode[1]);
 | 
					    glPolygonMode(GL_FRONT, (GLenum)last_polygon_mode[0]); glPolygonMode(GL_BACK, (GLenum)last_polygon_mode[1]);
 | 
				
			||||||
    glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]);
 | 
					    glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]);
 | 
				
			||||||
    glScissor(last_scissor_box[0], last_scissor_box[1], (GLsizei)last_scissor_box[2], (GLsizei)last_scissor_box[3]);
 | 
					    glScissor(last_scissor_box[0], last_scissor_box[1], (GLsizei)last_scissor_box[2], (GLsizei)last_scissor_box[3]);
 | 
				
			||||||
 | 
					    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, last_tex_env_mode);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ImGui_ImplOpenGL2_CreateFontsTexture()
 | 
					bool ImGui_ImplOpenGL2_CreateFontsTexture()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user