面白いことに、今まで私はOpenGLコンテキストが失われたことはありませんでした(すべてのバッファリソースが抹消されています)。私は現在、OpenGL 4.2をSDL 1.2とGLEWを介してWin7 64で使用しています。また、起動中のみフルスクリーンに切り替える機能を持たないアプリケーションもウィンドウズされています。OpenGL文脈紛失
私の開発マシンのコンテキストでは、サイズが変わっても決して失われないようですが、他のマシンでは私のアプリケーションはOpenGLのコンテキストを失うことがあります。 (私はメモリの多くのアプリケーションの他の部分で使用されている)メモリの制約のため、私のglバッファの内容(VBOs、FBOs、テクスチャなど)をシステムメモリにバックアップしない、これは奇妙な問題ではない文脈が決して拭かれなかったので、私は過去に私のことを知りました。
グーグルでは、どのような状況でOpenGLのコンテキストが失われるのか(GPUのメモリバッファがすべて消去される)を知ることは難しく、フルスクリーンとウィンドウの切り替えは別です。
私のDX時代には、多くの理由でコンテキストが失われる可能性があり、システムメモリのバックアップからバッファをリロードしたときに通知されます。私は、OpenGL(またはSDLのような管理ライブラリ)が私のためにこのバッファのリロードを処理するという前提の下にあった(そして、おそらくその仮定では間違っていた)。これは決して部分的に真実なのでしょうか?
私が持っている問題の1つは、サイズ変更時にコンテキストが失われてしまうことです。GPUメモリを大量に使用していて、すべてをリロードしなければならないうちにアプリケーションが一時停止する可能性があります。
これはデバイスに依存するものか、ドライバに依存しますか?それは、デバイス、ドライバ、およびSDLのバージョンのいくつかの組み合わせですか?このような文脈の喪失をどのように検出して、私がそれに反応できるか?
すべてのglバッファのコンテンツのシステムメモリの内容を保持して、コンテキストが失われたときに再ロードできるようにするのが標準的な方法ですか?それとも、標準的な練習ではない文脈の喪失はまれですか?
OpenGLコンテキストが失われているプログラムのコードを、ある時点で確認する必要があります。 – Vallentin