|
|
|
@ -30,10 +30,15 @@ static unsigned int g_VboHandle = 0, g_VaoHandle = 0, g_ElementsHandle = 0; |
|
|
|
|
// - in your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f)
|
|
|
|
|
static void ImGui_ImplGlfwGL3_RenderDrawLists(ImDrawData* draw_data) |
|
|
|
|
{ |
|
|
|
|
// Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled
|
|
|
|
|
GLint last_program, last_texture; |
|
|
|
|
// Backup GL state
|
|
|
|
|
GLint last_program, last_texture, last_array_buffer, last_element_array_buffer, last_vertex_array; |
|
|
|
|
glGetIntegerv(GL_CURRENT_PROGRAM, &last_program); |
|
|
|
|
glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture); |
|
|
|
|
glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &last_array_buffer); |
|
|
|
|
glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &last_element_array_buffer); |
|
|
|
|
glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array); |
|
|
|
|
|
|
|
|
|
// Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled
|
|
|
|
|
glEnable(GL_BLEND); |
|
|
|
|
glBlendEquation(GL_FUNC_ADD); |
|
|
|
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
|
|
|
@ -87,13 +92,13 @@ static void ImGui_ImplGlfwGL3_RenderDrawLists(ImDrawData* draw_data) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Restore modified state
|
|
|
|
|
glBindVertexArray(0); |
|
|
|
|
glBindBuffer(GL_ARRAY_BUFFER, 0); |
|
|
|
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); |
|
|
|
|
// Restore modified GL state
|
|
|
|
|
glUseProgram(last_program); |
|
|
|
|
glDisable(GL_SCISSOR_TEST); |
|
|
|
|
glBindTexture(GL_TEXTURE_2D, last_texture); |
|
|
|
|
glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer); |
|
|
|
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, last_element_array_buffer); |
|
|
|
|
glBindVertexArray(last_vertex_array); |
|
|
|
|
glDisable(GL_SCISSOR_TEST); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static const char* ImGui_ImplGlfwGL3_GetClipboardText() |
|
|
|
@ -162,6 +167,12 @@ void ImGui_ImplGlfwGL3_CreateFontsTexture() |
|
|
|
|
|
|
|
|
|
bool ImGui_ImplGlfwGL3_CreateDeviceObjects() |
|
|
|
|
{ |
|
|
|
|
// Backup GL state
|
|
|
|
|
GLint last_texture, last_array_buffer, last_vertex_array; |
|
|
|
|
glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture); |
|
|
|
|
glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &last_array_buffer); |
|
|
|
|
glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array); |
|
|
|
|
|
|
|
|
|
const GLchar *vertex_shader = |
|
|
|
|
"#version 330\n" |
|
|
|
|
"uniform mat4 ProjMtx;\n" |
|
|
|
@ -220,11 +231,14 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects() |
|
|
|
|
glVertexAttribPointer(g_AttribLocationUV, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*)OFFSETOF(ImDrawVert, uv)); |
|
|
|
|
glVertexAttribPointer(g_AttribLocationColor, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(ImDrawVert), (GLvoid*)OFFSETOF(ImDrawVert, col)); |
|
|
|
|
#undef OFFSETOF |
|
|
|
|
glBindVertexArray(0); |
|
|
|
|
glBindBuffer(GL_ARRAY_BUFFER, 0); |
|
|
|
|
|
|
|
|
|
ImGui_ImplGlfwGL3_CreateFontsTexture(); |
|
|
|
|
|
|
|
|
|
// Restore modified GL state
|
|
|
|
|
glBindTexture(GL_TEXTURE_2D, last_texture); |
|
|
|
|
glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer); |
|
|
|
|
glBindVertexArray(last_vertex_array); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|