mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-10-26 12:27:30 +00:00 
			
		
		
		
	Backup polygon mode, draw with filled polygons, restore state, for clients running opengl with glPolygonMode. closes #798
This commit is contained in:
		| @@ -45,6 +45,7 @@ void ImGui_ImplSdlGL3_RenderDrawLists(ImDrawData* draw_data) | ||||
|     GLint last_array_buffer; glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &last_array_buffer); | ||||
|     GLint last_element_array_buffer; glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &last_element_array_buffer); | ||||
|     GLint last_vertex_array; glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array); | ||||
|     GLint last_polygon_mode[2]; glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); | ||||
|     GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport); | ||||
|     GLint last_scissor_box[4]; glGetIntegerv(GL_SCISSOR_BOX, last_scissor_box); | ||||
|     GLenum last_blend_src_rgb; glGetIntegerv(GL_BLEND_SRC_RGB, (GLint*)&last_blend_src_rgb); | ||||
| @@ -58,13 +59,14 @@ void ImGui_ImplSdlGL3_RenderDrawLists(ImDrawData* draw_data) | ||||
|     GLboolean last_enable_depth_test = glIsEnabled(GL_DEPTH_TEST); | ||||
|     GLboolean last_enable_scissor_test = glIsEnabled(GL_SCISSOR_TEST); | ||||
|  | ||||
|     // Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled | ||||
|     // Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled, polygon fill | ||||
|     glEnable(GL_BLEND); | ||||
|     glBlendEquation(GL_FUNC_ADD); | ||||
|     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | ||||
|     glDisable(GL_CULL_FACE); | ||||
|     glDisable(GL_DEPTH_TEST); | ||||
|     glEnable(GL_SCISSOR_TEST); | ||||
|     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); | ||||
|  | ||||
|     // Setup viewport, orthographic projection matrix | ||||
|     glViewport(0, 0, (GLsizei)fb_width, (GLsizei)fb_height); | ||||
| @@ -121,6 +123,7 @@ void ImGui_ImplSdlGL3_RenderDrawLists(ImDrawData* draw_data) | ||||
|     if (last_enable_cull_face) glEnable(GL_CULL_FACE); else glDisable(GL_CULL_FACE); | ||||
|     if (last_enable_depth_test) glEnable(GL_DEPTH_TEST); else glDisable(GL_DEPTH_TEST); | ||||
|     if (last_enable_scissor_test) glEnable(GL_SCISSOR_TEST); else glDisable(GL_SCISSOR_TEST); | ||||
|     glPolygonMode(GL_FRONT_AND_BACK, last_polygon_mode[0]); | ||||
|     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]); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 unknown
					unknown