|
|
|
@ -24,7 +24,7 @@ static void ImImpl_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_c |
|
|
|
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
|
|
|
|
glDisable(GL_CULL_FACE); |
|
|
|
|
glDisable(GL_DEPTH_TEST); |
|
|
|
|
//glEnable(GL_SCISSOR_TEST);
|
|
|
|
|
glEnable(GL_SCISSOR_TEST); |
|
|
|
|
glEnableClientState(GL_VERTEX_ARRAY); |
|
|
|
|
glEnableClientState(GL_TEXTURE_COORD_ARRAY); |
|
|
|
|
glEnableClientState(GL_COLOR_ARRAY); |
|
|
|
@ -34,9 +34,11 @@ static void ImImpl_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_c |
|
|
|
|
glEnable(GL_TEXTURE_2D); |
|
|
|
|
|
|
|
|
|
// Setup matrices
|
|
|
|
|
const float width = ImGui::GetIO().DisplaySize.x; |
|
|
|
|
const float height = ImGui::GetIO().DisplaySize.y; |
|
|
|
|
glMatrixMode(GL_PROJECTION); |
|
|
|
|
glLoadIdentity(); |
|
|
|
|
glOrtho(0.0f, ImGui::GetIO().DisplaySize.x, ImGui::GetIO().DisplaySize.y, 0.0f, -1.0f, +1.0f); |
|
|
|
|
glOrtho(0.0f, width, height, 0.0f, -1.0f, +1.0f); |
|
|
|
|
glMatrixMode(GL_MODELVIEW); |
|
|
|
|
glLoadIdentity(); |
|
|
|
|
|
|
|
|
@ -53,7 +55,7 @@ static void ImImpl_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_c |
|
|
|
|
const ImDrawCmd* pcmd_end = cmd_list->commands.end(); |
|
|
|
|
for (const ImDrawCmd* pcmd = cmd_list->commands.begin(); pcmd != pcmd_end; pcmd++) |
|
|
|
|
{ |
|
|
|
|
glScissor((int)pcmd->clip_rect.x, (int)pcmd->clip_rect.y, (int)(pcmd->clip_rect.z - pcmd->clip_rect.x), (int)(pcmd->clip_rect.w - pcmd->clip_rect.y)); |
|
|
|
|
glScissor((int)pcmd->clip_rect.x, (int)(height - pcmd->clip_rect.w), (int)(pcmd->clip_rect.z - pcmd->clip_rect.x), (int)(pcmd->clip_rect.w - pcmd->clip_rect.y)); |
|
|
|
|
glDrawArrays(GL_TRIANGLES, vtx_offset, pcmd->vtx_count); |
|
|
|
|
vtx_offset += pcmd->vtx_count; |
|
|
|
|
} |
|
|
|
|