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