我试图将一些OpenGL命令放在外部库中。具体来说,我正在使用Tcl语言绘制一个3D场景,现在我想在dll(用C编程)中放入一些openGl函数(例如绘图函数)并从中加载的的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
}
任何帮助或建议?
答案 0 :(得分:1)
我终于找到了我在代码中犯下的愚蠢错误..
在C函数中,我写了“ glEnd ”而不是“ glEnd()”。从tcl转换代码时我忘记了它。
希望这可以帮助那些有类似 wglMakeCurrent失败错误的人......
所有
的良好调试