Gói wayland-protocols phiên bản 1.49 đã được phát hành, chứa một tập hợp các giao thức và phần mở rộng bổ sung cho giao thức Wayland cốt lõi và cung cấp các khả năng cần thiết để xây dựng các máy chủ phức hợp và môi trường người dùng.
Trong phiên bản mới:
- Добавлен экспериментальный протокол xx-fractional-scale, предоставляющий возможность масштабирования системы логических координат, значения в которой задаются целыми числами, для повышения точности позиционирования и увеличения разрешения логических координат до отдельных пикселей. Подобная возможность решает проблему с ограниченным разрешением системы логических координат, недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования.
- В протокол «linux-dmabuf» добавлена поддержка работы на системах с несколькими GPU. На подобных системах клиент может согласовать с композитными сервером какой из GPU следует использовать.
- В протокол color-management-v1 добавлена поддержка метаданных изображений в формате BT.2100 для применения в композитном сервере специфичных обработчиков, позволяющих корректно отображать HDR-контент, созданный для Windows.
Tất cả các giao thức tuần tự trải qua các giai đoạn phát triển, thử nghiệm và ổn định. Sau khi hoàn thành giai đoạn phát triển (danh mục “không ổn định”), giao thức được đặt trong nhánh “dàn dựng” và chính thức được đưa vào bộ giao thức wayland, và sau khi hoàn tất thử nghiệm, nó sẽ được chuyển sang danh mục ổn định. Các giao thức từ danh mục “dàn dựng” có thể đã được sử dụng trong các máy chủ và máy khách tổng hợp nơi yêu cầu chức năng liên quan. Không giống như danh mục “không ổn định”, trong “dàn dựng”, không được phép thực hiện các thay đổi vi phạm tính tương thích, nhưng nếu xác định được vấn đề và thiếu sót trong quá trình thử nghiệm, thì việc thay thế bằng phiên bản quan trọng mới của giao thức hoặc tiện ích mở rộng Wayland khác sẽ không bị loại trừ.
Để đẩy nhanh việc cung cấp các giao thức cho các nhà phát triển và khuyến khích triển khai sớm các giao thức trong các dự án hiện có, bắt đầu từ bản phát hành trước, giai đoạn "thử nghiệm" đã được thêm vào, cho phép thực hiện các thay đổi phá vỡ khả năng tương thích và bổ sung các giao thức "thô" có thể dần dần được đưa đến mức phù hợp. Trong khi một giao thức cần thành lập một nhóm hỗ trợ và nhận được một số lượng xác nhận (ACK) nhất định từ người đánh giá để bước vào giai đoạn dàn dựng, thì nó chỉ cần nhận được không có phản đối (NACK) trong thời gian đánh giá hai tuần để bước vào giai đoạn thử nghiệm.
Bộ giao thức wayland hiện bao gồm các giao thức ổn định sau, có khả năng tương thích ngược:
- "viewporter" - cho phép máy khách thực hiện các hành động chia tỷ lệ và cắt cạnh bề mặt ở phía máy chủ.
- "thời gian trình bày" - cung cấp hiển thị video.
- "xdg-shell" là giao diện dùng để tạo và tương tác với các bề mặt dưới dạng cửa sổ, cho phép bạn di chuyển chúng xung quanh màn hình, thu gọn, mở rộng, thay đổi kích thước, v.v.
- "linux-dmabuf" - cung cấp khả năng tạo wl_buffer dựa trên DMA-BUF.
- "máy tính bảng" - tổ chức đầu vào từ máy tính bảng đồ họa.
Các giao thức được thử nghiệm trong nhánh “dàn dựng”:
- drm-lease - cung cấp các tài nguyên cần thiết để tạo ra hình ảnh âm thanh nổi với các bộ đệm khác nhau cho mắt trái và mắt phải khi xuất ra tai nghe thực tế ảo.
- "Ext-session-lock" - xác định phương tiện khóa phiên, ví dụ: trong khi trình bảo vệ màn hình đang chạy hoặc hộp thoại xác thực được hiển thị.
- "bộ đệm pixel đơn" - cho phép bạn tạo bộ đệm một pixel bao gồm bốn giá trị RGBA 32 bit.
- «xdg-activation» — позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое). - loại nội dung - Cho phép khách hàng chuyển thông tin về nội dung được hiển thị đến máy chủ tổng hợp, có thể được sử dụng để tối ưu hóa hành vi nhận biết nội dung, chẳng hạn như đặt các thuộc tính DRM cụ thể như "loại nội dung". Hỗ trợ cho các loại nội dung sau được khai báo: không có (không có thông tin về loại dữ liệu), ảnh (đầu ra ảnh kỹ thuật số, yêu cầu xử lý tối thiểu), video (video hoặc hoạt ảnh, cần đồng bộ hóa chính xác hơn để tránh bị giật hình) và trò chơi (khởi chạy trò chơi, đầu ra từ độ trễ tối thiểu).
- ext-idle-notify - Cho phép máy chủ tổng hợp gửi thông báo cho khách hàng về việc người dùng không hoạt động, thông báo này có thể được sử dụng để kích hoạt các chế độ tiết kiệm năng lượng bổ sung sau một thời gian không hoạt động nhất định.
- kiểm soát xé hình - cho phép bạn tắt đồng bộ hóa dọc (VSync) bằng xung giảm chấn dọc trong các ứng dụng toàn màn hình, được sử dụng để bảo vệ chống rách ở đầu ra. Trong các ứng dụng đa phương tiện, hiện tượng giả do bị xé là một tác dụng không mong muốn, nhưng trong các chương trình chơi game, hiện tượng giả có thể được chấp nhận nếu việc xử lý chúng gây ra thêm độ trễ.
- ext-foreign-toplevel-list - Truy xuất thông tin về các bề mặt được đặt ở cấp cao nhất, cho phép bạn sắp xếp các cửa sổ để gắn lên trên các nội dung khác, chẳng hạn như để gắn bảng điều khiển và công tắc cửa sổ của riêng bạn.
- bối cảnh bảo mật - cho phép bạn xác định khách hàng bằng cách sử dụng cách ly hộp cát. Máy khách có thể đăng ký kết nối mới với máy chủ tổng hợp dựa trên Wayland và đính kèm bối cảnh bảo mật vào đó, sau đó trình quản lý tổng hợp sẽ giới hạn các khả năng có sẵn đối với kết nối đã thiết lập dựa trên bối cảnh bảo mật đã chỉ định.
- hình dạng con trỏ là một cách khác để tùy chỉnh hình thức của con trỏ, dựa trên việc truyền một loạt hình ảnh con trỏ thay vì chụp nhanh vào một bề mặt (wl_surface).
- “Ext-transient-seat” - được thiết kế để tạo các phiên (chỗ ngồi) độc lập tạm thời được thiết kế để sử dụng với các thiết bị đầu vào ảo. Ví dụ: khi triển khai khả năng kết nối với máy tính để bàn từ xa, giao thức cho phép bạn tạo một phiên riêng cho mỗi người dùng bằng bàn phím và chuột ảo.
- "xdg-toplevel-drag" - mở rộng cơ chế "kéo và thả" với khả năng gắn các cửa sổ cấp cao nhất vào thao tác kéo, ví dụ: có thể được sử dụng để tổ chức kéo thanh công cụ hoặc tab trình duyệt bằng chuột. Giao thức mới cho phép bạn tạo các phần có thể tháo rời của một cửa sổ mà khi được kéo từ cửa sổ đó sẽ trở thành các cửa sổ mới và có thể được di chuyển lên trên cửa sổ hiện có trước khi được gắn lại.
- "xdg-dialog" - cho phép bạn gán các thuộc tính dành riêng cho hộp thoại cho các bề mặt cấp cao nhất, ví dụ: bạn có thể tạo các hộp thoại phương thức chặn tương tác của người dùng với phần còn lại của giao diện.
- "linux-drm-syncobj" - cung cấp các công cụ để đồng bộ hóa bộ đệm rõ ràng bằng cách sử dụng các đối tượng đồng bộ hóa DRM (Trình quản lý kết xuất trực tiếp). Người ta cho rằng trong bối cảnh đồng bộ hóa khi kết xuất vào bộ đệm, giao thức được đề xuất sẽ cải thiện công việc với trình điều khiển dựa trên API đồ họa Vulkan và OpenGL (việc triển khai dựa trên trình xử lý trong trình điều khiển). Giao thức mới giúp đảm bảo hoạt động vẽ vào bộ đệm được hoàn tất trước khi trình quản lý tổng hợp hiển thị bộ đệm đó.
- công cụ sửa đổi alpha, cho phép khách hàng thay đổi mức độ trong suốt của bề mặt và chuyển các hoạt động để đảm bảo tính minh bạch về phía máy chủ tổng hợp, từ đó có thể chuyển hướng các hoạt động này sang KMS.
- xdg-toplevel-icon - liên kết biểu tượng với cửa sổ cấp cao nhất.
- ext-image-capture-source và ext-image-copy-capture - tổ chức chụp nội dung hiển thị trên màn hình.
- xdg-system-bell - cho phép bạn xuất tín hiệu hệ thống, chẳng hạn, tín hiệu này có thể được sử dụng làm cảnh báo trong trình mô phỏng thiết bị đầu cuối. Hình thức đầu ra tín hiệu được xác định theo quyết định của người quản lý tổng hợp; nó không chỉ có thể là âm thanh mà còn là phản hồi trực quan.
- fifo - thực hiện cơ chế FIFO (vào trước, ra trước) để xử lý hàng đợi cập nhật nội dung của bề mặt được hiển thị. Về mặt thực tế, giao thức cho phép đầu ra chờ quá trình quét dọc hoàn tất (vblank) thay vì sử dụng lệnh gọi lại mỗi khi nó sẵn sàng hiển thị khung hình mới, điều này giải quyết vấn đề tải GPU cao khi sử dụng VSync.
- thời gian cam kết - cho phép bạn liên kết giới hạn thời gian với nội dung bề mặt (máy chủ tổng hợp sẽ phản ánh thay đổi nội dung nếu có thể sau thời gian đã chỉ định, nhưng không sớm hơn).
- ext-data-control - Cho phép khách hàng có đặc quyền kiểm soát việc xử lý dữ liệu, ví dụ: triển khai trình quản lý clipboard.
- ext-workspace - triển khai khái niệm máy tính để bàn ảo và cung cấp các sự kiện với thông tin về trạng thái của máy tính để bàn cũng như khả năng kích hoạt và hủy kích hoạt máy tính để bàn. Giao thức có thể được sử dụng để tạo bảng và chỉ báo hiển thị danh sách các máy tính để bàn ảo có sẵn và cho phép bạn chuyển đổi giữa chúng.
- quản lý màu sắc — cung cấp khả năng quản lý màu sắc và hỗ trợ dải sáng động mở rộng (HDR, Dải sáng động cao). Với phần mở rộng được thêm vào, các ứng dụng máy khách có thể lấy thông tin về các thuộc tính liên quan đến màu sắc của thiết bị đầu ra và truyền dữ liệu về các thuộc tính liên quan đến màu sắc của nội dung của chúng tới máy chủ tổng hợp. Trong máy chủ tổng hợp, thông tin này có thể được sử dụng để tự động quản lý màu sắc khi hiển thị nội dung trên các thiết bị đầu ra khác nhau, ví dụ như chuyển đổi nội dung thành bản trình bày phù hợp để hiển thị trên màn hình HDR. Hồ sơ ICC được sử dụng để mô tả không gian màu.
- xdg-toplevel-tag — Cho phép máy khách Wayland gắn thẻ vào các bề mặt cấp cao nhất mà máy chủ tổng hợp có thể sử dụng để xác định các cửa sổ sau khi ứng dụng được khởi động lại (ví dụ: ứng dụng có thể đặt thẻ "cửa sổ chính" và "cài đặt" cho cửa sổ chính và cửa sổ cài đặt). Việc nhận dạng như vậy rất hữu ích để khôi phục vị trí, kích thước và thuộc tính của cửa sổ sau khi khởi động lại, cũng như để xác định các quy tắc đặc biệt cho từng loại cửa sổ.
- color-representation — định nghĩa biểu diễn màu của bề mặt Wayland. Các máy khách Wayland có thể truyền siêu dữ liệu cần thiết để định nghĩa độ trong suốt, mô hình màu, lấy mẫu phụ và phạm vi lượng tử hóa, và được sử dụng khi chuyển đổi bộ đệm có dữ liệu tương ứng với mô hình màu YCbCr thành biểu diễn RGB.
- ext-background-effect - áp dụng hiệu ứng cho các phần bán trong suốt của bề mặt Wayland, chẳng hạn như làm mờ nền.
- pointer-warp - Cho phép ứng dụng di chuyển con trỏ ngay lập tức đến vị trí đã chỉ định.
- xdg-session-management — возможности для восстановления состояния и позиции окон прерванного сеанса, например, после аварийного завершения композитного сервера или приложения.
Các giao thức đang được phát triển trong nhánh thử nghiệm:
- xx-session-management - khôi phục trạng thái của cửa sổ cho các phiên bị gián đoạn (ví dụ: sau khi trình quản lý tổng hợp bị sập).
- xx-input-method — cho phép các ứng dụng triển khai các phương thức nhập văn bản cho máy chủ tổng hợp và tạo ra văn bản đã nhập, có thể được sử dụng, ví dụ, để tạo bàn phím ảo và các lớp IME (Trình soạn thảo phương thức nhập) để xử lý đầu vào.
- xx-text-input — cho phép các máy chủ tổng hợp triển khai các phương thức nhập liệu và gửi văn bản đến các ứng dụng. Giao thức này chuẩn hóa sự tương tác giữa các máy chủ tổng hợp và ứng dụng, đồng thời cho phép kiểm soát các tính năng như truyền văn bản đầu vào, xử lý các sự kiện lấy tiêu điểm nhập liệu và xem xét các đặc điểm cụ thể của trường nhập liệu (ngôn ngữ, lựa chọn văn bản, loại nội dung).
- xx-cutouts — для получения информации о вырезах на экране (например, области под фронтальную камеру на экране смартфона).
- xx-zones — для создания и добавления окон верхнего уровня в «зоны» — окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- xx-keyboard-filter — для перехвата клиентом выбранных событий клавиатуры, изменения событий ввода или блокирования передачи определённых событий в Wayland-поверхность, на которой установлен фокус ввода.
Các giao thức đang được phát triển trong nhánh “không ổn định”:
- “fullscreen-shell” - kiểm soát công việc ở chế độ toàn màn hình.
- "phương thức nhập" - xử lý các phương thức nhập.
- “ức chế nhàn rỗi” - chặn khởi chạy trình bảo vệ màn hình (trình bảo vệ màn hình).
- "input-timestamps" - dấu thời gian cho các sự kiện đầu vào.
- "bàn phím-phím tắt-ức chế" - kiểm soát việc đính kèm các phím tắt và phím nóng.
- "linux-explicit-synchronization" là tính năng dành riêng cho Linux cơ chế đồng bộ hóa các bộ đệm liên quan đến bề mặt.
- “cử chỉ con trỏ” - điều khiển từ màn hình cảm ứng.
- “ràng buộc con trỏ” - ràng buộc con trỏ (chặn).
- “Lựa chọn chính” - bằng cách tương tự với X11, nó đảm bảo hoạt động của bảng tạm chính (lựa chọn chính), thông tin từ đó thường được chèn bằng nút chuột giữa.
- “sự kiện con trỏ tương đối” - sự kiện con trỏ tương đối.
- “nhập văn bản” - tổ chức nhập văn bản.
- “xdg-foreign” là một giao diện để tương tác với các bề mặt của máy khách “lân cận”.
- "xdg-trang trí" - hiển thị trang trí cửa sổ ở phía máy chủ.
- "xdg-output" - thông tin bổ sung về đầu ra video (được sử dụng để chia tỷ lệ phân đoạn).
- "xwayland-keyboard-grab" - ghi lại dữ liệu đầu vào trong các ứng dụng XWayland.
Nguồn: opennet.ru
