mirror of
https://github.com/ocornut/imgui.git
synced 2026-01-09 23:54:20 +00:00
Backends: OpenGL3: add and call embedded loader shutdown in ImGui_ImplOpenGL3_Shutdown(). (#8792)
Include update of imgui_impl_opengl3_loader.h as submitted to gl3w_stripped repository, which adds imgl3wShutdown().
This commit is contained in:
parent
9c392896b7
commit
4a51295c9e
3 changed files with 17 additions and 4 deletions
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
// CHANGELOG
|
// CHANGELOG
|
||||||
// (minor and older changes stripped away, please see git history for details)
|
// (minor and older changes stripped away, please see git history for details)
|
||||||
|
// 2025-07-22: OpenGL: Add and call embedded loader shutdown during ImGui_ImplOpenGL3_Shutdown() to facilitate multiple init/shutdown cycles in same process. (#8792)
|
||||||
// 2025-07-15: OpenGL: Set GL_UNPACK_ALIGNMENT to 1 before updating textures (#8802) + restore non-WebGL/ES update path that doesn't require a CPU-side copy.
|
// 2025-07-15: OpenGL: Set GL_UNPACK_ALIGNMENT to 1 before updating textures (#8802) + restore non-WebGL/ES update path that doesn't require a CPU-side copy.
|
||||||
// 2025-06-11: OpenGL: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplOpenGL3_CreateFontsTexture() and ImGui_ImplOpenGL3_DestroyFontsTexture().
|
// 2025-06-11: OpenGL: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplOpenGL3_CreateFontsTexture() and ImGui_ImplOpenGL3_DestroyFontsTexture().
|
||||||
// 2025-06-04: OpenGL: Made GLES 3.20 contexts not access GL_CONTEXT_PROFILE_MASK nor GL_PRIMITIVE_RESTART. (#8664)
|
// 2025-06-04: OpenGL: Made GLES 3.20 contexts not access GL_CONTEXT_PROFILE_MASK nor GL_PRIMITIVE_RESTART. (#8664)
|
||||||
|
|
@ -422,6 +423,10 @@ void ImGui_ImplOpenGL3_Shutdown()
|
||||||
io.BackendRendererUserData = nullptr;
|
io.BackendRendererUserData = nullptr;
|
||||||
io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures);
|
io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures);
|
||||||
IM_DELETE(bd);
|
IM_DELETE(bd);
|
||||||
|
|
||||||
|
#ifdef IMGUI_IMPL_OPENGL_LOADER_IMGL3W
|
||||||
|
imgl3wShutdown();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGui_ImplOpenGL3_NewFrame()
|
void ImGui_ImplOpenGL3_NewFrame()
|
||||||
|
|
|
||||||
|
|
@ -477,6 +477,7 @@ typedef GL3WglProc (*GL3WGetProcAddressProc)(const char *proc);
|
||||||
/* gl3w api */
|
/* gl3w api */
|
||||||
GL3W_API int imgl3wInit(void);
|
GL3W_API int imgl3wInit(void);
|
||||||
GL3W_API int imgl3wInit2(GL3WGetProcAddressProc proc);
|
GL3W_API int imgl3wInit2(GL3WGetProcAddressProc proc);
|
||||||
|
GL3W_API void imgl3wShutdown(void);
|
||||||
GL3W_API int imgl3wIsSupported(int major, int minor);
|
GL3W_API int imgl3wIsSupported(int major, int minor);
|
||||||
GL3W_API GL3WglProc imgl3wGetProcAddress(const char *proc);
|
GL3W_API GL3WglProc imgl3wGetProcAddress(const char *proc);
|
||||||
|
|
||||||
|
|
@ -632,7 +633,7 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
static HMODULE libgl;
|
static HMODULE libgl = NULL;
|
||||||
typedef PROC(__stdcall* GL3WglGetProcAddr)(LPCSTR);
|
typedef PROC(__stdcall* GL3WglGetProcAddr)(LPCSTR);
|
||||||
static GL3WglGetProcAddr wgl_get_proc_address;
|
static GL3WglGetProcAddr wgl_get_proc_address;
|
||||||
|
|
||||||
|
|
@ -645,7 +646,7 @@ static int open_libgl(void)
|
||||||
return GL3W_OK;
|
return GL3W_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void close_libgl(void) { FreeLibrary(libgl); }
|
static void close_libgl(void) { FreeLibrary(libgl); libgl = NULL; }
|
||||||
static GL3WglProc get_proc(const char *proc)
|
static GL3WglProc get_proc(const char *proc)
|
||||||
{
|
{
|
||||||
GL3WglProc res;
|
GL3WglProc res;
|
||||||
|
|
@ -657,7 +658,7 @@ static GL3WglProc get_proc(const char *proc)
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
static void *libgl;
|
static void *libgl = NULL;
|
||||||
static int open_libgl(void)
|
static int open_libgl(void)
|
||||||
{
|
{
|
||||||
libgl = dlopen("/System/Library/Frameworks/OpenGL.framework/OpenGL", RTLD_LAZY | RTLD_LOCAL);
|
libgl = dlopen("/System/Library/Frameworks/OpenGL.framework/OpenGL", RTLD_LAZY | RTLD_LOCAL);
|
||||||
|
|
@ -666,7 +667,7 @@ static int open_libgl(void)
|
||||||
return GL3W_OK;
|
return GL3W_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void close_libgl(void) { dlclose(libgl); }
|
static void close_libgl(void) { dlclose(libgl); libgl = NULL; }
|
||||||
|
|
||||||
static GL3WglProc get_proc(const char *proc)
|
static GL3WglProc get_proc(const char *proc)
|
||||||
{
|
{
|
||||||
|
|
@ -834,6 +835,11 @@ int imgl3wInit2(GL3WGetProcAddressProc proc)
|
||||||
return parse_version();
|
return parse_version();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void imgl3wShutdown(void)
|
||||||
|
{
|
||||||
|
close_libgl();
|
||||||
|
}
|
||||||
|
|
||||||
int imgl3wIsSupported(int major, int minor)
|
int imgl3wIsSupported(int major, int minor)
|
||||||
{
|
{
|
||||||
if (major < 2)
|
if (major < 2)
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,8 @@ Other Changes:
|
||||||
and TableSetBgColor() calls. (#1651, #8499)
|
and TableSetBgColor() calls. (#1651, #8499)
|
||||||
- Misc: removed more redundant inline static linkage from imgui_internal.h to
|
- Misc: removed more redundant inline static linkage from imgui_internal.h to
|
||||||
facilitate using in C++ modules. (#8813, #8682, #8358) [@stripe2933]
|
facilitate using in C++ modules. (#8813, #8682, #8358) [@stripe2933]
|
||||||
|
- Backends: OpenGL3: add and call embedded loader shutdown in ImGui_ImplOpenGL3_Shutdown()
|
||||||
|
to facilitate multiple init/shutdown cycles in same process. (#8792) [@tim-rex]
|
||||||
- Backends: OpenGL2, OpenGL3: set GL_UNPACK_ALIGNMENT to 1 before updating
|
- Backends: OpenGL2, OpenGL3: set GL_UNPACK_ALIGNMENT to 1 before updating
|
||||||
textures. (#8802) [@Daandelange]
|
textures. (#8802) [@Daandelange]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue