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