2012-01-03 16 views
5

Estoy escribiendo un programa realmente simple usando GLUT y C en XCode 4.2.¿Cómo configuro la operación de cierre en un programa GLUT escrito en C? (como en el botón rojo en la esquina superior izquierda para trabajar)

int main(int argc, char** argv) 
{ 
    glutInit(&argc, argv); 

    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); 
    glutInitWindowSize(640, 480); 

    glutCreateWindow("GLUT Program"); 

    glutDisplayFunc(display); 
    glutReshapeFunc(reshape); 
    glutIdleFunc(idle); 

    glutMainLoop(); 
    return EXIT_SUCCESS; 
} 

Cuando se abra la ventana, no puedo cerrarla a través del botón rojo en la esquina superior izquierda (Mac), ya que está en gris. Si alguna de las programaciones de Java que he hecho es un modelo, debería haber alguna función que establezca la operación de cierre para que el botón rojo de salida funcione. Tampoco puedo encontrar la documentación para la versión más reciente de GLUT. Cada vez que busco en Google, parece que tengo documentación de OpenGL, lo que me hace un poco más confuso, entonces estaba en la relación entre los dos (pensé que GLUT era una interfaz multiplataforma para interactuar con OpenGL).

+0

¿Qué implementación de GLUT estás usando? – genpfault

+0

Honestamente, no lo sé. Según entiendo, ese material está incluido en las distribuciones de XCode y OpenGL está en las Actualizaciones del sistema. Así que estoy usando lo que está empaquetado con XCode 4.2 y Lion. –

Respuesta

2

Si desea utilizar el sistema de ventanas de Mac para escribir una aplicación nativa de Mac (y debería hacerlo, ¡sus usuarios se lo agradecerán!), Debería utilizar NSOpenGLView en lugar de GLUT. Hay un buen código de muestra here.

3

En Mac OS, la ventana no se puede cerrar y la aplicación debe salir (sourceshere).

0

Utilizando los enlaces GLUT para python en OS X, encuentro que pasar un controlador de eventos a glutWMCloseFunc es suficiente para dar una acción (aparentemente esto está obsoleto a favor de glutCloseFunc, pero no con mi versión).

0

así, me encontré con este problema ahora, y yo uso

Command + Q 

para salir del proceso, funciona.

Cuestiones relacionadas