为什么在回调函数opengl中传递window指针

why pass window pointer in callback function opengl

当我们不使用window指针变量

时,为什么我们将GLFWwindow指针传递给参数

示例:

   coid sizecallb(GLFWwindow* window, int w, int h){
      glViewport(0,0,w,h);

      screeenw = w;
      screeenh = h;
}

这样做是因为 GLFW 是用 C 而不是 C++ 编写的。因此,区分一个 window 和另一个的方法并不多。此外,不是 us 将信息传递给回调,而是 GLFW 从其代码执行回调。它指定 window 句柄,以便您可以选择要为其调用此回调的 window。当你只有一个window时,这个参数可以不用。但是,当您创建多个 windows,并且您拥有所有 window 句柄时,您可以选择一个 window 对象,并在回调中传递句柄,并仅在一个 window 上执行方法] 对象。

请注意,您可以为不同的windows指定不同的回调。