Что делает glfwGetWindowUserPointer? - PullRequest
0 голосов
/ 13 марта 2019

При просмотре справки по GLFW я наткнулся на функцию glfwGetWindowUserPointer (и функцию glfwSetWindowUserPointer).В ссылке говорится о указателе пользователя:

В каждом окне есть указатель пользователя, который можно установить с помощью glfwSetWindowUserPointer и получить с помощью glfwGetWindowUserPointer.Это может быть использовано для любых целей, которые вам нужны, и не будет изменяться GLFW в течение всего срока службы окна.

Теперь мне интересно, с какой целью это можно использовать?

1 Ответ

0 голосов
/ 16 марта 2019

Я не собираюсь брать кредит за этот ответ, так как это не мой ответ, а ответ другого человека на форуме GLFW .

Поле UserData - довольно распространенная парадигма в C API, которая позволяет пользователю получать доступ к контекстным данным из обратных вызовов без необходимости делать все глобальным. По сути, он позволяет связать произвольный фрагмент данных, относящихся к вашей программе, с окном glfw.

Если вы пытаетесь использовать glfw в программе, которая следует, например, объектно-ориентированному проектированию, вы можете использовать этот указатель для хранения адреса экземпляра, который обрабатывает определенное окно, и пересылать обратные вызовы (которые должны быть статическими функциями из-за способа работы API) к соответствующим функциям-членам.

...