martes, 18 de septiembre de 2007

Previo 5.

Escriba una aplicación que usando la libreria GLUT detecte que se ha realizadoun click con el botón derecho del mouse sobre la ventana principal e imprima la coordenadas del mouse en la sálida estándar. Cuando se haga click en el botón izquierdo, cierre la aplicación. Nota: Usar glutMouseFunc().

void Mouse(int button, int state, int x, int y) {
if ( (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) ) {
printf("Botón derecho\n");
printf("X=%f\n", (GLfloat)GLsizei x);
printf("Y=%f\n", (GLfloat)GLsizei y);

cout << "\nPOSICION X:" <<>
cout << "\nPOSICION Y:" << y;
}

if ( (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) )
{
exit(0);
}

}

void disp(void){
glClear(GL_COLOR_BUFFER_BIT);
glutMouseFunc(Mouse);
glFlush();
}

int main(int argc, char **argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA GLUT_SINGLE);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
glutCreateWindow("RATON");
glClearColor(0.0,0.0,0.0,0.0);
glutDisplayFunc(disp);
glutMainLoop();
}

¿Qué comandos para manejo de eventos nos proporciona GLUT?
Un evento es algo que el usuario puede hacer, dentro de una ventana.
Las funciones más comunes que GLUT llama automáticamente al detectar un evento son:

glutMouseFunc(función de control de eventos con el ratón);

glutMotionFunc(función de control de eventos de movimiento del ratón);

glutReshapeFunc(función de control del cambio de tamaño de la ventana de visualización);

glutKeyboardFunc(función de control de eventos con el teclado);

glutDisplayFunc(función de control del render);

glutIdleFunc(función que se activa cuando no se hace nada);


No hay comentarios: