Wie schreiben GLUT Tastatur-Funktionen?

Ich schrieb den code unten, sondern zur Laufzeit, wenn ich drücken Sie die Tasten, das Programm funktioniert nicht.
Ich möchte ein Programm schreiben, das zeichnet ein Dreieck drückt der Benutzer right_key und alt_key. Aber das funktioniert überhaupt nicht. Es zeigt immer einen schwarzen Bildschirm.

#include <GL/glut.h>
void init (void)
{
    glClearColor(0.0,0.0,0.0,0.0);
    glMatrixMode(GL_PROJECTION);
    gluOrtho2D(0.0,200.0,0.0,200.0);
}
float red=1,green=1,blue=1;
void processSpecialKeys(int key, int x, int y) {
    if(key=='0')
        exit(0);
    int mod;
    if(key== GLUT_KEY_RIGHT) {
        mod = glutGetModifiers();
        if (mod==GLUT_ACTIVE_ALT) {
            red = 1.0; green = 0.0; blue = 0.0;
            glColor3f(red,green,blue);
            glBegin(GL_TRIANGLES);
            glVertex2f(0,0);
            glVertex2f(0,100);
            glVertex2f(50,100);
            glEnd();
        }
    }
}
void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glFlush();
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
    glutInitWindowPosition(50,20);
    glutInitWindowSize(400, 300);
    glutCreateWindow("A simple example");
    init();
    glutDisplayFunc(display);
    glutSpecialFunc(processSpecialKeys);
    glutMainLoop();
}
OpenGL ist nicht keayboard Handhabung. Was Sie wahrscheinlich meinen, ist GLUT, das hat nichts zu tun mit OpenGL.

InformationsquelleAutor Ava Bahari | 2011-12-25

Schreibe einen Kommentar