GLFWwindow и синхронизация потоков - PullRequest
0 голосов
/ 07 октября 2019

Я разрабатываю приложение, которое взаимодействует с пользователем по glfwPollEvents, вызываемому из основного потока, и часто вызывает glfwSwapBuffers из рабочего потока.

glfwSwapBuffers документация утверждает, что

Эта функция может вызываться из любого потока

, а также мой контекст OpenGL является текущим в потоке, вызывая glfwSwapBuffers.

Но API Intro для glfwSwapBuffers говорит, что

... объект окна не синхронизирован GLFW.

Так что я должен защищать glfwPollEventsи glfwSwapBuffers вызывает общий мьютекс, так как обе функции обращаются к GLFWwindow объекту? А как насчет glfwMakeContextCurrent и других поточно-ориентированных функций?

UPD. Я просмотрел источники GLFW и обнаружил, что glfwSwapBuffers читает только несколько элементов структуры, типы которых сводятся к встроенным типам, и вызывает SwapBuffers из wingdi в Windows. Можно ли вызывать SwapBuffers из неосновного потока?

...