Pakej wayland-protocols 1.43 telah dikeluarkan, mengandungi satu set protokol dan sambungan yang melengkapkan protokol Wayland asas dan menyediakan keupayaan yang diperlukan untuk membina pelayan komposit dan persekitaran pengguna.
Wayland-Protocols 1.43 menambah protokol baharu "xdg-toplevel-tag" yang membolehkan pelanggan Wayland melampirkan teg pada permukaan peringkat atas yang boleh digunakan oleh pelayan penggubah untuk mengenal pasti tetingkap selepas aplikasi dimulakan semula (contohnya, aplikasi boleh menetapkan teg "tetingkap utama" dan "tetapan" untuk tetingkap utama dan tetingkap tetapan). Pengenalpastian sedemikian berguna untuk memulihkan kedudukan, saiz dan sifat tetingkap selepas dimulakan semula, dan untuk menentukan peraturan khas untuk jenis tetingkap individu.
Penambahbaikan lain termasuk penambahan maklumat kekangan operasi tepi permukaan peringkat atas pada protokol xdg-shell, yang boleh digunakan oleh pengurus penggubah untuk memaklumkan pelanggan Wayland tentang kekangan seperti sama ada tingkap boleh diubah saiz atau tidak.
Semua protokol secara berurutan melalui fasa pembangunan, ujian dan penstabilan. Selepas melengkapkan peringkat pembangunan (kategori "tidak stabil"), protokol diletakkan dalam cawangan "pementasan" dan secara rasmi dimasukkan ke dalam set protokol wayland, dan selepas ujian selesai, ia dipindahkan ke kategori stabil. Protokol daripada kategori "pementasan" sudah boleh digunakan dalam pelayan komposit dan klien di mana fungsi berkaitan diperlukan. Tidak seperti kategori "tidak stabil", "pementasan" melarang membuat perubahan yang melanggar keserasian, tetapi jika masalah dan kekurangan dikenal pasti semasa ujian, penggantian dengan versi penting protokol baharu atau sambungan Wayland yang lain tidak dikecualikan.
Untuk mempercepatkan penyampaian protokol kepada pembangun dan untuk menggalakkan pelaksanaan awal protokol dalam projek sedia ada, bermula dengan keluaran sebelumnya, fasa "percubaan" telah ditambah, yang membolehkan perubahan yang memecahkan keserasian dan penambahan protokol "mentah" yang boleh dibawa secara beransur-ansur ke tahap yang sepatutnya. Walaupun protokol perlu membentuk pasukan sokongan dan menerima sejumlah pengakuan (ACK) tertentu daripada pengulas untuk memasuki fasa pementasan, ia hanya perlu menerima tiada bantahan (NACK) dalam tempoh semakan dua minggu untuk memasuki fasa percubaan.
Suite wayland-protocols pada masa ini termasuk protokol stabil berikut, yang serasi ke belakang:
- "viewporter" - membenarkan pelanggan melakukan tindakan pemangkasan skala dan tepi permukaan pada bahagian pelayan.
- "masa persembahan" - menyediakan paparan video.
- "xdg-shell" ialah antara muka untuk mencipta dan berinteraksi dengan permukaan sebagai tingkap, membolehkan anda mengalihkannya di sekeliling skrin, runtuh, kembangkan, ubah saiz, dsb.
- "linux-dmabuf" - menyediakan keupayaan untuk mencipta wl_buffers berdasarkan DMA-BUF.
- "tablet" - organisasi input daripada tablet grafik.
Protokol yang diuji dalam cawangan "pementasan":
- drm-lease - menyediakan sumber yang diperlukan untuk menjana imej stereo dengan penimbal berbeza untuk mata kiri dan kanan apabila mengeluarkan kepada set kepala realiti maya.
- "kunci-sesi-ext" - mentakrifkan cara mengunci sesi, contohnya, semasa penyelamat skrin sedang berjalan atau dialog pengesahan dipaparkan.
- "single-pixel-buffer" - membolehkan anda mencipta satu-pixel buffer yang merangkumi empat nilai RGBA 32-bit.
- "xdg-activation" - membolehkan anda memindahkan fokus antara permukaan peringkat pertama yang berbeza (contohnya, menggunakan xdg-activation, satu aplikasi boleh menukar fokus kepada yang lain).
- jenis kandungan - Membenarkan pelanggan menghantar maklumat tentang kandungan yang dipaparkan kepada pelayan komposit, yang boleh digunakan untuk mengoptimumkan tingkah laku sedar kandungan, seperti menetapkan sifat DRM tertentu seperti "jenis kandungan". Sokongan untuk jenis kandungan berikut diisytiharkan: tiada (tiada maklumat tentang jenis data), foto (output foto digital, memerlukan pemprosesan minimum), video (video atau animasi, penyegerakan yang lebih tepat diperlukan untuk mengelakkan gagap) dan permainan (pelancaran). permainan, keluaran daripada kelewatan minimum).
- ext-idle-notify - Membenarkan pelayan komposit menghantar pemberitahuan kepada pelanggan tentang ketidakaktifan pengguna, yang boleh digunakan untuk mengaktifkan mod penjimatan kuasa tambahan selepas masa tertentu tidak aktif.
- kawalan tearing - membolehkan anda melumpuhkan penyegerakan menegak (VSync) dengan nadi redaman menegak dalam aplikasi skrin penuh, digunakan untuk melindungi daripada koyak dalam output. Dalam aplikasi multimedia, artifak akibat koyak adalah kesan yang tidak diingini, tetapi dalam program permainan, artifak boleh diterima jika berurusan dengannya menyebabkan kelewatan tambahan.
- ext-foreign-toplevel-list - Mendapatkan maklumat tentang permukaan yang diletakkan di peringkat atas, yang membolehkan anda mengatur tingkap untuk berlabuh di atas kandungan lain, contohnya, untuk melampirkan panel dan suis tetingkap anda sendiri.
- konteks keselamatan - membolehkan anda mengenal pasti pelanggan menggunakan pengasingan kotak pasir. Pelanggan boleh mendaftarkan sambungan baharu ke pelayan komposit berasaskan Wayland dan melampirkan konteks keselamatan padanya, selepas itu pengurus komposit akan mengehadkan keupayaan yang tersedia untuk sambungan yang telah ditetapkan berdasarkan konteks keselamatan yang ditentukan.
- bentuk kursor ialah cara alternatif untuk menyesuaikan penampilan kursor, berdasarkan menghantar satu siri imej kursor dan bukannya menyentap ke permukaan (wl_surface).
- "ext-transient-seat" - direka untuk mencipta sesi bebas sementara (tempat duduk) yang direka untuk digunakan dengan peranti input maya. Sebagai contoh, apabila melaksanakan keupayaan untuk menyambung ke desktop jauh, protokol membenarkan anda membuat sesi berasingan untuk setiap pengguna dengan papan kekunci dan tetikus maya.
- "xdg-toplevel-drag" - memanjangkan mekanisme "drag & drop" dengan keupayaan untuk melampirkan tetingkap peringkat atas pada operasi seret, yang boleh digunakan, sebagai contoh, untuk mengatur penyeretan bar alat atau tab penyemak imbas dengan tetikus. Protokol baharu membolehkan anda membuat bahagian tetingkap yang boleh tanggal yang, apabila diseret dari tetingkap itu, menjadi tetingkap baharu dan boleh dialihkan di atas tetingkap sedia ada sebelum dipasang semula.
- "xdg-dialog" - membenarkan anda untuk menetapkan atribut khusus dialog kepada permukaan peringkat atas, sebagai contoh, anda boleh mencipta dialog modal yang menyekat interaksi pengguna dengan seluruh antara muka.
- "linux-drm-syncobj" - menyediakan alat untuk penyegerakan penimbal eksplisit menggunakan objek penyegerakan DRM (Pengurus Render Langsung). Adalah diandaikan bahawa dalam konteks penyegerakan apabila memberikan kepada penimbal, protokol yang dicadangkan akan menambah baik kerja dengan pemacu berdasarkan API grafik Vulkan dan OpenGL (pelaksanaan adalah berdasarkan pengendali dalam pemacu). Protokol baharu memungkinkan untuk memastikan operasi cabutan kepada penimbal selesai sebelum pengurus penggubah memaparkan penimbal itu.
- pengubah suai alfa, yang membolehkan pelanggan menukar tahap ketelusan permukaan dan operasi pemindahan untuk memastikan ketelusan ke sisi pelayan komposit, yang seterusnya boleh mengubah hala operasi ini ke KMS.
- xdg-toplevel-icon - ikat ikon ke tetingkap peringkat atas.
- ext-image-capture-source dan ext-image-copy-capture - organisasi menangkap kandungan yang dipaparkan pada skrin.
- xdg-system-bell - membolehkan anda mengeluarkan isyarat sistem, yang boleh digunakan, sebagai contoh, sebagai amaran dalam emulator terminal. Bentuk output isyarat ditentukan mengikut budi bicara pengurus komposit; ia bukan sahaja bunyi, tetapi tindak balas visual.
- fifo - melaksanakan mekanisme FIFO (masuk dahulu, keluar dahulu) untuk memproses baris gilir kemas kini kandungan permukaan yang dipaparkan. Dari segi praktikal, protokol membenarkan output menggunakan menunggu pengimbasan menegak selesai (vblank) dan bukannya menggunakan panggilan balik setiap kali ia bersedia untuk memaparkan bingkai baharu, yang menyelesaikan masalah beban GPU yang tinggi apabila menggunakan VSync.
- commit-timing - membolehkan anda mengikat had masa kepada kandungan permukaan (pelayan komposit harus mencerminkan perubahan kandungan jika boleh selepas masa yang ditentukan, tetapi tidak lebih awal).
- ext-data-control - Membenarkan pelanggan istimewa mengawal pemprosesan data, contohnya untuk melaksanakan pengurus papan keratan.
- ruang kerja tambahan — melaksanakan konsep desktop maya dan menawarkan acara dengan maklumat tentang keadaan desktop, serta keupayaan untuk mengaktifkan dan menyahaktifkan desktop. Protokol ini boleh digunakan untuk mencipta papan pemuka dan penunjuk yang memaparkan senarai desktop maya yang tersedia dan membenarkan pertukaran antara desktop maya tersebut.
- pengurusan warna — menyediakan keupayaan untuk pengurusan warna dan sokongan untuk julat dinamik tinggi (HDR). Sambungan ini membolehkan aplikasi klien mendapatkan maklumat tentang sifat berkaitan warna peranti output dan menghantar data tentang sifat warna kandungan mereka sendiri ke pelayan komposit. Dalam mod komposit, pelayan Maklumat ini boleh digunakan untuk pengurusan warna automatik apabila memaparkan kandungan pada pelbagai peranti output, contohnya, untuk menukar kandungan kepada pembentangan yang sesuai untuk dipaparkan pada monitor HDR. Profil ICC digunakan untuk menerangkan ruang warna.
Protokol sedang dibangunkan di cawangan "tidak stabil":
- "shell skrin penuh" - kawalan kerja dalam mod skrin penuh.
- "kaedah input" - kaedah input pemprosesan.
- "idle-inhibit" - menyekat pelancaran screensaver (screen saver).
- "input-timestamps" - cap masa untuk acara input.
- "keyboard-shortcuts-inhibit" - mengawal lampiran pintasan papan kekunci dan kekunci panas.
- "linux-explicit-synchronization" ialah mekanisme khusus Linux untuk menyegerakkan penimbal terikat permukaan.
- "gerak isyarat" - kawalan daripada skrin sentuh.
- "kekangan penunjuk" - kekangan penunjuk (menyekat).
- "pemilihan utama" - dengan analogi dengan X11, ia memastikan operasi papan keratan utama (pemilihan utama), maklumat yang biasanya dimasukkan dengan butang tetikus tengah.
- "peristiwa penunjuk relatif" - peristiwa penunjuk relatif.
- "input teks" - organisasi input teks.
- "xdg-foreign" ialah antara muka untuk berinteraksi dengan permukaan pelanggan "jiran".
- "xdg-decoration" - memaparkan hiasan tingkap pada bahagian pelayan.
- "xdg-output" - maklumat tambahan tentang output video (digunakan untuk penskalaan pecahan).
- "xwayland-keyboard-grab" - tangkap input dalam aplikasi XWayland.
Sumber: opennet.ru
