glGenLists(1)使用wxThread在OnPaint()外面返回0

时间:2010-10-26 03:03:29

标签: c++ opengl wxwidgets

目前,我正在尝试将显示列表与OnPaint()分开,但glGenLists(1)会返回0。

使用显示列表是否有任何先决条件?
函数glGenLists(1)是否仅在OnXxx()事件线程中存活?

谢谢!

3 个答案:

答案 0 :(得分:2)

唯一的要求是使有效的OpenGL上下文成为当前的。你可能没有。如果使用多个线程,则需要使用多个共享对象的GL上下文。

答案 1 :(得分:1)

据我所知,OpenGL可以在多个线程中使用(有一些注意事项),但是你应该尽可能避免这样做。 glGenLists可能失败了,因为正如所提到的,您在与用于创建OpenGL上下文的线程不同的线程中调用它。如果可以的话,我建议将除OpenGL调用之外的东西移到第二个线程。

答案 2 :(得分:1)

OpenGL和线程不混合。如果你真的需要线程,只能在一个线程中调用OpenGL函数。

如前所述,glGenLists在出错时返回0。使用glGetError函数检查错误。