Personal tools

Difference between revisions of "GUI OpenGL Implementation, documents"

From hpcwiki

Jump to: navigation, search
Line 5: Line 5:
 
* Los eventos de teclado, ratón y temporizador son opcionales y tienen su call_back
 
* Los eventos de teclado, ratón y temporizador son opcionales y tienen su call_back
 
* Los widgets se organizan en una estructura árbol y los eventos pasan de padre a hijo automáticamente
 
* Los widgets se organizan en una estructura árbol y los eventos pasan de padre a hijo automáticamente
 +
* Debe crear una instancia del WrapperGL y pesarle los argumentos de línea de comandos y el Main_Widget.
 +
* Finalmente, llamar al método exec() del WrapperGL.
 
==Secuencia de llamadas==
 
==Secuencia de llamadas==
 
* Constructor del Widget principal
 
* Constructor del Widget principal

Revision as of 13:21, 26 July 2013

GUI OpenGL

Uso de la GUI

  • Debe crear un descendiente de la clase Widget que sera el Main_Widget
  • En el Main_Widget tiene que implementar los métodos: init(), draw(), resize() como en GLUT
  • Los eventos de teclado, ratón y temporizador son opcionales y tienen su call_back
  • Los widgets se organizan en una estructura árbol y los eventos pasan de padre a hijo automáticamente
  • Debe crear una instancia del WrapperGL y pesarle los argumentos de línea de comandos y el Main_Widget.
  • Finalmente, llamar al método exec() del WrapperGL.

Secuencia de llamadas

  • Constructor del Widget principal
  • Constructor de WrapperGL que inicaliza el GLUT
  • Llamada a la función exec() del WrapperGL
  • Llamada a la función init() del Main_Widget
  • En este punto se llama al hilo de OpenGL para iniciar el ciclo gráfico y se desencadenan las siguientes llamadas
  • OpenGL llama a WrapperGL::reshape(w,h) respondiendo al evento de dimensionamiento de la ventana (se configura una proyección de perspectiva)
  • Al final WrapperGL::reshape() llama al evento Main_Widget::resize()
  • OpenGL llama a la función WrapperGL::glut_display() para pintar la escena la primera vez (configura una poryección ortogonal)
  • WrapperGL::glut_display() llama a Main_Widget::draw()