GnomeCanvas

Questo capitolo descrive il widget GnomeCanvas e gli oggetti standard forniti da Gnome. Il capitolo seguente descrive nel dettaglio come creare un oggetto per il canvas.

Introduzione al GnomeCanvas

Il widget canvas è un potente motore di visualizzazione, estensibile e orientato agli oggetti, utilizzato in una vasta quantità di applicazioni di Gnome. Il widget in sé consiste in una semplice area vuota. È possibile posizionare su di esso un GnomeCanvasItem. Questo è un GtkObject che rappresenta un elemento da visualizzare, come una immagine, un rettangolo, una ellisse, oppure del semplice testo. Potete riferirvi a questa architettura come grafica strutturata. Il canvas permette di gestire gli oggetti grafici come oggetti, piuttosto che griglie di pixel non differenziate. Dato che un GnomeCanvasItem è un GtkObject, è possibile creare la propria sottoclasse in aggiunta a quelle fornite da Gnome. Questo permette maggiore flessibilità. Utilizzando oggetti personalizzati per il canvas, questo permette di visualizzare a schermo praticamente qualunque cosa. Allo stesso tempo, è possibile utilizzare oggetti standard per risparmiare tempo e fatica.

GnomeCanvas può assumere due modalità, che rappresentano un compromesso tra qualità e prestazioni. In modalità GDK il canvas visualizza i suoi oggetti direttamente all'interno di un buffer GdkPixmap utilizzando le primitive di disegno di GDK. Il canvas copia il buffer sullo schermo una volta inseriti tutti gli oggetti. Nella modalità antialiased (AA), gli oggetti del canvas inseriscono pixel RGB in un vettore di byte. Dopo che tutti gli oggetti sono stati disegnati nel buffer RGB, il canvas lo copia sullo schermo. Questa modalità che sfrutta un buffer RGB viene chiamata "antialiased"poiché tutti gli oggetti standard del canvas disegnano nel buffer utilizzando funzioni per un antialias di alta qualità fornite dalla libart_lgpl. Questo offre linee sfumate e una visualizzazione di altissima qualità, a scapito delle prestazioni.