GDK - GDK

GDK
Architettura software GTK+.svg
Architettura software semplificata di GTK
Autori originali Autori di GIMP
Sviluppatore/i Il progetto GNOME
Repository Modificalo su Wikidata
Scritto in C
Sistema operativo Linux , macOS , Microsoft Windows
piattaforma X11 , Wayland , Quartz e GDI
genere Libreria software
Licenza GNU Lesser General Public License (LGPL)
Sito web sviluppatore .gnome .org /gdk3 /stable /

GDK ( GIMP Drawing Kit) è una libreria che funge da wrapper per le funzioni di basso livello fornite dai sistemi di finestratura e grafica sottostanti. GDK si trova tra il server di visualizzazione e la libreria GTK , gestendo il rendering di base come le primitive di disegno, la grafica raster (bitmap), i cursori , i caratteri , nonché gli eventi della finestra e la funzionalità di trascinamento della selezione .

Come GTK Scene Graph Kit (GSK), GDK fa parte di GTK ed è concesso in licenza sotto la GNU Lesser General Public License (LGPL).

Architettura software

Image
GDK contiene back-end per X11 , Wayland , Broadway ( HTTP ), Quartz e GDI e si basa su Cairo per il rendering. Il suo nuovo grafico di scena (tela) è in lavorazione, il suo arrivo dovrebbe annunciare GTK 4.0.

GTK è implementato su un livello di astrazione chiamato GDK, liberando GTK da problemi di basso livello come la raccolta di input, il trascinamento della selezione e la conversione del formato pixel. GDK è uno strato intermedio che separa GTK dai dettagli del sistema di finestre.

GDK è una parte importante della portabilità di GTK. Poiché la funzionalità multipiattaforma di basso livello è già fornita da GLib , tutto ciò che è necessario per far funzionare GTK su altre piattaforme è portare GDK al livello grafico del sistema operativo sottostante . Quindi, le porte GDK per l' API di Windows e Quartz sono ciò che consente alle applicazioni GTK di funzionare rispettivamente su Windows e macOS .

A partire da GTK+ 2.8, GDK supporta Cairo che dovrebbe essere usato con GTK+ 3 invece delle funzioni di disegno di GDK.

GDK è un livello intermedio che isola GTK dai dettagli del sistema di finestre . GDK è un sottile involucro attorno a Xlib . Il sistema X Window viene fornito con una libreria di basso livello chiamata Xlib . Quasi ogni funzione in GDK è un involucro molto sottile attorno a una funzione Xlib corrispondente; ma parte della complessità (e funzionalità) di Xlib è nascosta, per semplificare la programmazione e per rendere più facile il porting di GDK su altri sistemi di finestre, come Wayland o Microsoft Windows. La funzionalità Xlib nascosta sarà raramente di interesse per i programmatori di applicazioni; ad esempio, molte funzionalità utilizzate esclusivamente dai gestori di finestre non sono esposte in GDK.

GDK ti consente di fare cose di basso livello, come ad esempio " blit this pixmap sullo schermo".

GDK fornisce un livello molto più portabile del protocollo X, senza sacrificare l'accessibilità di basso livello fornita da sistemi come X. Il vero potere di questa astrazione è che se scegli di usarla invece di dire X, il tuo software eseguirà automaticamente il rendering su Linux Framebuffer e Windows.

Avere il supporto OpenGL (o OpenGL ES ) in GDK, facilita un controllo leggermente migliore della pipeline grafica ; OpenGL è adatto per la composizione di dati strutturati ma totalmente inadatto per il disegno.

GdkFrameClock

GdkFrameClock è stato aggiunto in GTK 3.8

Mentre le applicazioni GTK rimangono guidate dal mainloop (cfr. Glib event loop ), il che significa che l'applicazione è inattiva all'interno di questo ciclo principale per la maggior parte del tempo e aspetta solo che accada qualcosa e quindi chiama la subroutine appropriata quando lo fa, GdkFrameClock aggiunge un meccanismo aggiuntivo, che dà un "impulso" all'applicazione. Indica all'applicazione quando aggiornare e ridisegnare una finestra. La frequenza dei battiti può essere sincronizzata con la frequenza di aggiornamento del monitor.

