我正在尝试将我的一些 OpenGL 命令放入外部库中。具体来说,我目前正在使用 Tcl 语言绘制 3d 场景,现在我想将一些 openGl 函数(例如绘图函数)放入 dll(用 C 编程)并从Tcl加载它。这是因为我将要渲染大量数据。使用已编译的 C 库,它将运行得更快。
但是,我这样做有问题。当我启动我的程序时,在我的显示回调函数第二次运行之前出现“ 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
}
有什么帮助或建议吗?