|
|
|
@ -51,6 +51,7 @@ void ImGui_ImplGlfwGL3_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); |
|
|
|
@ -64,13 +65,14 @@ void ImGui_ImplGlfwGL3_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); |
|
|
|
@ -127,6 +129,7 @@ void ImGui_ImplGlfwGL3_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]); |
|
|
|
|
} |
|
|
|
|