3

以下のコードがあります。glfwGetKey()を使用すると機能しているようですが、ループを終了せず、入力関数を呼び出さないようです。inputの代わりに*inputを渡してみましたが、サイコロは渡されませんでした。これを引き起こしている可能性がありますか?

#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;
}

}
4

1 に答える 1

5

プログラムの唯一の問題は、他の glfw 関数の前に glfwInit() を呼び出さないことだと思います。

GLFW ユーザー ガイドの 5 ページによると、適切な機能を確保するには、ライブラリの他の関数の前に glfwInit を呼び出す必要があります。

また、*input を渡さず、input だけを渡します。

于 2012-10-12T03:27:20.467 に答える