Как использовать переменную без аргументов в функции? - PullRequest
0 голосов
/ 16 мая 2018

Изучение opengGL (+ glfw) Я встретил интересную вещь: мне нужно использовать только один вид прототипа функции mouse_callback в glfwSetCursorPosCallback (Glfwwindow* , GLFWcursorposfun mouse_callback); Как мне использовать переменную GLfloat yaw = -90.0f; в моем mouse_callback, не передавая его как аргумент (будет ошибка) или глобальные переменные.

1 Ответ

0 голосов
/ 16 мая 2018

Вы не можете.Указатели на функции C не поддерживают обязательные аргументы.Как правило, вы можете передать указатель на конкретную функцию, которая уже имеет значение -90.0f, или использовать глобальную переменную.

Да, это отстой.Вот почему C ++ ввел std::bind, а затем лямбды.К сожалению, API OpenGL не позволяет вам использовать такую ​​функциональность.

Однако он позволяет вам «привязать» некоторую произвольную структуру данных к контексту окна через glfwSetWindowUserPointer* 1009.* и glfwGetWindowUserPointer, чтобы вы могли изучить кодирование своего значения в эту структуру.

...