OpenGL コマンドのいくつかを外部ライブラリに入れようとしています。具体的には、現在 Tcl 言語で 3D シーンを描画していますが、いくつかの openGl 関数 (描画関数など)を dll (C でプログラム) に入れ、 Tclからロードしたいと考えています。これは、レンダリングするデータが大量になるためです。コンパイル済みの C ライブラリを使用すると、より高速に実行されます。
しかし、私はそうするのに問題があります。プログラムを起動すると、ディスプレイ コールバック関数の 2 回目の実行の直前に「 wglMakeCurrent failed」エラーが発生します。
Tcl と C の両方の部分が同じスレッド IDを報告します。したがって、マルチスレッドとコンテキスト共有の問題について心配する必要はないと思います。
これは私の表示コールバック関数です:
proc DisplayCallback { toglwin } {
# adjust camera and objects ...
if {[catch {set cubeList [ExternalDrawCube $::cube(size)]}]} {
puts "Catch drawcube error !!"
} else {
glCallList $cubeList
}
$toglwin swapbuffers
}
ヘルプや提案はありますか?