Kit grafico scena GTK

Nella sua storia GDK ha contenuto e legato ad un paio di Tele diverse .

Gli sviluppatori stavano anche valutando nuove direzioni per la libreria, inclusa la rimozione dei componenti API deprecati e l'aggiunta di un sistema integrato di scene graph (canvas) , simile alla libreria grafica Clutter , integrando efficacemente GTK con OpenGL e Vulkan .

GTK+ Scene Graph Kit (GSK) è stato rilasciato come parte di GTK+ 3.90 a marzo 2017. È il grafico della scena e l'API di rendering per GTK. GSK non è stato ulteriormente integrato con GDK (che è anche parte di GTK) ma è conservato nella propria directory.

Sistemi di finestre

GDK contiene back-end per un paio di sistemi a finestre , in particolare per i protocolli X11 e Wayland , per Quartz e GDI e persino per il motore HTTP ( Hypertext Transfer Protocol ) Broadway.

Con il rilascio di GNOME 3.16 nel marzo 2015, GDK ha ottenuto un back-end sperimentale per il protocollo del server di visualizzazione Mir . Il protocollo del server di visualizzazione Mir è un prodotto di Canonical per la loro distribuzione Ubuntu di Linux, che intendono competere con il protocollo del server di visualizzazione Wayland; finora, è implementato solo in Ubuntu.

Al momento, non esiste un back-end per KMS .

Per avviare un'applicazione e forzare questa istanza a utilizzare un determinato sistema di finestre, si specifica la variabile GDK_BACKEND :
GDK_BACKEND=wayland gnome-calculator
GDK_BACKEND=wayland CLUTTER_BACKEND=wayland cheese

gdk-pixbuf

gdk-pixbuf è un toolkit per il caricamento delle immagini e la manipolazione del pixel buffer. La libreria fornisce funzionalità di caricamento e salvataggio delle immagini, ridimensionamento rapido e compositing di pixbuf, caricamento di animazioni semplici (ad es. GIF animate) e rendering del buffer dell'immagine libart su un'istanza di GdkDrawable.

gdk-pixbuf ha un'API abbastanza grande.

La struttura fondamentale nella libreria gdk-pixbuf è GdkPixbuf, una struttura dati privata e opaca che rispecchia molti degli stessi concetti supportati da ArtPixBuf. Infatti, la maggior parte dei campi di dati privati ​​di GdkPixbuf hanno gli stessi nomi e tipi di dati di quelli corrispondenti in ArtPixBuf. Questa somiglianza risale ai primi giorni in cui gdk-pixbuf era un wrapper per libart . Da quel momento, la dipendenza da libart è stata eliminata e gdk-pixbuf è stato unito alla base di codice GTK+ 2.0. Pertanto, i giorni di gdk-pixbuf come libreria autonoma sono limitati alla versione GNOME 1.x.

Con il rilascio di GTK+ 2.22 il 23/09/2010, gdk-pixbuf è stato trasformato di nuovo in una libreria autonoma, dopo essere stato distribuito come parte di GTK+ a partire da gtk+ 2.0. Questo è stato fatto in preparazione per il passaggio a GTK+ 3.

La prima versione autonoma è stata la 2.22 del 21 settembre 2010, il suo sviluppo è iniziato con la 2.21.3 del 23 giugno 2010.

L'ultima versione di gdk-pixbuf è gdk-pixbuf 2.36.11 dal 2017-ottobre-02. Lo sviluppo di 3.36 è iniziato con 3.35.1 il 26/04/2016.

Storia

GDK è stato originariamente sviluppato su X Window System per l' editor di grafica raster GIMP .

Guarda anche

Riferimenti

link esterno