Что означает «QGLContext :: makeCurrent (): wglMakeCurrent не удалось: операция успешно завершена»? - PullRequest
1 голос
/ 05 марта 2012

Я пытаюсь создать многопоточное приложение Qt, использующее QGLWidgets, и постоянно получаю эту ошибку. (Я пытаюсь рисовать из другого потока, используя QPainter)

И, похоже, из-за этого у меня огромная утечка памяти.

Ошибка «QGLContext :: makeCurrent (): сбой wglMakeCurrent: операция успешно завершена»

1 Ответ

2 голосов
/ 22 марта 2012

Я полагаю, что это связано с довольно старой проблемой из списка рассылки Qt, как описано здесь . Короче говоря, если поток, вызывающий makeCurrent (), не равен потоку, в котором был получен контекст устройства, вызывается GetDC (). Как указано в связанном потоке, проблема заключается в том, что ReleaseDC () не вызывается соответствующим образом, что приводит к утечке дескриптора и заставляет Windows возвращать NULL при вызове GetDC () в некоторый момент, что приводит к сбою wglMakeCurrent (). Однако я не знаю, почему GetLastError () в этом случае заявляет: «Операция завершена успешно».

...