C++ OOP中的GLFWwindowsizefun可访问性

C++ OOP中的GLFWwindowsizefun可访问性,c++,c,glfw,C++,C,Glfw,有一个函数用于设置回调函数,该函数在调整GLFWwindow的大小后调用。现在的问题是,在我的用户界面库中,我有一个名为Window的类,它保存成员glfwwindowglfwu\Windowglm::mat4正交项目,在大小回调函数中,我要执行ortho_proj=glm::ortho(0.0f,(float)_width,(float)_height,0.0f,-1.0f,1.0f),但我不能,因为回调函数是静态的,并且不是窗口类的成员,当然不能。所以我知道,访问回调函数中的ortho_pr

有一个函数用于设置回调函数,该函数在调整GLFWwindow的大小后调用。现在的问题是,在我的用户界面库中,我有一个名为
Window
的类,它保存成员
glfwwindowglfwu\Window
glm::mat4正交项目,在大小回调函数中,我要执行
ortho_proj=glm::ortho(0.0f,(float)_width,(float)_height,0.0f,-1.0f,1.0f)
,但我不能,因为回调函数是静态的,并且不是
窗口
类的成员,当然不能。所以我知道,访问回调函数中的
ortho_proj
变量的唯一方法是使变量保持静态,但我不希望这样,因为在这种情况下,我将面临在单个程序中创建多个窗口的问题

这是类定义:

class Window
{
    private:
        GLFWwindow* glfw_window;
        mat4 ortho_proj;
    public:
        Window(int _width, int _height, const char* _title);
        bool update();
        void render();
        ~Window();
};
这是一个错误的回调函数(如果ortho_proj是公共的和静态的,如果我在
ortho_proj
之前添加
Window::
,它就会工作)

那么,是否有任何方法可以访问回调函数中的
ortho_proj
变量,或者回调函数可能以某种方式是类成员?或者,如果窗口已调整大小,是否有任何GLFW函数返回布尔值?

您可以使用将
窗口的指针与GLFW窗口相关联。这样,您就可以从回调中查找
窗口
实例,并回调到类中


这是一个经典模式,如果GLFW不支持它,我会非常惊讶。知道她的东西。

你想在
窗口
类中允许什么样的界面。您希望如何从那里定制它?
void window_size_callback(GLFWwindow* _window, int _width, int _height)
{
    ortho_proj = ortho(0.0f, (float)_width, (float)_height, 0.0f, -1.0f, 1.0f);
}