C#で、OpenGLリソースの解放忘れても.NETのファイナライザで解放されるようにしたいのだが
調べていたらファイナライザは別スレッドで実行される仕様っぽい事が分かった
コンテキストを有効にできるのは1つのスレッドだけらしいから問題
ミューテックスをロック
↓
コンテキストをMakeCurrent
↓
OpenGLのコマンドを実行
↓
MakeCurrentで現在有効なコンテキストをNULLに
↓
ロック解除
これで何とかなる?
ただロックしたり、何度もMakeCurrent
したりするのは速度的にどうなんだろ
同じコンテキストなら平気?
コマンドをキューから取り出して消費するスレッドを作れば1スレッドでOpenGLコマンドを実行する事も可能かもしれないがそれは複雑そう
OpenGL/Vulkanスレ Part22©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
257デフォルトの名無しさん
2016/05/24(火) 23:13:35.09ID:73PdSs4C■ このスレッドは過去ログ倉庫に格納されています
