在动态库中打包一些OpenGL命令,得到“wglMakeCurrent失败”

时间:2013-04-15 13:23:35

标签: c opengl dll tcl

我试图将一些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
}

任何帮助或建议?

1 个答案:

答案 0 :(得分:1)

我终于找到了我在代码中犯下的愚蠢错误..

在C函数中,我写了“ glEnd ”而不是“ glEnd()”。从tcl转换代码时我忘记了它。

希望这可以帮助那些有类似 wglMakeCurrent失败错误的人......

所有

的良好调试