2012-01-25 7 views
15

sto un po 'confuso circa il rapporto delle librerie di cui sopra, ecco quello che penso:Il rapporto tra biblioteche: Clutter, Cogl, Clutter, GTK +, ecc

  1. Cario è una libreria grafica 2D e GTK + lo utilizza per il rendering di widget. Cario è di basso livello.
  2. Cogl è una libreria grafica 3D basata su OpenGL (o una forchetta? Non so) e Clutter è un toolkit GUI 3D basato su Cogl.

Se questo è corretto, Clutter sostituirà GTK + un giorno?

E ...

Se pensate che ci sia un posto migliore per porre questa domanda o alcuni libri dovrei leggere prima, mi dica! Sono un programma di autoapprendimento per interesse.

risposta

39

sì, Cairo è un'API di disegno 2D di alta qualità e GTK + utilizza il Cairo per disegnare.

Cogl è una libreria di programmazione GPU che internamente può utilizzare GL o GLES per accedere alla pipeline grafica (anche se in teoria potrebbe facilmente utilizzare DirectX su piattaforme supportate).

Clutter utilizza Cogl per il rendering, ma può anche utilizzare Cairo per elementi 2D.

Clutter non sostituirà GTK +: GTK + è una libreria molto complessa che fornisce integrazione di sistema, widget complessi e altre API di utilità che Clutter non ha alcun interesse a fornire.

il futuro sarà un po 'più grigio di una sostituzione in bianco e nero.

Cairo può utilizzare Cogl per disegnare; Cogl programmerà la pipeline della GPU, ma Cairo genererà la geometria da presentare, così puoi avere risultati 2D di alta qualità. Il Cairo può già utilizzare direttamente GL, ma Cogl ha già un monitoraggio dello stato migliore.

Clutter può utilizzare GDK, l'API del sistema di finestre GTK +, per comunicare con le superfici del sistema di finestre e ricevere eventi di input.

in futuro, è del tutto possibile che GTK + utilizzi Clutter internamente come base per i suoi widget, anche se questo è ancora un lavoro in corso.

in breve, uno schema potrebbe essere:


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

Per portarlo a casa un po ', se sei uno sviluppatore di app puoi usare gtk per creare la finestra, i menu, le barre degli strumenti, ecc. E usare la confusione per disegnare qualsiasi contenuto di app che è "area di disegno" e non si adatta nella metafora dell'app basata su widget. All'interno del disordine, è possibile scavare verso il Cairo per compiti di disegno specifici. –

-3

Credo che il rapporto tra le librerie sono interdipendenti; cioè, una biblioteca non può reggersi da sola. Deve dipendere dagli altri per poter funzionare.