簡體   English   中英

通過回調函數訪問實例

[英]Access instance from callback function

如何在GLFW3輸入回調函數(例如this)中訪問類實例。

我希望實例在發生特定事件時執行某些操作。 每個實例可能會對特定事件執行不同的操作。

具體來說,我的班級有一個std :: map <int,std :: function <void()>>,其中一個鍵映射到一個函數。

編輯:我嘗試了以下操作,但這給我一個錯誤,它與glfwSetKeyCallback函數調用不匹配。

glfwSetKeyCallback(window, [this](GLFWwindow * window, int key, int scancode, int action, int mods){
    addCommand(m_events.at(key));
});

取自這里

您需要這樣的東西:

glfwSetWindowUserPointer(window, this);
glfwSetKeyCallback(window, [](GLFWwindow * window, int key, int scancode, int action, int mods){

    Window * win = static_cast<Window *>(glfwGetWindowUserPointer(window));
    win->addCommand(win->m_events.at(key));

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM