目前,我正在尝试将显示列表与OnPaint()
分开,但glGenLists(1)
会返回0。
使用显示列表是否有任何先决条件?
函数glGenLists(1)
是否仅在OnXxx()
事件线程中存活?
谢谢!
答案 0 :(得分:2)
唯一的要求是使有效的OpenGL上下文成为当前的。你可能没有。如果使用多个线程,则需要使用多个共享对象的GL上下文。
答案 1 :(得分:1)
据我所知,OpenGL可以在多个线程中使用(有一些注意事项),但是你应该尽可能避免这样做。 glGenLists
可能失败了,因为正如所提到的,您在与用于创建OpenGL上下文的线程不同的线程中调用它。如果可以的话,我建议将除OpenGL调用之外的东西移到第二个线程。
答案 2 :(得分:1)
OpenGL和线程不混合。如果你真的需要线程,只能在一个线程中调用OpenGL函数。
如前所述,glGenLists在出错时返回0。使用glGetError函数检查错误。