From 194d585064c5e20a5cd6d0aad2490d2c47a3aa5d Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 9 Mar 2023 11:12:34 +0900 Subject: [PATCH] add wtz_screen protocol This protocol is the wayland extension protocol for the tizen-specific screen. It supports the logical screen provided by Tizen Display Server. Change-Id: I3c8e7e3739067ca6d4e79c8851eee711df688311 --- Makefile.am | 18 ++++ protocol/tizen/wtz-screen.xml | 173 ++++++++++++++++++++++++++++++++++ 2 files changed, 191 insertions(+) create mode 100644 protocol/tizen/wtz-screen.xml diff --git a/Makefile.am b/Makefile.am index 7b3306d..6773aa3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -383,6 +383,23 @@ libwtz_foreign_client_la_SOURCES = protocol/tizen/wtz-foreign-protocol.c libwtz_foreign_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libwtz_foreign_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ +### wtz_screen +protocol_LTLIBRARIES += \ + libwtz-screen-server.la \ + libwtz-screen-client.la +pkgconfig_DATA += \ + src/wtz-screen-server.pc \ + src/wtz-screen-client.pc +protocolinclude_HEADERS += \ + protocol/tizen/wtz-screen-server-protocol.h \ + protocol/tizen/wtz-screen-client-protocol.h +libwtz_screen_server_la_SOURCES = protocol/tizen/wtz-screen-protocol.c +libwtz_screen_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ +libwtz_screen_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ +libwtz_screen_client_la_SOURCES = protocol/tizen/wtz-screen-protocol.c +libwtz_screen_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ +libwtz_screen_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ + ### wayland-protocols unstable_protocols = \ protocol/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml \ @@ -431,6 +448,7 @@ tizen_protocols = \ protocol/tizen/fullscreen-shell.xml \ protocol/tizen/tizen-policy-ext.xml \ protocol/tizen/wtz-foreign.xml \ + protocol/tizen/wtz-screen.xml \ $(NULL) nobase_dist_pkgdata_DATA = \ diff --git a/protocol/tizen/wtz-screen.xml b/protocol/tizen/wtz-screen.xml new file mode 100644 index 0000000..ac04982 --- /dev/null +++ b/protocol/tizen/wtz-screen.xml @@ -0,0 +1,173 @@ + + + + + Copyright © 2023 Samsung Electronics Co., Ltd. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + This is the waylanad protocol for supporting tizen-specific screen which is + the logical screen provided by Tizen Display Server. + + + + + A screen describes rectangular area which can display on physical + output devices of the compositor geometry. This object is published + as global during start up, or when a compositor creates a screen. + + + + + Type of error. + + + + + + + + + The functional capability type which a wtz_screen can support. + + + + + + + + Notify when the server that it is not going to use the wtz_screen + object anymore. + + + + + + The size event describes the size of the screen. + [TODO] example and scenario for this logical screen size event + + + + + + + + Many compositors will assign names to their screen, show them to the + user, allow them to be configured by name, etc. + + + + + + + Notify the array of the screen capabilities. The clients get this event when it + binds the wtz_screen global resource. + + + + + + + Get the wtz_splitscreen when this wtz_screen has the splitscreen capability. + When it has no splitscreen capability, not_supported error is raised. + + + + + + + + + The wtz_splitscreen is for managing split regions of the target wtz_screen. + This interface can get get_splitscreen request of the wtz_screen. + + + + + Destroy wtz_splitscreen. + + + + + + Notify the splitscreen region that partial rectangle area of the wtz_screen. + The event can be repeated during all of the region information send to client. + + + + + + + Activate the splitscreen. + + + + + + Deactivate the splitscreen. + + + + + + + + The wtz_splitscreen_region interface for request and receive the information of the target region. + The interface only can get information. + And the setting of the splitscreen region is depends on the implementation of the display server. + + + + + Destroy wtz_splitscreen. + + + + + + Send name of the wtz_splitscreen_region in a screen. + + + + + + + Send geometry of the wtz_splitscreen_region in a screen. + + + + + + + + + + Request to assign appid to the splitscreen region. + + + + + + + -- 2.34.1