2012-01-25 19 views
15

Estoy un poco confundido acerca de la relación de las bibliotecas mencionadas anteriormente, he aquí lo que pienso:La relación entre las bibliotecas: Clutter, Cogl, desorden, GTK +, etc

  1. Cario es una biblioteca gráfica 2D y GTK + lo usa para renderizar widgets. Cario es de bajo nivel.
  2. Cogl es una biblioteca gráfica 3D basada en OpenGL (¿o una bifurcación? No lo sé), y Clutter es una herramienta de GUI 3D basada en Cogl.

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

Y ...

Si le parece que es un lugar mejor para hacer esta pregunta o algunos libros que debe leer primero, por favor dígame! Soy programador de autoaprendizaje por interés.

Respuesta

39

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

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

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

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

el futuro va a ser un poco más gris que un reemplazo en blanco y negro.

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

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 muy posible que GTK + use internamente Clutter como base para sus widgets, aunque eso todavía es un trabajo en progreso.

en definitiva, un diagrama podría ser:


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

Para llevarlo a casa un poco, si es un desarrollador de aplicaciones puede usar gtk para crear la ventana, menús, barras de herramientas, etc. y usar el desorden para dibujar cualquier contenido de aplicación que sea "similar al área de dibujo" y no encaje en la metáfora de la aplicación basada en widgets. Dentro del desorden, puede cavar en Cairo para tareas de dibujo específicas. –

-3

Creo que la relación entre las bibliotecas son interdependientes; es decir, una biblioteca no puede sostenerse por sí misma. Necesita depender de otros para poder funcionar.

Cuestiones relacionadas