mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-18 14:16:36 +00:00
Examples: OpenGL3: Implement ImGui_ImplGlfwGL3_InvalidateDeviceObjects() like other examples.
This commit is contained in:
parent
e4fb14a9e0
commit
1d76890526
@ -262,6 +262,32 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImGui_ImplGlfwGL3_InvalidateDeviceObjects()
|
||||||
|
{
|
||||||
|
if (g_VaoHandle) glDeleteVertexArrays(1, &g_VaoHandle);
|
||||||
|
if (g_VboHandle) glDeleteBuffers(1, &g_VboHandle);
|
||||||
|
if (g_ElementsHandle) glDeleteBuffers(1, &g_ElementsHandle);
|
||||||
|
g_VaoHandle = g_VboHandle = g_ElementsHandle = 0;
|
||||||
|
|
||||||
|
glDetachShader(g_ShaderHandle, g_VertHandle);
|
||||||
|
glDeleteShader(g_VertHandle);
|
||||||
|
g_VertHandle = 0;
|
||||||
|
|
||||||
|
glDetachShader(g_ShaderHandle, g_FragHandle);
|
||||||
|
glDeleteShader(g_FragHandle);
|
||||||
|
g_FragHandle = 0;
|
||||||
|
|
||||||
|
glDeleteProgram(g_ShaderHandle);
|
||||||
|
g_ShaderHandle = 0;
|
||||||
|
|
||||||
|
if (g_FontTexture)
|
||||||
|
{
|
||||||
|
glDeleteTextures(1, &g_FontTexture);
|
||||||
|
ImGui::GetIO().Fonts->TexID = 0;
|
||||||
|
g_FontTexture = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks)
|
bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks)
|
||||||
{
|
{
|
||||||
g_Window = window;
|
g_Window = window;
|
||||||
@ -307,28 +333,7 @@ bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks)
|
|||||||
|
|
||||||
void ImGui_ImplGlfwGL3_Shutdown()
|
void ImGui_ImplGlfwGL3_Shutdown()
|
||||||
{
|
{
|
||||||
if (g_VaoHandle) glDeleteVertexArrays(1, &g_VaoHandle);
|
ImGui_ImplGlfwGL3_InvalidateDeviceObjects();
|
||||||
if (g_VboHandle) glDeleteBuffers(1, &g_VboHandle);
|
|
||||||
if (g_ElementsHandle) glDeleteBuffers(1, &g_ElementsHandle);
|
|
||||||
g_VaoHandle = g_VboHandle = g_ElementsHandle = 0;
|
|
||||||
|
|
||||||
glDetachShader(g_ShaderHandle, g_VertHandle);
|
|
||||||
glDeleteShader(g_VertHandle);
|
|
||||||
g_VertHandle = 0;
|
|
||||||
|
|
||||||
glDetachShader(g_ShaderHandle, g_FragHandle);
|
|
||||||
glDeleteShader(g_FragHandle);
|
|
||||||
g_FragHandle = 0;
|
|
||||||
|
|
||||||
glDeleteProgram(g_ShaderHandle);
|
|
||||||
g_ShaderHandle = 0;
|
|
||||||
|
|
||||||
if (g_FontTexture)
|
|
||||||
{
|
|
||||||
glDeleteTextures(1, &g_FontTexture);
|
|
||||||
ImGui::GetIO().Fonts->TexID = 0;
|
|
||||||
g_FontTexture = 0;
|
|
||||||
}
|
|
||||||
ImGui::Shutdown();
|
ImGui::Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user