|
|
|
@ -63,15 +63,15 @@ static void ImImpl_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_c
|
|
|
|
|
for (int n = 0; n < cmd_lists_count; n++)
|
|
|
|
|
{
|
|
|
|
|
const ImDrawList* cmd_list = cmd_lists[n];
|
|
|
|
|
const unsigned char* vtx_buffer = (const unsigned char*)cmd_list->vtx_buffer.begin();
|
|
|
|
|
const unsigned char* vtx_buffer = (const unsigned char*)&cmd_list->vtx_buffer.front();
|
|
|
|
|
glVertexPointer(2, GL_FLOAT, sizeof(ImDrawVert), (void*)(vtx_buffer + offsetof(ImDrawVert, pos)));
|
|
|
|
|
glTexCoordPointer(2, GL_FLOAT, sizeof(ImDrawVert), (void*)(vtx_buffer + offsetof(ImDrawVert, uv)));
|
|
|
|
|
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(ImDrawVert), (void*)(vtx_buffer + offsetof(ImDrawVert, col)));
|
|
|
|
|
|
|
|
|
|
int vtx_offset = 0;
|
|
|
|
|
const ImDrawCmd* pcmd_end = cmd_list->commands.end();
|
|
|
|
|
for (const ImDrawCmd* pcmd = cmd_list->commands.begin(); pcmd != pcmd_end; pcmd++)
|
|
|
|
|
for (size_t cmd_i = 0; cmd_i < cmd_list->commands.size(); cmd_i++)
|
|
|
|
|
{
|
|
|
|
|
const ImDrawCmd* pcmd = &cmd_list->commands[cmd_i];
|
|
|
|
|
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;
|
|
|
|
|