gtk cairo clutter cogl

La relación entre bibliotecas: Clutter, Cogl, Clutter, GTK+, etc.



cairo (1)

Estoy un poco confundido acerca de la relación de las bibliotecas enumeradas anteriormente, esto es lo que pienso:

  1. Cario es una biblioteca gráfica 2D, y GTK + la usa para renderizar widgets. Cario es de bajo nivel.
  2. Cogl es una biblioteca gráfica en 3D basada en OpenGL (o un fork? No lo sé), y Clutter es un conjunto de herramientas de GUI en 3D basado en Cogl.

Si esto es correcto, ¿Clutter reemplazará a GTK + algún día?

Y...

Si crees que hay un lugar mejor para hacer esta pregunta o algunos libros que debería leer primero, ¡dímelo! Estoy programando autoaprendizaje por interés.


sí, Cairo es una API de dibujo 2D de alta calidad, y GTK + usa Cairo para dibujarse a sí mismo.

Cogl es una biblioteca de programación de GPU que internamente puede usar GL o GLES para acceder al canal de gráficos (aunque en teoría podría usar DirectX en plataformas compatibles).

Clutter usa Cogl para renderizar, pero también puede usar Cairo para elementos 2D.

Clutter no reemplazará a GTK +: GTK + es una biblioteca muy compleja que proporciona integración de sistemas, widgets complejos y otras API de utilidad que Clutter no tiene interés en proporcionar.

El futuro será un poco más gris que un reemplazo en blanco y negro.

El Cairo puede usar Cogl para dibujar; Cogl programará la canalización de GPU, pero Cairo generará la geometría que se enviará, por lo que puede obtener resultados 2D de alta calidad. Cairo ya puede usar GL directamente, pero Cogl ya tiene un mejor estado de seguimiento.

Clutter puede usar GDK, la API del sistema de ventanas GTK +, para hablar con las superficies del sistema de ventanas y obtener eventos de entrada.

en el futuro, es totalmente posible que GTK + use Clutter internamente como base para sus widgets, aunque eso todavía es un trabajo en progreso.

En resumen, un diagrama podría ser:

GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application