4 Pluspunkte 0 Minuspunkte
Wie kann ich das User Input mit OpenGL abfangen und ausgeben?
von  

2 Antworten

2 Pluspunkte 0 Minuspunkte

OpenGL selbst bietet keine Funktionen für die Verarbeitung von Benutzereingaben, da es sich hauptsächlich um eine Grafikbibliothek handelt. Du kannst einen Key Callback mit GLFW implementieren.

#include <GLFW/glfw3.h>

void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
    if (action == GLFW_PRESS || action == GLFW_REPEAT)
    {
        if (key == GLFW_KEY_ESCAPE)
            glfwSetWindowShouldClose(window, GLFW_TRUE);
    }
}

int main()
{
    
    // ...

    // Setzen des Tastaturrückrufhandlers
    glfwSetKeyCallback(window, key_callback);

    // ...

    return 0;

}
von (532 Punkte)  
0 Pluspunkte 0 Minuspunkte

Mit GLUT können Sie die Funktion glutKeyboardFunc verwenden, um Tastatureingaben zu verarbeiten.

#include <GL/glut.h>

void handleKeypress(unsigned char key, int x, int y) {
    switch (key) {
        case 27: // Escape key
            exit(0);
    }
}

void initRendering() {
    glEnable(GL_DEPTH_TEST);
}

void drawScene() {
    // Hier können Sie Ihr OpenGL-Rendering durchführen
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // Zeichnen Sie Ihre Szene hier

    glutSwapBuffers();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutCreateWindow("OpenGL Window");

    initRendering();

    glutDisplayFunc(drawScene);
    glutKeyboardFunc(handleKeypress);

    glutMainLoop();
    return 0;
}

von (706 Punkte)