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);
}