Immediate Mode vs Retained Mode

Dos estilos de renderizado para APIs de librerías gráficas, donde:

  • Immediate mode: el cliente mantiene el estado de la aplicación y usa el API de la librería para renderizar los componentes gráficos creando la escena directamente (a partir del estado de la aplicación). Para cada nuevo frame, es necesario renderizar la escena de nuevo.

ImmediateMode

  • Retained mode: el cliente configura unos componentes gráficos creando modelos específicos (que duplican/cachean el estado de la aplicación). A partir de entonces, es la librería gráfica la que se encarga de renderizar la escena (cuando los modelos internos cambian) y provee al cliente de callbacks donde puede actualizar el estado de la aplicación a partir del estado de los componentes.

RetainedMode

Immediate Mode Graphical User Interfaces (IMGUI)

En 2002, dos programadores de juegos independientes (Casey Muratori y Johannes Norneby) propusieron usar el estilo immediate mode para la creación de interfaces de usuario.

  • Video introductorio (40 minutos) de Muratori. En su página hay una sección dedicada a IMGUI que desarrolla la idea en profundidad.
  • Libro inacabado de Norneby, pero suficiente para explorar la idea en todas sus derivaciones, con consideraciones sobre la evolución de las GUI, MVC y la OOP.