diff --git a/examples/opengl3_example/imgui_impl_glfw_gl3.cpp b/examples/opengl3_example/imgui_impl_glfw_gl3.cpp
index 92def5e..1c88344 100644
--- a/examples/opengl3_example/imgui_impl_glfw_gl3.cpp
+++ b/examples/opengl3_example/imgui_impl_glfw_gl3.cpp
@@ -19,7 +19,7 @@
 static double       g_Time = 0.0f;
 static bool         g_MousePressed[3] = { false, false, false };
 static float        g_MouseWheel = 0.0f;
-static bool         g_FontTextureLoaded = false;
+static GLuint       g_FontTexture = 0;
 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;
@@ -145,7 +145,7 @@
         io.AddInputCharacter((unsigned short)c);
 }
 
-void ImGui_ImplGlfwGL3_InitFontsTexture()
+void ImGui_ImplGlfwGL3_CreateFontsTexture()
 {
     ImGuiIO& io = ImGui::GetIO();
 
@@ -153,20 +153,17 @@
     int width, height;
     io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height);   // Load as RGBA 32-bits for OpenGL3 demo because it is more likely to be compatible with user's existing shader.
 
-    GLuint tex_id;
-    glGenTextures(1, &tex_id);
-    glBindTexture(GL_TEXTURE_2D, tex_id);
+    glGenTextures(1, &g_FontTexture);
+    glBindTexture(GL_TEXTURE_2D, g_FontTexture);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
 
     // Store our identifier
-    io.Fonts->TexID = (void *)(intptr_t)tex_id;
-
-    g_FontTextureLoaded = true;
+    io.Fonts->TexID = (void *)(intptr_t)g_FontTexture;
 }
 
-static void InitGL()
+bool ImGui_ImplGlfwGL3_CreateDeviceObjects()
 {
     const GLchar *vertex_shader =
         "#version 330\n"
@@ -229,12 +226,15 @@
 #undef OFFSETOF
     glBindVertexArray(0);
     glBindBuffer(GL_ARRAY_BUFFER, 0);
+
+    ImGui_ImplGlfwGL3_CreateFontsTexture();
+
+    return true;
 }
 
 bool    ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks)
 {
     g_Window = window;
-    InitGL();
 
     ImGuiIO& io = ImGui::GetIO();
     io.KeyMap[ImGuiKey_Tab] = GLFW_KEY_TAB;                 // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array.
@@ -291,18 +291,19 @@
     glDeleteProgram(g_ShaderHandle);
     g_ShaderHandle = 0;
 
-    if (GLuint tex_id = (GLuint)(intptr_t)ImGui::GetIO().Fonts->TexID)
+    if (g_FontTexture)
     {
-        glDeleteTextures(1, &tex_id);
+        glDeleteTextures(1, &g_FontTexture);
         ImGui::GetIO().Fonts->TexID = 0;
+        g_FontTexture = 0;
     }
     ImGui::Shutdown();
 }
 
 void ImGui_ImplGlfwGL3_NewFrame()
 {
-    if (!g_FontTextureLoaded)
-        ImGui_ImplGlfwGL3_InitFontsTexture();
+    if (!g_FontTexture)
+        ImGui_ImplGlfwGL3_CreateDeviceObjects();
 
     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 16d5d53..7b18157 100644
--- a/examples/opengl3_example/imgui_impl_glfw_gl3.h
+++ b/examples/opengl3_example/imgui_impl_glfw_gl3.h
@@ -4,10 +4,13 @@
 struct GLFWwindow;
 
 bool        ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks);
-void        ImGui_ImplGlfwGL3_InitFontsTexture();
 void        ImGui_ImplGlfwGL3_Shutdown();
 void        ImGui_ImplGlfwGL3_NewFrame();
 
+// Use if you want to reset your rendering device without losing ImGui state.
+void        ImGui_ImplGlfwGL3_InvalidateDeviceObjects();
+bool        ImGui_ImplGlfwGL3_CreateDeviceObjects();
+
 // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization)
 // Provided here if you want to chain callbacks.
 // You can also handle inputs yourself and use those as a reference.
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index d773ec3..9651970 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -32,7 +32,6 @@
     //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_InitFontsTexture();
 
     bool show_test_window = true;
     bool show_another_window = false;
