Po roku prac rozwojowych dostępna jest wersja 0.6.1 silnika desktopowego Arcan, który łączy w sobie serwer wyświetlania, framework multimedialny oraz silnik gier do przetwarzania grafiki 3D. Arcan może być wykorzystywany do tworzenia różnych systemów graficznych, od interfejsów użytkownika dla aplikacji wbudowanych po samodzielne środowiska desktopowe. Na bazie Arcan rozwijany jest również trójwymiarowy pulpit Safespaces dla systemów wirtualnej rzeczywistości oraz środowisko desktopowe Durden. Kod projektu napisany jest w języku C i jest rozpowszechniany na licencji BSD (niektóre komponenty na licencji GPLv2+ i LGPL).
W nowym wydaniu zawarte są zebrane przez rok wyniki prac, koncentrujące się głównie na rozwoju podsystemu dostępu do pulpitu przez sieć. W ogólnym zarysie przedstawiony jest plan przygotowań do pierwszego istotnego wydania 1.0: W następnej gałęzi 0.7 planowane są prace nad rozszerzeniem podsystemu dźwięku, poprawą kompatybilności oraz rozwojem środków do grafiki 3D. Gałąź 0.8 skupi się na optymalizacji i wydajności, a 0.9 na zapewnieniu bezpieczeństwa.
Wśród najbardziej zauważalnych zmian w wersji Arcan 0.6.1 wyróżnia się modernizacja wyświetlacza serwera arcan-wayland, który wykorzystuje protokół Wayland, w którym zaimplementowano warstwę do korzystania z EGL oraz włączono domyślną obsługę dma-buf. W serwerze X Xarcan poprawiono obsługę przełączania GPU oraz dodano wsparcie dla schowka i przyspieszenia sprzętowego renderowania kursora. Ulepszono obsługę ekranów z zmienną częstotliwością odświeżania treści. W systemie wejścia przeprowadzono prace mające na celu zmniejszenie opóźnień.
Wprowadzono wiele wewnętrznych zmian, mających na celu poprawę synchronizacji oraz zwiększenie efektywności zarządzania kolejkami zdarzeń. Powodowano dalszy rozwój graficznego serwera „arcan-net” do zdalnej pracy z pulpitem przez sieć, wykorzystywanego w tym serwerze protokole A12, opracowywanym w celu zastąpienia SSH/VNC/RDP/X11. Zaktualizowano powiązania dla rozwoju komponentów w języku Lua.
Proponowana koncepcja Pipeworld umożliwia przekierowywanie strumieni danych między oknami, łącząc dane i procesory w różnych oknach, na podobieństwo komórek w arkuszach kalkulacyjnych, tworząc złożony przepływ pracy, który łączy interfejsy graficzne i konsolowe (na przykład, można przekierować wyjście z jednego okna do uruchomionego w terminalu shell-owego procesora i wykorzystać wynik w innym oknie).

Przypomnijmy, że Arcan nie jest związany z konkretnym systemem graficznym i może działać nad różnymi środowiskami systemowymi (BSD, Linux, macOS, Windows), korzystając z wtyczkowych backendów. Na przykład można go uruchomić na Xorg, egl-dri, libsdl i AGP (GL/GLES). Pod zarządem serwera wyświetlania Arcan mogą być uruchamiane aplikacje klienckie oparte na X, Wayland i SDL2. Kluczowymi kryteriami stosowanymi przy projektowaniu API Arcan są bezpieczeństwo, wydajność i przydatność do debugowania. W celu uproszczenia tworzenia interfejsów zaleca się korzystanie z języka Lua.
Cechy Arcana:
- Połączenie ról kompozytowego serwera, serwera wyświetlającego i menedżera okien.
- Możliwość pracy w wydzielonym trybie, w którym aplikacja działa jako samowystarczający element.
- Wbudowany framework multimedialny, oferujący narzędzia do pracy z grafiką, animacją, przetwarzania strumieniowego wideo i dźwięku, ładowania obrazów oraz pracy z urządzeniami do przechwytywania wideo.
- Model wieloprocesowy do łączenia obsługiwaczy dynamicznych źródeł danych — od strumieni wideo po wyjścia z indywidualnych programów.
- Sztywna model podziału uprawnień. Komponenty silnika są dzielone na małe, nieuprzywilejowane procesy, które komunikują się za pomocą interfejsu pamięci dzielonej shmif;
- Wbudowane narzędzia do monitorowania i analizy awarii, w tym silnik może serializować wewnętrzny stan skryptów Lua w celu ułatwienia debugowania;
- Funkcja awaryjna (Fallbacks), która w przypadku awarii z powodu błędu w programie może uruchomić zapasową aplikację, zachowując te same zewnętrzne źródła danych i połączenia;
- Zaawansowane narzędzia do współdzielenia, które można wykorzystać do nagrywania lub przesyłania pojedynczych podzbiorów źródeł audio i wideo w trakcie realizacji współdzielenia pulpitu.
Dodatkowo warto wspomnieć o przygotowaniach do nowego wydania pulpitu Durden 0.7, rozwijanego z myślą o współpracy z Arcan. W wydaniu 0.7 pojawi się wsparcie dla pionowego umiejscowienia nagłówka okna i paska stanu, a także dodana zostanie usługa do zamiany tekstu na mowę (text to speech). Durden obsługuje zarówno interfejs mozaikowy z pełnymi środkami kontroli z klawiatury, jak i tryb swobodnego umieszczania okien na ekranie. Wszystkie ustawienia, w tym metody wejścia, czcionki i efekty wizualne, mogą być zmieniane w locie, bez konieczności przeładowania konfiguracji.
Możliwe jest dostosowanie indywidualnego zachowania dla każdego okna i użycie niezależnego schowka przypisanego do okna. Obsługuje pracę w systemach z wieloma monitorami o różnych DPI. Możliwe jest wyświetlanie menu aplikacji na panelu (menu globalne) lub umieszczanie menu w nagłówku okna. Na pulpicie dozwolone jest umieszczanie widżetów. Istnieje wbudowana możliwość nagrywania wideo działań na pulpicie i w poszczególnych oknach. Podsystem zarządzania wejściem obsługuje zmianę układów klawiatury i możliwość pracy z rozszerzonymi urządzeniami, takimi jak kontrolery gier.
Źródło: opennet.ru
