我在 D 中创建一个 SDL-OpenGL 应用程序。我正在使用 Derelict SDL 绑定来完成此操作。
当我运行完我的应用程序后,我想卸载 SDL。为此,我运行以下函数:
public ~this() {
SDL_GL_DeleteContext(renderContext);
SDL_DestroyWindow(window);
}
然而,出于某种原因,这会给我一个模糊的分段错误(GDB 中没有痕迹)并返回 -11。我不能在析构函数中销毁 SDL,我什至必须在使用后销毁 SDL?
我的构造函数:
window = SDL_CreateWindow("TEST", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, SDL_WINDOW_OPENGL | SDL_WINDOW_FULLSCREEN_DESKTOP);
if(window == null) {
string error = to!string(SDL_GetError());
throw new Exception(error);
}
renderContext = SDL_GL_CreateContext(window);
if(renderContext == null) {
string error = to!string(SDL_GetError());
throw new Exception(error);
}