Temel Wayland protokolünün yeteneklerini tamamlayan ve kompozit sunucular ve kullanıcı ortamları oluşturmak için gerekli yetenekleri sağlayan bir dizi protokol ve uzantı içeren Wayland-protocols 1.35 paketi piyasaya sürüldü.
Tüm protokoller sırasıyla geliştirme, test etme ve stabilizasyon olmak üzere üç aşamadan geçer. Geliştirme aşamasını tamamladıktan sonra (“kararsız” kategorisi) protokol “aşama” dalına yerleştirilir ve resmi olarak wayland-protokoller setine dahil edilir ve test tamamlandıktan sonra stabil kategorisine taşınır. "Aşamalama" kategorisindeki protokoller, ilgili işlevselliğin gerekli olduğu kompozit sunucularda ve istemcilerde halihazırda kullanılabilir. "Kararsız" kategorisinden farklı olarak "aşamalandırma", uyumluluğu ihlal eden değişiklikler yapılmasını yasaklar, ancak test sırasında sorunlar ve eksiklikler tespit edilirse, protokolün yeni ve önemli bir sürümüyle veya başka bir Wayland uzantısıyla değiştirilmesi hariç tutulmaz.
Yeni sürümde:
- Grafik tabletlerden gelen girdileri düzenlemek için araçlar sağlayan tablet-v2 protokolü, kararlı kategoriye aktarıldı.
- "Aşamalama" kategorisine, istemcilerin yüzey şeffaflığı düzeyini değiştirmesine ve şeffaflık işlemlerini kompozit sunucuya dış kaynak olarak değiştirmesine olanak tanıyan yeni bir alfa değiştirici protokolü eklendi ve bu protokol, bu işlemleri KMS'ye iletebilir.
- Döşenmiş pencere düzeni kullanıldığında dekorasyonun pencerenin geometrik sınırları dışında görüntülenmemesi için xdg-shell protokolüne bir öneri eklendi.
Şu anda Wayland protokolleri geriye dönük uyumluluk sağlayan aşağıdaki kararlı protokolleri içerir:
- "görüntüleyici" - istemcinin sunucu tarafında ölçeklendirme ve yüzey kenarı düzeltme eylemleri gerçekleştirmesine olanak tanır.
- "sunum zamanı" - video gösterimi sağlar.
- “xdg-shell”, pencere gibi yüzeyler oluşturmak ve onlarla etkileşime geçmek için kullanılan bir arayüzdür; bu, onları ekranda hareket ettirmenize, simge durumuna küçültmenize, genişletmenize, yeniden boyutlandırmanıza vb. olanak tanır.
- “linux-dmabuf” - DMA-BUF teknolojisini kullanarak birkaç video kartının paylaşılmasını sağlar (DMA-BUF'a dayalı bir wl_buffer oluşturmanıza olanak tanır).
- "tablet" - grafik tabletlerden gelen girdilerin organizasyonu.
"Aşamalama" dalında test edilen protokoller:
- drm-lease - sanal gerçeklik kulaklıklarına çıkış yaparken sol ve sağ gözler için farklı tamponlara sahip bir stereo görüntü oluşturmak için gerekli kaynakları sağlar.
- "ext-session-lock" - örneğin ekran koruyucu çalışırken veya kimlik doğrulama iletişim kutusu görüntülenirken bir oturumu kilitlemenin bir yolunu tanımlar.
- "tek pikselli arabellek" - dört adet 32 bit RGBA değeri içeren tek pikselli arabellekler oluşturmanıza olanak tanır.
- “xdg-aktivasyonu” - odağı farklı birinci düzey yüzeyler arasında aktarmanıza olanak tanır (örneğin, xdg-aktivasyonu kullanarak bir uygulama odağı diğerine değiştirebilir).
- içerik türü - istemcilerin bileşik içerik geçirmesine olanak tanır. sunucu Görüntülenen içerikle ilgili bilgiler, "içerik türü" gibi belirli DRM özelliklerini ayarlamak gibi içerik odaklı davranışı optimize etmek için kullanılabilir. Aşağıdaki içerik türleri için destek beyan edilmiştir: yok (veri türü bilgisi yok), fotoğraf (minimum işlem gerektiren dijital fotoğraf çıktısı), video (video veya animasyon, takılmayı önlemek için daha hassas senkronizasyon gerektirir) ve oyun (oyun başlatma, minimum gecikmeyle çıktı gerektirir).
- ext-idle-notify - Bileşik sunucuların, belirli bir süre işlem yapılmadığında ek güç tasarrufu modlarını etkinleştirmek için kullanılabilen, kullanıcı hareketsizliği hakkında istemcilere bildirim göndermesine olanak tanır.
- yırtılma kontrolü - çıktıda yırtılmaya karşı koruma sağlamak için kullanılan, tam ekran uygulamalarda dikey sönümleme darbesiyle dikey senkronizasyonu (VSync) devre dışı bırakmanıza olanak tanır. Multimedya uygulamalarında, yırtılma nedeniyle oluşan bozulmalar istenmeyen bir etkidir, ancak oyun programlarında, bunlarla uğraşmanın ek gecikmelere neden olması halinde, bozulmalar tolere edilebilir.
- ext-foreign-toplevel-list - Üst seviyeye yerleştirilen yüzeyler hakkında bilgi alır; bu, pencereleri diğer içeriğin üzerine yerleştirilecek şekilde düzenlemenize (örneğin, kendi panellerinizi ve pencere anahtarlarınızı takmanıza) olanak tanır.
- güvenlik bağlamı - korumalı alan izolasyonunu kullanarak istemcileri tanımlamanıza olanak tanır. Bir istemci, Wayland tabanlı bir bileşik sunucuya yeni bir bağlantı kaydedebilir ve buna bir güvenlik bağlamı ekleyebilir; bunun ardından bileşik yönetici, belirlenen güvenlik bağlamına dayalı olarak kurulan bağlantının kullanabileceği yetenekleri sınırlayacaktır.
- imleç şekli, bir yüzeye (wl_surface) yapışmak yerine bir dizi imleç görüntüsünün geçirilmesine dayalı olarak imlecin görünümünü özelleştirmenin alternatif bir yoludur.
- "ext-transient-seat", sanal giriş aygıtlarıyla kullanılmak üzere tasarlanmış geçici bağımsız oturumlar (oturma yerleri) oluşturmak için tasarlanmıştır. Örneğin, bağlantı kurma özelliğini uygularken... uzaktan masaüstü Bu protokol, her kullanıcı için sanal klavye ve fare içeren ayrı bir oturum oluşturmaya olanak tanır.
- "xdg-toplevel-drag" - "sürükle ve bırak" mekanizmasını, örneğin araç çubuklarının veya tarayıcı sekmelerinin fareyle sürüklenmesini düzenlemek için kullanılabilen bir sürükleme işlemine üst düzey pencereler ekleme yeteneğiyle genişletir. Yeni protokol, bir pencerenin, o pencereden sürüklendiğinde yeni pencereler haline gelen ve yeniden bağlanmadan önce mevcut pencerenin üzerine taşınabilen çıkarılabilir bölümleri oluşturmanıza olanak tanır.
- "xdg-dialog" - üst düzey yüzeylere diyaloğa özgü nitelikler atamanıza olanak tanır; örneğin, arayüzün geri kalanıyla kullanıcı etkileşimini engelleyen kalıcı diyaloglar oluşturabilirsiniz.
- "linux-drm-syncobj" - DRM (Doğrudan İşleme Yöneticisi) senkronizasyon nesnelerini kullanarak arabellekleri açıkça senkronize etmek için araçlar sağlar. Bir ara belleğe çizim yaparken senkronizasyon bağlamında, önerilen protokolün Vulkan ve OpenGL grafik API'lerine dayalı sürücülerle çalışmayı iyileştireceği varsayılmaktadır (uygulama, sürücülerdeki işleyicilere dayanmaktadır). Yeni protokol, bileşik yönetici arabelleği oluşturmadan önce bir ara belleğe yönelik oluşturma işleminin tamamlanmasını sağlamayı mümkün kılar.
“Kararsız” dalda geliştirilen protokoller:
- “tam ekran kabuğu” - tam ekran modunda işin kontrolü.
- “giriş yöntemi” - giriş yöntemlerinin işlenmesi.
- “boşta engelleme” - ekran koruyucunun (ekran koruyucu) başlatılmasını engelleme.
- "input-timestamps" - giriş olayları için zaman damgaları.
- "keyboard-shortcuts-inhibit" - klavye kısayollarının ve kısayol tuşlarının eklenmesini kontrol eder.
- "linux-explicit-synchronization" yüzeye bağlı arabellekleri senkronize etmek için Linux'a özgü bir mekanizmadır.
- “işaretçi hareketleri” - dokunmatik ekranlardan kontrol.
- “işaretçi kısıtlamaları” - işaretçi kısıtlamaları (engelleme).
- “birincil seçim” - X11'e benzer şekilde, bilgilerin genellikle orta fare düğmesiyle eklendiği birincil panonun (birincil seçim) çalışmasını sağlar.
- “göreceli işaretçi olayları” - göreli işaretçi olayları.
- “metin girişi” - metin girişinin organizasyonu.
- "xdg-foreign", "komşu" istemcinin yüzeyleriyle etkileşime geçmek için bir arayüzdür.
- "xdg-decoration" - sunucu tarafında pencere dekorasyonlarının oluşturulması.
- "xdg-output" - video çıkışı hakkında ek bilgi (kesirli ölçeklendirme için kullanılır).
- "xwayland-keyboard-grab" - XWayland uygulamalarında girişi yakalayın.
Kaynak: opennet.ru
