[client] imgui: added imgui to the client and OpenGL/EGL renderers

This commit is contained in:
Geoffrey McRae 2021-07-08 11:45:54 +10:00
parent c9d469fb91
commit f08163fd72
10 changed files with 102 additions and 4 deletions

View file

@ -29,6 +29,9 @@
#include <GL/gl.h>
#include <GL/glx.h>
#include "cimgui.h"
#include "generator/output/cimgui_impl.h"
#include "common/debug.h"
#include "common/option.h"
#include "common/framebuffer.h"
@ -272,6 +275,8 @@ void opengl_deinitialize(void * opaque)
if (this->renderStarted)
{
ImGui_ImplOpenGL2_Shutdown();
glDeleteLists(this->texList , BUFFER_COUNT);
glDeleteLists(this->mouseList, 1);
glDeleteLists(this->fpsList , 1);
@ -581,6 +586,13 @@ bool opengl_render_startup(void * opaque)
this->hasTextures = true;
app_glSetSwapInterval(this->opt.vsync ? 1 : 0);
if (!ImGui_ImplOpenGL2_Init())
{
DEBUG_ERROR("Failed to initialize ImGui");
return false;
}
this->renderStarted = true;
return true;
}
@ -690,6 +702,12 @@ bool opengl_render(void * opaque, LG_RendererRotate rotate)
break;
}
if (app_renderImGui())
{
ImGui_ImplOpenGL2_NewFrame();
ImGui_ImplOpenGL2_RenderDrawData(igGetDrawData());
}
if (this->opt.preventBuffer)
{
app_glSwapBuffers();