Po roku rozwoju dostępna jest wersja silnika komputerowego Arcan 0.6.1, który łączy serwer wyświetlania, framework multimedialny i silnik gry do przetwarzania grafiki 3D. Arcan może być używany do tworzenia różnorodnych systemów graficznych, od interfejsów użytkownika dla aplikacji wbudowanych po samodzielne środowiska graficzne. W szczególności w oparciu o Arcan opracowywany jest trójwymiarowy pulpit Safespaces dla systemów wirtualnej rzeczywistości i środowisko graficzne Durden. Kod projektu napisany jest w języku C i jest rozpowszechniany na licencji BSD (niektóre komponenty są objęte GPLv2+ i LGPL).
Nowa wersja zawiera zmiany zgromadzone w ciągu roku, skupiające się głównie na rozwoju podsystemu dostępu do pulpitu przez sieć. Ogólnie przedstawiono plan przygotowania pierwszej znaczącej wersji 1.0: W kolejnej gałęzi 0.7 przewidywane są prace nad rozbudową podsystemu dźwiękowego, poprawą kompatybilności i opracowaniem narzędzi do grafiki 3D. Oddział 0.8 skupi się na optymalizacji i wydajności, a 0.9 skupi się na bezpieczeństwie.
Jedną z najbardziej zauważalnych zmian w wersji Arcan 0.6.1 jest modernizacja serwera wyświetlania arcan-wayland, który wykorzystuje protokół Wayland, który implementuje warstwę do korzystania z EGL i domyślnie włącza obsługę dma-buf. Serwer Xarcan X poprawiono obsługę przełączników GPU oraz dodał obsługę schowka i sprzętowego przyspieszania renderowania kursora. Ulepszona obsługa ekranów ze zmienną częstotliwością odświeżania treści. W systemie wejściowym wykonano prace mające na celu zmniejszenie opóźnień.
Wprowadzono wiele wewnętrznych zmian mających na celu usprawnienie synchronizacji i poprawę efektywności zarządzania kolejką zdarzeń. Kontynuowano rozwój serwera graficznego „arcan-net” do zdalnej pracy z komputerem stacjonarnym przez sieć oraz stosowanego w tym serwerze protokołu A12, opracowanego w celu zastąpienia SSH/VNC/RDP/X11. Zaktualizowano powiązania do tworzenia komponentów w Lua.
Zaproponowano koncepcję Pipeworld, która umożliwia przekierowywanie przepływów danych pomiędzy oknami, łączenie danych i procedur obsługi w różnych oknach, podobnie jak komórki w arkuszach kalkulacyjnych, tworząc mieszany przepływ pracy, łączący interfejs graficzny i konsolowy (na przykład można przekierowywać dane wyjściowe z jedno okno do powłoki działającej w terminalu -handler i użyj wyniku w innym oknie).
Przypomnijmy, że Arcan nie jest przywiązany do osobnego podsystemu graficznego i może pracować na różnych środowiskach systemowych (BSD, Linux, macOS, Windows) korzystając z backendów wtyczek. Na przykład możliwe jest uruchomienie na Xorg, egl-dri, libsdl i AGP (GL/GLES). Serwer wyświetlania Arcan może uruchamiać aplikacje klienckie oparte na X, Wayland i SDL2. Kluczowymi kryteriami stosowanymi przy projektowaniu Arcan API są bezpieczeństwo, wydajność i możliwość debugowania. Aby uprościć tworzenie interfejsów, proponuje się użycie języka Lua.
Funkcje Arcany:
- Połączenie ról serwera złożonego, serwera wyświetlania i menedżera okien.
- Możliwość pracy w osobnym trybie, w którym aplikacja pełni rolę samowystarczalnego łącza.
- Wbudowane środowisko multimedialne zapewniające narzędzia do pracy z grafiką, animacjami, przetwarzania strumieniowego wideo i audio, ładowania obrazów i pracy z urządzeniami do przechwytywania wideo.
- Wieloprocesowy model łączenia procesorów dynamicznych źródeł danych - od strumieni wideo po wyjście poszczególnych programów.
- Sztywny model podziału uprawnień. Komponenty silnika są podzielone na małe, nieuprzywilejowane procesy, które komunikują się poprzez interfejs pamięci współdzielonej shmif;
- Wbudowane narzędzia do monitorowania i analizy awarii, w tym silnik, który może serializować stan wewnętrzny skryptów Lua w celu uproszczenia debugowania;
- Funkcja fallbacków, która w przypadku awarii spowodowanej błędem programu może uruchomić aplikację awaryjną, zachowując te same zewnętrzne źródła danych i połączenia;
- Zaawansowane narzędzia do udostępniania, których można używać do nagrywania lub transmisji wybranych podzbiorów źródeł audio i wideo podczas wdrażania udostępniania pulpitu.
Dodatkowo można zauważyć, że przygotowywana jest nowa wersja pulpitu Durden 0.7 do użytku z Arcanem. W wersji 0.7 pojawi się obsługa pionowego umieszczania tytułu okna i paska stanu, a także dodane zostanie narzędzie do wskazówek głosowych (przetwarzanie tekstu na mowę). Durden obsługuje zarówno interfejs kafelkowy z pełną kontrolą klawiatury, jak i tryb swobodnego wyświetlania okien na ekranie. Wszystkie ustawienia, w tym metody wprowadzania, czcionki i efekty wizualne, można zmieniać na bieżąco, bez konieczności ponownego ładowania konfiguracji.
Możliwe jest skonfigurowanie osobnego zachowania dla każdego okna i wykorzystanie niezależnego schowka powiązanego z oknem. Obsługuje pracę na systemach z wieloma monitorami o różnych DPI. Możliwe jest wyświetlenie menu aplikacji w panelu (menu globalne) lub umieszczenie menu w tytule okna. Widżety można umieszczać na pulpicie. Istnieje wbudowana możliwość nagrywania wideo akcji na pulpicie i w poszczególnych oknach. Podsystem sterowania wejściami obsługuje zmianę układów klawiatur i możliwość współpracy z zaawansowanymi urządzeniami, takimi jak konsole do gier.
Źródło: opennet.ru