什么是GLFW中的用户指针?



在GLFW中,有一个被称为用户指针的东西,我可以用glfwSetWindowUserPointer来设置它。我不知道的是用户指针。这是我的猜测。用户指针是指向使用该窗口的用户的指针。我是对还是错?

首先,它与OpenGL无关。如glfw前缀所示,该函数来自GLFW。

那个"用户指针"只是一个与窗口相关联的任意指针。你可以读写它,否则GLFW会忽略它。

这是一种向各种GLFW回调传递附加信息的方法。比如说你创建了一个窗口类来包装GLFWwindow,并希望从GLFW回调中与它的实例交互。然后你可以创建"用户指针"指向它(唯一的替代方法是使它成为一个全局变量)。

大多数使用回调的C库都这样做。通常每个回调都有一个指针,但是GLFW每个窗口都有一个。

c++库不倾向于这样做,因为如果std::function用于回调,它允许你向回调添加任意状态(例如,它可以使用catpure存储lambas,而函数指针不能)。

相关内容

  • 没有找到相关文章

最新更新