ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ° wayland-protocols 1.35, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ.
Semua protokol secara berurutan melewati tiga fase - pengembangan, pengujian, dan stabilisasi. Setelah menyelesaikan tahap pengembangan (kategori βtidak stabilβ), protokol ditempatkan di cabang βstagingβ dan secara resmi dimasukkan dalam kumpulan protokol wayland, dan setelah pengujian selesai, protokol tersebut dipindahkan ke kategori stabil. Protokol dari kategori βstagingβ sudah dapat digunakan di server komposit dan klien yang memerlukan fungsionalitas terkait. Berbeda dengan kategori βtidak stabilβ, βstagingβ melarang perubahan yang melanggar kompatibilitas, tetapi jika masalah dan kekurangan teridentifikasi selama pengujian, penggantian dengan versi protokol baru yang signifikan atau ekstensi Wayland lainnya tidak dikecualikan.
ΠΎΠ²ΠΎΠΉ Π΅ΡΡΠΈΠΈ:
- Π ΡΠ°Π·ΡΡΠ΄ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» tablet-v2, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π° Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠ².
- Π ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Β«stagingΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» alpha-modifier, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΌΠ΅Π½ΡΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΠΈ Π²ΡΠ½ΠΎΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ KMS.
- Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ» xdg-shell Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π³ΡΠ°Π½ΠΈΡ ΠΎΠΊΠ½Π°, Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ·Π°ΠΈΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠΎΠ½.
Saat ini, protokol wayland mencakup protokol stabil berikut, yang menyediakan kompatibilitas ke belakang:
- "viewporter" - memungkinkan klien melakukan tindakan penskalaan dan pemangkasan tepi permukaan di sisi server.
- "waktu presentasi" - menyediakan tampilan video.
- "xdg-shell" adalah antarmuka untuk membuat dan berinteraksi dengan permukaan sebagai jendela, yang memungkinkan Anda memindahkannya di sekitar layar, memperkecil, memperluas, mengubah ukuran, dll.
- Β«linux-dmabufΒ» β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DMA-BUF (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ wl_buffer Π½Π° Π±Π°Π·Π΅ DMA-BUF).
- Β«tabletΒ» β ΠΎΡΠ³Π°ΠΈΠ·Π°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠ².
Protokol yang diuji di cabang βstagingβ:
- drm-lease - menyediakan sumber daya yang diperlukan untuk menghasilkan gambar stereo dengan buffer berbeda untuk mata kiri dan kanan saat mengeluarkannya ke headset realitas virtual.
- "ext-session-lock" - mendefinisikan cara mengunci sesi, misalnya, saat screen saver sedang berjalan atau dialog otentikasi ditampilkan.
- "single-pixel-buffer" - memungkinkan Anda membuat buffer piksel tunggal yang mencakup empat nilai RGBA 32-bit.
- "aktivasi xdg" - memungkinkan Anda mentransfer fokus antara permukaan tingkat pertama yang berbeda (misalnya, menggunakan aktivasi xdg, satu aplikasi dapat mengalihkan fokus ke aplikasi lain).
- tipe konten - Memungkinkan klien meneruskan informasi tentang konten yang sedang ditampilkan ke server komposit, yang dapat digunakan untuk mengoptimalkan perilaku sadar konten, seperti mengatur properti DRM tertentu seperti "tipe konten". Dukungan untuk tipe konten berikut dinyatakan: tidak ada (tidak ada informasi tentang tipe data), foto (output foto digital, memerlukan pemrosesan minimal), video (video atau animasi, diperlukan sinkronisasi yang lebih tepat untuk menghindari kegagapan) dan permainan (peluncuran permainan, keluaran dari penundaan minimum).
- ext-idle-notify - Memungkinkan server komposit mengirim pemberitahuan ke klien tentang ketidakaktifan pengguna, yang dapat digunakan untuk mengaktifkan mode hemat daya tambahan setelah waktu tidak aktif tertentu.
- kontrol robek - memungkinkan Anda menonaktifkan sinkronisasi vertikal (VSync) dengan pulsa redaman vertikal dalam aplikasi layar penuh, digunakan untuk melindungi output dari robekan. Dalam aplikasi multimedia, artefak akibat robekan adalah efek yang tidak diinginkan, namun dalam program permainan, artefak dapat ditoleransi jika penanganannya menyebabkan penundaan tambahan.
- ext-foreign-toplevel-list - Mengambil informasi tentang permukaan yang ditempatkan di tingkat atas, yang memungkinkan Anda mengatur jendela untuk dipasang di atas konten lain, misalnya, untuk memasang panel dan sakelar jendela Anda sendiri.
- konteks keamanan - memungkinkan Anda mengidentifikasi klien menggunakan isolasi kotak pasir. Klien dapat mendaftarkan koneksi baru ke server komposit berbasis Wayland dan melampirkan konteks keamanan ke dalamnya, setelah itu manajer komposit akan membatasi kemampuan yang tersedia untuk koneksi yang dibuat berdasarkan konteks keamanan yang ditentukan.
- bentuk kursor adalah cara alternatif untuk menyesuaikan tampilan kursor, berdasarkan meneruskan serangkaian gambar kursor alih-alih menjepret ke permukaan (wl_surface).
- Β«ext-transient-seatΒ» β ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ΅Π°Π½ΡΠΎΠ² (seat), ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌΡ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠ»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π°Π½Ρ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΠΈ ΠΌΡΡΡΡ.
- Β«xdg-toplevel-dragΒ» β ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Β«drag & dropΒ» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΌΡΡΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠΈ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ.
- Β«xdg-dialogΒ» β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡΠΌ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
- Β«linux-drm-syncobjΒ» β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ²Π½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈΠΈ Π±ΡΡΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ DRM (Direct Rendering Manager). ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ Π² Π±ΡΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ API Vulkan ΠΈ OpenGL (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ ). ΠΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² Π±ΡΡΠ΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π΄Π°Π½Π½ΡΠΉ Π±ΡΡΠ΅Ρ.
Protokol yang sedang dikembangkan di cabang βtidak stabilβ:
- "fullscreen-shell" - kontrol pekerjaan dalam mode layar penuh.
- "metode masukan" - memproses metode masukan.
- "idle-inhibit" - memblokir peluncuran screensaver (screen saver).
- "input-timestamps" - stempel waktu untuk peristiwa input.
- "keyboard-shortcuts-inhibit" - mengontrol lampiran pintasan keyboard dan tombol pintas.
- "linux-explicit-synchronization" adalah mekanisme khusus Linux untuk menyinkronkan buffer yang terikat permukaan.
- "gerakan penunjuk" - kontrol dari layar sentuh.
- "batasan penunjuk" - batasan penunjuk (pemblokiran).
- "pemilihan utama" - dengan analogi dengan X11, ini memastikan pengoperasian clipboard utama (pemilihan utama), informasi yang biasanya dimasukkan dengan tombol tengah mouse.
- "peristiwa penunjuk relatif" - peristiwa penunjuk relatif.
- "input teks" - organisasi input teks.
- "xdg-foreign" adalah antarmuka untuk berinteraksi dengan permukaan klien "tetangga".
- "xdg-decoration" - menampilkan dekorasi jendela di sisi server.
- "xdg-output" - informasi tambahan tentang output video (digunakan untuk penskalaan pecahan).
- "xwayland-keyboard-grab" - menangkap masukan dalam aplikasi XWayland.
Sumber: opennet.ru