Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  Dzisiaj 15:07:38

  overcq - Użytkownik

overcq
Użytkownik
Zarejestrowany: 2024-11-17
Serwis

Jak odświeżać okno w Wayland?

Dotychczas używałem biblioteki Xcb do wyświetlania animacji w oknie środowiska X Window System. Natomiast teraz zdecydowałem się zmienić środowisko wyświetlania na Wayland.
Już obecne w programie procedury rysowania podpiąłem do nowo napisanego początkowego fragmentu klienta Wayland, posiłkując się wybrakowaną dokumentacją tej biblioteki dostępną w sieci.

Jednak okazało się, że animacja nie jest wyświetlana. Okno jest odświeżane tylko przy zdarzeniach wskaźnika (myszy).
Przy czym w WSL (Windows Subsystem for Linux) z zainstalowanym Debianem odświeżanie jest dokonywane tylko po kliknięciu okna, a w maszynie wirtualnej z zainstalowanym Debianem albo Ubuntu – po przesunięciu wskaźnika nad oknem. Co ciekawe, w WSL po kliknięciu jednego z dwóch identycznych okien programu odświeża tylko to jedno okno, a w maszynie wirtualnej po przesunięciu nad dowolnym oknem z dwóch identycznych odświeża oba okna.

Nie wiem, czy poprawnie wykonuję oczekiwanie na gotowość do narysowania ramki.

Inicjowanie danych Waylanda w programie klienta (uruchamianie) zaczyna się od tej linii: https://github.com/overcq/oux/blob/c7f6a8c75b7b2862 … -face.cx#L398
Procedura rozpoczynająca przerysowanie, gdy będzie gotowość narysowania ramki, jest w tej linii: https://github.com/overcq/oux/blob/c7f6a8c75b7b2862 … -face.cx#L456
Procedura rysująca, gdy jest gotowość rysowania ramki, jest w tej linii: https://github.com/overcq/oux/blob/c7f6a8c75b7b2862 … w-drv.cx#L139

Sprawdziłem przy pomocy logowania, że procedura rysująca jest wykonywana dopiero po przesunięciu wskaźnika nad oknem. (Mimo to w WSL i tak nie odświeża zawartości okna do czasu kliknięcia.)

Logicznie rozważając, gotowość narysowania ramki powinna być wtedy, gdy poprzednia została już narysowana, a nie przy przesuwaniu wskaźnika nad oknem. Chyba że coś źle rozumiem.
Nie wiem, czy źle zaprogramowałem czy Wayland właśnie tak działa.

Dzięki za wszelką pomoc.


Nie znam się, ale się wypowiem.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)