È stata presentata la libreria GUI Cosmoe, che supporta l'operatività in Linux negli ambienti basati su Wayland. Cosmoe consente di creare programmi con interfaccia grafica in C++, utilizzando un'API ispirata alla libreria di classi del sistema operativo BeOS. La libreria permette di eseguire direttamente in Linux programmi che utilizzano l'API BeOS. Il codice del progetto è distribuito con licenza MIT.
Cosmoe offre un insieme di classi C++ che consentono di creare interfacce utente in modo rapido e semplice. Da un lato, Cosmoe è decisamente più facile e compatto rispetto a toolkit come GTK e Qt, ma dall'altro permette di realizzare interfacce con un aspetto più moderno rispetto a soluzioni leggere come FLTK e Xforms. Su sistemi obsoleti, Cosmoe consente di ottenere un consumo di risorse molto ridotto, mentre su sistemi moderni massimizza le prestazioni hardware grazie all'uso attivo del multithreading. Sono forniti esempi di applicazioni che utilizzano Cosmoe per creare l'interfaccia, tra cui un emulatore di terminale, un editor di stili e semplici giochi.
La libreria è basata su una ramificazione leggera e senza necessità di componenti server (app_server, registrar) dal codice sorgente del progetto Cosmoe Classic, adattato per funzionare su compositi. server, che utilizzano il protocollo Wayland. Il progetto Cosmoe Classic è stato impegnato nel porting dell'ambiente Haiku OS per funzionare sopra il kernel Linux e ha utilizzato il rendering dell'interfaccia in una finestra creata con la libreria SDL. Lo sviluppo di Cosmoe Classic è stato riavviato l'anno scorso dopo una pausa di diciassette anni.
Attualmente, il progetto è stato riorientato dallo sviluppo di un fork del sistema operativo Haiku alla creazione di una libreria separata per la realizzazione di applicazioni grafiche per Linux. In questa fase, lo sviluppo è in fase alpha, e la libreria supporta già circa il 95% di tutte le funzionalità dell'API BeOS. Tra le limitazioni più importanti si segnala l'assenza di supporto per le istanze non collegate allo schermo di tipo BBitmap, necessarie per l'accelerazione hardware del rendering, e l'incompletezza dell'API BFilePanel, che gestisce i dialoghi per l'apertura e il salvataggio di file.

Fonte: opennet.ru
