ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ΅Π½ ΡΡΡΠ²ΡΡ , ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄ΠΏΠΎΠΌΠ°Π³Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π² Enlightenment, GNOME, KDE ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΡΠ΅Π΄ΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Weston Π΅ Π½Π°ΡΠΎΡΠ΅Π½Π° ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Wayland Π² Π΄Π΅ΡΠΊΡΠΎΠΏ ΡΡΠ΅Π΄ΠΈ ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎ-ΡΠ°Π·Π²Π»Π΅ΠΊΠ°ΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΈ, ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΎΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π‘ΠΌΡΠ½Π°ΡΠ° Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Weston Π΅ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π΅Π½Π° ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ABI, Π½Π°ΡΡΡΠ°Π²Π°ΡΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°. ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Weston:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π·Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ , ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΡΠΈΠ³Π½Π°Π»Π°, ΠΏΡΠ΅Π΄Π°Π²Π°Π½ ΠΏΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ DVI, DisplayPort, HDMI, GVIF ΠΈΠ»ΠΈ UDI. Π libweston Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° weston_output, weston_surface ΠΈ weston_head Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠ»Π°Π³ Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½ΠΈΡ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅. ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ΅Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅;
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° ΠΌΡΠ»ΡΠΈΠΌΠ΅Π΄ΠΈΠ΅Π½ ΡΡΡΠ²ΡΡ , ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π·Π° Π·Π°ΠΌΡΠ½Π° Π½Π° PulseAudio ΠΈ ΠΎΡΠ²Π΅Π½ Π·Π²ΡΠΊ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡΠΎΡΠΈ. ΠΠ»ΡΠ³ΠΈΠ½ΡΡ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ Π΄Π΅ΡΠΊΡΠΎΠΏ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Π½Π°Π»ΠΈΡΠ΅Π½ ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° GStreamer. ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠ°ΡΠ° ΡΡΡΠ°Π½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° pipewire, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ GStreamer (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, βgst-launch-1.0 pipewiresrc ! video/x-raw,format=BGRx ! β¦β);
- Π gl-renderer Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° EGL-ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈΡΠ΅, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΠΉΠΊΠΈ Π·ΠΎΠ½ΠΈ, Π² ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ;
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ weston_debug Π·Π° Π΄Π΅Π±ΡΠ³Π²Π°Π½Π΅ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ (weston_log_context);
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ Π·Π°Π³Π»Π°Π²Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ libweston-internal.h ΠΈ backend.h. Π ΠΏΡΡΠ²ΠΈΡ ΡΠ° ΠΈΠ·Π½Π΅ΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ
βweston_compositorβ, βweston_planeβ, βweston_seatβ, βweston_surfaceβ, βweston_springβ, βweston_viewβ, Π° Π²ΡΠ² Π²ΡΠΎΡΠΈΡ β βweston_outputβ; - ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ;
- Π compositor-drm Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ FB_DAMAGE_CLIPS. Π ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π΅ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠΎΠ΄ΡΡ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ EDID, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΡΠ΅ΠΆΠΈΠΌΠΈ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ KMS API, ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅Ρ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΡ;
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ»ΡΠ³ΠΈΠ½ Β«file streamΒ» Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ ΡΠ°ΠΉΠ»;
- Π ΠΎΡΠ΄Π΅Π»Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ° ΠΈΠ·Π½Π΅ΡΠ΅Π½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈΡΠ΅ backend-drm,
backend-headless,
backend-rdp,
backend-wayland,
backend-x11 ΠΈ
backend-fbdev; - ΠΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° PNG ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ° Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ;
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΡΠ° xdg_output_unstable_v1 ΠΈ zwp_linux_explicit_synchronization_v1. ΠΠΎΠ²ΠΈΡΠ΅Π½ΠΈ ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° (Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π²Π΅ΡΡΠΈΡ 1.18);
- ΠΠ°Π²ΡΡΡΠ΅Π½ Π΅ ΠΏΡΠ΅Ρ ΠΎΠ΄ΡΡ ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ . ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Ρ autotools Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
