我正在编写一个包含GLFW的库,以及其他一些库 . 我有一个需要了解用户界面事件的类,但GLFW使用轮询系统,我必须指定GLFW在事件发生时自动调用的函数 . 这会导致问题,因为我必须提供GLFW的那些函数无法与我的类的对象相关联,据我所知 . 例如:

class MyClass {
    MyClass() {
        // Initialize GLFW
        glfwSetKeyCallback(window, keyboardEventFunction);
    }
    // other content
}

void keyboardEventFunction(GLFWwindow *window, int b, int a, int m) {
     // I want to notify the MyClass object, but it's out of scope
}

我知道GLFW有一些非轮询函数来检索输入数据,但如果我使用它们,我不能保证我不会错过任何东西只是因为我的程序没有碰巧检查用户提供输入的确切时刻 . 我也失去了检查窗口焦点和光标进入 - 退出事件的能力 . 我该如何解决这个问题?