1414#include < sstream>
1515#include < vector>
1616
17+ #include < imgui_impl_glfw.h>
18+ #include < imgui_impl_opengl3.h>
19+
1720// =======
1821// Classes
1922// =======
@@ -747,6 +750,12 @@ void r_renderer_c::Init()
747750
748751 whiteImage = RegisterShader (" @white" , 0 );
749752
753+ imguiCtx = ImGui::CreateContext ();
754+ ImGui::SetCurrentContext (imguiCtx);
755+
756+ ImGui_ImplGlfw_InitForOpenGL ((GLFWwindow*)sys->video ->GetWindowHandle (), true );
757+ ImGui_ImplOpenGL3_Init (" #version 100" );
758+
750759 fonts[F_FIXED ] = new r_font_c (this , " Bitstream Vera Sans Mono" );
751760 fonts[F_VAR ] = new r_font_c (this , " Liberation Sans" );
752761 fonts[F_VAR_BOLD ] = new r_font_c (this , " Liberation Sans Bold" );
@@ -760,6 +769,10 @@ void r_renderer_c::Shutdown()
760769
761770 sys->con ->Printf (" Unloading resources...\n " );
762771
772+ ImGui_ImplOpenGL3_Shutdown ();
773+ ImGui_ImplGlfw_Shutdown ();
774+ ImGui::DestroyContext (imguiCtx);
775+
763776 delete whiteImage;
764777
765778 for (int f = 0 ; f < F_NUMFONTS ; f++) {
@@ -799,6 +812,9 @@ void r_renderer_c::Shutdown()
799812
800813void r_renderer_c::BeginFrame ()
801814{
815+ ImGui_ImplOpenGL3_NewFrame ();
816+ ImGui_ImplGlfw_NewFrame ();
817+ ImGui::NewFrame ();
802818 {
803819 auto & vid = sys->video ->vid ;
804820 int wNew = VirtualScreenWidth ();
@@ -914,6 +930,9 @@ void r_renderer_c::EndFrame()
914930
915931 glFlush ();
916932
933+ ImGui::Render ();
934+ ImGui_ImplOpenGL3_RenderDrawData (ImGui::GetDrawData ());
935+
917936 // Swap output buffers
918937 openGL->Swap ();
919938
0 commit comments