diff --git a/examples/opengl3_example/imgui_impl_glfw_gl3.cpp b/examples/opengl3_example/imgui_impl_glfw_gl3.cpp index 2c34bded..cbe9f60c 100644 --- a/examples/opengl3_example/imgui_impl_glfw_gl3.cpp +++ b/examples/opengl3_example/imgui_impl_glfw_gl3.cpp @@ -14,13 +14,12 @@ #include #endif +// Data static GLFWwindow* g_Window = NULL; +static double g_Time = 0.0f; static bool g_MousePressed[3] = { false, false, false }; static float g_MouseWheel = 0.0f; -static double g_Time = 0.0f; static bool g_FontTextureLoaded = false; - -// Handles for OpenGL3 rendering static int g_ShaderHandle = 0, g_VertHandle = 0, g_FragHandle = 0; static int g_AttribLocationTex = 0, g_AttribLocationProjMtx = 0; static int g_AttribLocationPosition = 0, g_AttribLocationUV = 0, g_AttribLocationColor = 0; @@ -146,7 +145,7 @@ void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow* window, unsigned int c) io.AddInputCharacter((unsigned short)c); } -void ImGui_ImplGlfwGL3_LoadFontsTexture() +void ImGui_ImplGlfwGL3_InitFontsTexture() { ImGuiIO& io = ImGui::GetIO(); @@ -293,8 +292,7 @@ void ImGui_ImplGlfwGL3_Shutdown() glDeleteProgram(g_ShaderHandle); g_ShaderHandle = 0; - GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID; - if (tex_id) + if (GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID) { glDeleteTextures(1, &tex_id); ImGui::GetIO().Fonts->TexID = 0; @@ -305,7 +303,7 @@ void ImGui_ImplGlfwGL3_Shutdown() void ImGui_ImplGlfwGL3_NewFrame() { if (!g_FontTextureLoaded) - ImGui_ImplGlfwGL3_LoadFontsTexture(); + ImGui_ImplGlfwGL3_InitFontsTexture(); ImGuiIO& io = ImGui::GetIO(); diff --git a/examples/opengl3_example/imgui_impl_glfw_gl3.h b/examples/opengl3_example/imgui_impl_glfw_gl3.h index bfa5f604..d3d1d817 100644 --- a/examples/opengl3_example/imgui_impl_glfw_gl3.h +++ b/examples/opengl3_example/imgui_impl_glfw_gl3.h @@ -4,8 +4,8 @@ struct GLFWwindow; bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks); +void ImGui_ImplGlfwGL3_InitFontsTexture(); void ImGui_ImplGlfwGL3_Shutdown(); -void ImGui_ImplGlfwGL3_LoadFontsTexture(); void ImGui_ImplGlfwGL3_NewFrame(); // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp index 1665b133..16d3a716 100644 --- a/examples/opengl3_example/main.cpp +++ b/examples/opengl3_example/main.cpp @@ -13,31 +13,32 @@ static void error_callback(int error, const char* description) int main(int argc, char** argv) { + // Setup window glfwSetErrorCallback(error_callback); if (!glfwInit()) exit(1); - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); - GLFWwindow* window = glfwCreateWindow(1280, 720, "ImGui OpenGL3 example", NULL, NULL); glfwMakeContextCurrent(window); gl3wInit(); + // Setup ImGui binding + ImGui_ImplGlfwGL3_Init(window, true); //ImGuiIO& io = ImGui::GetIO(); //ImFont* my_font1 = io.Fonts->AddFontDefault(); //ImFont* my_font2 = io.Fonts->AddFontFromFileTTF("extra_fonts/Karla-Regular.ttf", 15.0f); //ImFont* my_font3 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyClean.ttf", 13.0f); my_font3->DisplayOffset.y += 1; //ImFont* my_font4 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyTiny.ttf", 10.0f); my_font4->DisplayOffset.y += 1; //ImFont* my_font5 = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, io.Fonts->GetGlyphRangesJapanese()); - ImGui_ImplGlfwGL3_Init(window, true); - ImGui_ImplGlfwGL3_LoadFontsTexture(); + ImGui_ImplGlfwGL3_InitFontsTexture(); bool show_test_window = true; bool show_another_window = false; ImVec4 clear_color = ImColor(114, 144, 154); + // Main loop while (!glfwWindowShouldClose(window)) { ImGuiIO& io = ImGui::GetIO(); diff --git a/examples/opengl_example/imgui_impl_glfw.cpp b/examples/opengl_example/imgui_impl_glfw.cpp index bcea31e1..6bf07d8a 100644 --- a/examples/opengl_example/imgui_impl_glfw.cpp +++ b/examples/opengl_example/imgui_impl_glfw.cpp @@ -13,10 +13,11 @@ #include #endif +// Data static GLFWwindow* g_Window = NULL; +static double g_Time = 0.0f; static bool g_MousePressed[3] = { false, false, false }; static float g_MouseWheel = 0.0f; -static double g_Time = 0.0f; static bool g_FontTextureLoaded = false; // This is the main rendering function that you have to implement and provide to ImGui (via setting up 'RenderDrawListsFn' in the ImGuiIO structure) @@ -124,7 +125,7 @@ void ImGui_ImplGlfw_CharCallback(GLFWwindow* window, unsigned int c) io.AddInputCharacter((unsigned short)c); } -void ImGui_ImplGlfw_LoadFontsTexture() +void ImGui_ImplGlfw_InitFontsTexture() { ImGuiIO& io = ImGui::GetIO(); @@ -188,8 +189,7 @@ bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks) void ImGui_ImplGlfw_Shutdown() { - GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID; - if (tex_id) + if (GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID) { glDeleteTextures(1, &tex_id); ImGui::GetIO().Fonts->TexID = 0; @@ -200,7 +200,7 @@ void ImGui_ImplGlfw_Shutdown() void ImGui_ImplGlfw_NewFrame() { if (!g_FontTextureLoaded) - ImGui_ImplGlfw_LoadFontsTexture(); + ImGui_ImplGlfw_InitFontsTexture(); ImGuiIO& io = ImGui::GetIO(); diff --git a/examples/opengl_example/imgui_impl_glfw.h b/examples/opengl_example/imgui_impl_glfw.h index e3581e00..455b542a 100644 --- a/examples/opengl_example/imgui_impl_glfw.h +++ b/examples/opengl_example/imgui_impl_glfw.h @@ -4,8 +4,8 @@ struct GLFWwindow; bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks); +void ImGui_ImplGlfw_InitFontsTexture(); void ImGui_ImplGlfw_Shutdown(); -void ImGui_ImplGlfw_LoadFontsTexture(); void ImGui_ImplGlfw_NewFrame(); // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) diff --git a/examples/opengl_example/main.cpp b/examples/opengl_example/main.cpp index d658f6ae..1dd7839b 100644 --- a/examples/opengl_example/main.cpp +++ b/examples/opengl_example/main.cpp @@ -12,13 +12,14 @@ static void error_callback(int error, const char* description) int main(int argc, char** argv) { + // Setup window glfwSetErrorCallback(error_callback); if (!glfwInit()) exit(1); - GLFWwindow* window = glfwCreateWindow(1280, 720, "ImGui OpenGL2 example", NULL, NULL); glfwMakeContextCurrent(window); + // Setup ImGui binding ImGui_ImplGlfw_Init(window, true); //ImGuiIO& io = ImGui::GetIO(); //ImFont* my_font1 = io.Fonts->AddFontDefault(); @@ -26,12 +27,13 @@ int main(int argc, char** argv) //ImFont* my_font3 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyClean.ttf", 13.0f); my_font3->DisplayOffset.y += 1; //ImFont* my_font4 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyTiny.ttf", 10.0f); my_font4->DisplayOffset.y += 1; //ImFont* my_font5 = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, io.Fonts->GetGlyphRangesJapanese()); - ImGui_ImplGlfw_LoadFontsTexture(); + ImGui_ImplGlfw_InitFontsTexture(); bool show_test_window = true; bool show_another_window = false; ImVec4 clear_color = ImColor(114, 144, 154); + // Main loop while (!glfwWindowShouldClose(window)) { glfwPollEvents();