在查看GLFW参考时,我遇到了glfwGetWindowUserPointer
函数(以及glfwSetWindowUserPointer
函数)。在参考文献中,它描述了关于用户指针的以下内容:
每个窗口都有一个用户指针,可以使用glfwSetWindowUserPointer设置并使用glfwGetWindowUserPointer获取。这可以用于您需要的任何目的,并且在窗口的整个生命周期内不会被GLFW修改。
现在我想知道可以使用它的目的是什么?
我不会赞成这个答案,因为这不是我的答案,而是GLFW forum上其他人的回答。
UserData字段是C API中相当常见的范例,它允许用户从回调中访问上下文数据,而无需使所有内容全局化。实质上,它允许您将与程序相关的任意数据与glfw窗口相关联。
例如,如果您尝试在遵循面向对象设计的程序中使用glfw,则可以使用此指针存储处理特定窗口的实例的地址,并转发回调(必须是静态函数) ,因为API的工作方式)到适当的成员函数。