У меня есть код ниже, кажется, что он работает, если я использую 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 %d\n", width,height,GLFW_KEY_ESC);
d.close();
return 1;
}
else {
printf("Usage: GLFW_play width height");
return 0;
}
}
Я думаю, что единственная проблема с вашей программой заключается в том, что вы не вызываете glfwInit () перед другими функциями glfw.
Согласно странице 5 GLFW Руководство пользователя, Вы должны вызвать glfwInit перед любой другой функцией из библиотеки, чтобы обеспечить надлежащую функциональность.
Кроме того, не передайте * ввод, просто передайте ввод.
Других решений пока нет …