glfwPollEvents() 不会在按键时调用键回调
glfwPollEvents() doesn't call keycallback on key press
我在下面有代码,如果我使用 glfwGetKey(),它似乎可以工作,但它不会退出循环,甚至似乎也不会调用输入函数。我尝试传递*输入而不是输入,但没有骰子。可能是什么原因造成的?
#include <display.h>
#include <GL/glfw.h>
#include <stdlib.h>
#include <stdio.h>
bool running;
void GLFWCALL input( int key, int action )
{
//if(key == GLFW_KEY_ESC ){
running = false;
//}
printf("%d",key);
}
int main(int argc, char* argv[])
{
running = true;
if(argc==3){
int width = atoi(argv[1]);
int height = atoi(argv[2]);
Display d(width,height);
glfwSetKeyCallback( *input );
d.open();
while(running){
glfwPollEvents();
printf("Running");
}
printf("n %d,%d %dn", width,height,GLFW_KEY_ESC);
d.close();
return 1;
}
else {
printf("Usage: GLFW_play width height");
return 0;
}
}
我认为你的程序的唯一问题是你没有在其他glfw函数之前调用glfwInit()。
根据 GLFW 用户指南的第 5 页,您必须在库中的任何其他函数之前调用 glfwInit,以确保正常运行。
另外,不要传递 *输入,只传递输入。
相关文章:
- 用于在回调中调用解析器的设计模式
- 从不同的 cpp 调用回调函数会导致bad_function_call
- 处理类内的回调时,必须调用对非静态成员函数的引用
- MSVC __debugbreak() 与 openGL 错误回调一起使用时不会产生调用堆栈
- LIBEV 非阻滞套接字连续调用回调
- 共享指针和回调注册的结构.由于我之外的原因调用回调时,原始指针值发生了变化
- 统一处理具有协变类型的函数指针(如何使用派生类型调用回调?
- 在本机节点中的回调中调用回调
- boost asio,async_read和acync_write未调用回调
- cuda流:流执行后未调用回调
- VDS(虚拟磁盘服务)COM接口通知-仅在注销期间调用回调(接收器)(Unadvise)
- 提升 ASIO,async_read_some未调用回调
- 如何在成员函数线程中调用回调
- 从c++向目标c调用回调函数
- c++调用回调后删除对象
- 可调用(回调)作为类模板参数的模板
- 在异步API (c++)中,如何保证API在调用回调之前返回
- 装饰器模式:如何从核心类中调用(回调)装饰器包装器的一些成员
- Cython使用python-c-api调用回调segfault
- 为什么boost asio async_read_some在特定情况下不调用回调