如何在函数中使用非参数变量?
How to use a non-argument variable in function?
学习opengGL(+glfw)我遇到了一件有趣的事:我必须只使用一种函数原型mouse_callback
in glfwSetCursorPosCallback (Glfwwindow* , GLFWcursorposfun mouse_callback);
我应该如何使用变量GLfloat yaw = -90.0f;
in我的 mouse_callback
没有将它作为参数传递(会有错误)或全局变量。
你不能。 C 函数指针不支持绑定参数。通常,您可以将指针传递给已经具有该值 -90.0f
的特定函数,或者使用全局变量。
是的,这很糟糕。这就是 C++ 引入 std::bind
,然后引入 lambda 的原因。遗憾的是,OpenGL API 不允许您使用此类功能。
但是,它确实允许您通过 glfwSetWindowUserPointer
and glfwGetWindowUserPointer
"bind" 一些任意数据结构到 window 上下文,因此您可以探索将您的值编码到该结构中。
学习opengGL(+glfw)我遇到了一件有趣的事:我必须只使用一种函数原型mouse_callback
in glfwSetCursorPosCallback (Glfwwindow* , GLFWcursorposfun mouse_callback);
我应该如何使用变量GLfloat yaw = -90.0f;
in我的 mouse_callback
没有将它作为参数传递(会有错误)或全局变量。
你不能。 C 函数指针不支持绑定参数。通常,您可以将指针传递给已经具有该值 -90.0f
的特定函数,或者使用全局变量。
是的,这很糟糕。这就是 C++ 引入 std::bind
,然后引入 lambda 的原因。遗憾的是,OpenGL API 不允许您使用此类功能。
但是,它确实允许您通过 glfwSetWindowUserPointer
and glfwGetWindowUserPointer
"bind" 一些任意数据结构到 window 上下文,因此您可以探索将您的值编码到该结构中。