diff --git a/src/dlangui/graphics/glsupport.d b/src/dlangui/graphics/glsupport.d index 40c993cd..67be417c 100644 --- a/src/dlangui/graphics/glsupport.d +++ b/src/dlangui/graphics/glsupport.d @@ -651,6 +651,8 @@ private __gshared GLSupport _glSupport; return _glSupport; } +__gshared bool glNoContext; + /// initialize OpenGL support helper (call when current OpenGL context is initialized) bool initGLSupport(bool legacy = false) { import dlangui.platforms.common.platform : setOpenglEnabled; @@ -1125,8 +1127,10 @@ class GLObject(GLObjectTypes type, GLuint target = 0) { } ~this() { - unbind(); - mixin("checkgl!glDelete" ~ to!string(type) ~ "s(1, &ID);"); + if (!glNoContext) { + unbind(); + mixin("checkgl!glDelete" ~ to!string(type) ~ "s(1, &ID);"); + } } void bind() { diff --git a/src/dlangui/platforms/sdl/sdlapp.d b/src/dlangui/platforms/sdl/sdlapp.d index 5d9b24ec..87eb9b99 100644 --- a/src/dlangui/platforms/sdl/sdlapp.d +++ b/src/dlangui/platforms/sdl/sdlapp.d @@ -1595,6 +1595,8 @@ int sdlmain(string[] args) { Log.d("Destroying SDL platform"); Platform.setInstance(null); + static if (ENABLE_OPENGL) + glNoContext = true; releaseResourcesOnAppExit();