diff --git a/examples/opengl_example/imgui_impl_glfw.cpp b/examples/opengl_example/imgui_impl_glfw.cpp
index aa7de29..f327394 100644
--- a/examples/opengl_example/imgui_impl_glfw.cpp
+++ b/examples/opengl_example/imgui_impl_glfw.cpp
@@ -18,7 +18,7 @@
 static double       g_Time = 0.0f;
 static bool         g_MousePressed[3] = { false, false, false };
 static float        g_MouseWheel = 0.0f;
-static bool         g_FontTextureLoaded = false;
+static GLuint       g_FontTexture = 0;
 
 // This is the main rendering function that you have to implement and provide to ImGui (via setting up 'RenderDrawListsFn' in the ImGuiIO structure)
 // If text or lines are blurry when integrating ImGui in your engine:
@@ -125,25 +125,36 @@
         io.AddInputCharacter((unsigned short)c);
 }
 
-void ImGui_ImplGlfw_InitFontsTexture()
+bool ImGui_ImplGlfw_CreateDeviceObjects()
 {
     ImGuiIO& io = ImGui::GetIO();
 
+    // Build texture
     unsigned char* pixels;
     int width, height;
     io.Fonts->GetTexDataAsAlpha8(&pixels, &width, &height);
 
-    GLuint tex_id;
-    glGenTextures(1, &tex_id);
-    glBindTexture(GL_TEXTURE_2D, tex_id);
+    // Create texture
+    glGenTextures(1, &g_FontTexture);
+    glBindTexture(GL_TEXTURE_2D, g_FontTexture);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
     glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, width, height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, pixels);
 
     // Store our identifier
-    io.Fonts->TexID = (void *)(intptr_t)tex_id;
+    io.Fonts->TexID = (void *)(intptr_t)g_FontTexture;
 
-    g_FontTextureLoaded = true;
+    return true;
+}
+
+void    ImGui_ImplGlfw_InvalidateDeviceObjects()
+{
+    if (g_FontTexture)
+    {
+        glDeleteTextures(1, &g_FontTexture);
+        ImGui::GetIO().Fonts->TexID = 0;
+        g_FontTexture = 0;
+    }
 }
 
 bool    ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks)
@@ -189,18 +200,14 @@
 
 void ImGui_ImplGlfw_Shutdown()
 {
-    if (GLuint tex_id = (GLuint)(intptr_t)ImGui::GetIO().Fonts->TexID)
-    {
-        glDeleteTextures(1, &tex_id);
-        ImGui::GetIO().Fonts->TexID = 0;
-    }
+    ImGui_ImplGlfw_InvalidateDeviceObjects();
     ImGui::Shutdown();
 }
 
 void ImGui_ImplGlfw_NewFrame()
 {
-    if (!g_FontTextureLoaded)
-        ImGui_ImplGlfw_InitFontsTexture();
+    if (!g_FontTexture)
+        ImGui_ImplGlfw_CreateDeviceObjects();
 
     ImGuiIO& io = ImGui::GetIO();
 
diff --git a/examples/opengl_example/imgui_impl_glfw.h b/examples/opengl_example/imgui_impl_glfw.h
index 53909fa..502d837 100644
--- a/examples/opengl_example/imgui_impl_glfw.h
+++ b/examples/opengl_example/imgui_impl_glfw.h
@@ -4,10 +4,13 @@
 struct GLFWwindow;
 
 bool        ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks);
-void        ImGui_ImplGlfw_InitFontsTexture();
 void        ImGui_ImplGlfw_Shutdown();
 void        ImGui_ImplGlfw_NewFrame();
 
+// Use if you want to reset your rendering device without losing ImGui state.
+void        ImGui_ImplGlfw_InvalidateDeviceObjects();
+bool        ImGui_ImplGlfw_CreateDeviceObjects();
+
 // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization)
 // Provided here if you want to chain callbacks.
 // You can also handle inputs yourself and use those as a reference.
diff --git a/examples/opengl_example/main.cpp b/examples/opengl_example/main.cpp
index 1dd7839..c9d303d 100644
--- a/examples/opengl_example/main.cpp
+++ b/examples/opengl_example/main.cpp
@@ -27,7 +27,6 @@
     //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_InitFontsTexture();
 
     bool show_test_window = true;
     bool show_another_window = false;
