¿Es posible reemplazar glutMainLoop() con un bucle simple?

¿Es posible reemplazar glutMainLoop() con bucle simple (p. ej. while or for ) y en este bucle simplemente llame a todas las devoluciones de llamada?

He hecho esto y la imagen se muestra bien, pero la ventana (en la que se muestra la imagen) no responde (no se puede mover).

¿Afecta la regulación de la glutMainLoop() llamar más que devoluciones de llamada?

preguntado el 21 de mayo de 12 a las 11:05

3 Respuestas

Si está usando FreeGLUT, puede usar glutMainLoopEvent. Realiza un ciclo de procesamiento del bucle de eventos, por lo que puede llamarlo en un bucle.

while(...)
{
  glutMainLoopEvent();
  //do other stuff.
}

contestado el 21 de mayo de 12 a las 12:05

¡Lindo! Yo no sabía nada de eso. - Bartek Banachewicz

¡Estupendo! Gracias :) ¡Esto es exactamente lo que necesito! - user1281071

glutMainLoop también maneja todas las comunicaciones de ventana, por lo que si desea reemplazarlo, deberá usar una (otra) biblioteca para eso, o escribir un código específico del sistema que resuelva las comunicaciones del sistema operativo. Sin embargo, hay muchos ejemplos en Internet, al menos para MS Windows.

Aquí hay un artículo de MSDN sobre la función principal de Win32.

contestado el 21 de mayo de 12 a las 11:05

La pregunta no es sobre Win32. - Estudiante4K

¿GlutMainLoop() llama más que devoluciones de llamada?

Sí, es responsable de toda la gestión de eventos, como obtener los eventos de su sistema de gráficos. Luego llama a las devoluciones de llamada con los datos del evento.

Si desea realizar su propio procesamiento de eventos, no utilice GLUT. Hay otros marcos que le brindan un acceso de nivel inferior a los eventos y esperan que usted haga todo el envío de eventos. Echa un vistazo a GLFW y SDL.

contestado el 21 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.