Когда функция CGLGetCurrentContext должна возвращать NULL, а когда нет? - PullRequest
0 голосов
/ 04 апреля 2020

Я пишу программу с использованием API, который должен получить низкоуровневый контекст OpenGL, но я не могу понять, когда функция CGLGetCurrentContext должна возвращать значение (целое число, представляющее контекст), и когда оно не должен.

Прямо сейчас, функция CGLGetCurrentContext() возвращает NULL, и это нарушает мою программу. Как я могу это исправить?

Какова цель этой функции? Как моделируются контексты OpenGL?

1 Ответ

1 голос
/ 04 апреля 2020

OpenGL имеет концепцию активного контекста рендеринга, привязанного к рабочему потоку. Так что вы можете рассмотреть CGLGetCurrentContext() как возвращение некоторой локальной переменной потока. Ожидается, что он вернет некоторое значение, если:

  • Некоторый код создал контекст OpenGL.
  • Некоторый код активировал контекст OpenGL в текущем рабочем потоке.
  • Вы вызываете CGLGetCurrentContext() в том же рабочем потоке, и предыдущий код не деактивировал его.

Поскольку вы не указали детали своего кода, я могу считать, что OpenGL управляется кодом, не написанным вами. , что затрудняет предположить, почему CGLGetCurrentContext() может быть НЕДЕЙСТВИТЕЛЕН.

Я могу только сказать, что мое приложение MacOS использует CGLGetCurrentContext(), и оно работает как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...