Я разрабатываю приложение, которое взаимодействует с пользователем по glfwPollEvents
, вызываемому из основного потока, и часто вызывает glfwSwapBuffers
из рабочего потока.
glfwSwapBuffers документация утверждает, что
Эта функция может вызываться из любого потока
, а также мой контекст OpenGL является текущим в потоке, вызывая glfwSwapBuffers
.
Но API Intro для glfwSwapBuffers
говорит, что
... объект окна не синхронизирован GLFW.
Так что я должен защищать glfwPollEvents
и glfwSwapBuffers
вызывает общий мьютекс, так как обе функции обращаются к GLFWwindow
объекту? А как насчет glfwMakeContextCurrent
и других поточно-ориентированных функций?
UPD. Я просмотрел источники GLFW и обнаружил, что glfwSwapBuffers
читает только несколько элементов структуры, типы которых сводятся к встроенным типам, и вызывает SwapBuffers
из wingdi
в Windows. Можно ли вызывать SwapBuffers
из неосновного потока?