glGenLists (1) возвращает 0 вне OnPaint () с помощью wxThread - PullRequest
1 голос
/ 26 октября 2010

В настоящее время я пытаюсь отделить список отображения от OnPaint(), но glGenLists(1) возвращает 0.

Есть ли какие-либо предпосылки для использования списка отображения?
Только функция glGenLists(1)выжить в OnXxx() ветке событий?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 26 октября 2010

Единственное требование - наличие действующего контекста OpenGL.Вы, вероятно, не один.Если вы используете несколько потоков, вам нужно использовать несколько контекстов GL, которые совместно используют объекты.

1 голос
/ 26 октября 2010

OpenGL и потоки не смешиваются. Если вам действительно нужны потоки, вызывайте функции OpenGL только в одном потоке.

Как уже было сказано, glGenLists возвращает 0 при ошибках. Проверьте ошибку с помощью функции glGetError.

1 голос
/ 26 октября 2010

Насколько я понимаю, OpenGL может использоваться в нескольких потоках (с некоторыми оговорками), но вам следует избегать этого, когда это возможно. glGenLists, вероятно, терпит неудачу, потому что, как упоминалось, вы вызываете его в другом потоке, чем тот, который вы использовали для создания своего контекста OpenGL. Если вы можете, я бы предложил перенести что-то кроме вызовов OpenGL во второй поток.

...