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.