Warning, /libraries/plasma-wayland-protocols/src/protocols/outputdevice.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <protocol name="org_kde_kwin_outputdevice"> 0003 <copyright><![CDATA[ 0004 SPDX-FileCopyrightText: 2008-2011 Kristian Høgsberg 0005 SPDX-FileCopyrightText: 2010-2011 Intel Corporation 0006 SPDX-FileCopyrightText: 2012-2013 Collabora, Ltd. 0007 SPDX-FileCopyrightText: 2015 Sebastian Kügler <sebas@kde.org> 0008 0009 SPDX-License-Identifier: MIT-CMU 0010 ]]></copyright> 0011 0012 0013 <interface name="org_kde_kwin_outputdevice" version="4"> 0014 <description summary="output configuration representation"> 0015 An outputdevice describes a display device available to the compositor. 0016 outputdevice is similar to wl_output, but focuses on output 0017 configuration management. 0018 0019 A client can query all global outputdevice objects to enlist all 0020 available display devices, even those that may currently not be 0021 represented by the compositor as a wl_output. 0022 0023 The client sends configuration changes to the server through the 0024 outputconfiguration interface, and the server applies the configuration 0025 changes to the hardware and signals changes to the outputdevices 0026 accordingly. 0027 0028 This object is published as global during start up for every available 0029 display devices, or when one later becomes available, for example by 0030 being hotplugged via a physical connector. 0031 </description> 0032 0033 <enum name="subpixel"> 0034 <description summary="subpixel geometry information"> 0035 This enumeration describes how the physical pixels on an output are 0036 laid out. 0037 </description> 0038 <entry name="unknown" value="0"/> 0039 <entry name="none" value="1"/> 0040 <entry name="horizontal_rgb" value="2"/> 0041 <entry name="horizontal_bgr" value="3"/> 0042 <entry name="vertical_rgb" value="4"/> 0043 <entry name="vertical_bgr" value="5"/> 0044 </enum> 0045 0046 <enum name="transform"> 0047 <description summary="transform from framebuffer to output"> 0048 This describes the transform, that a compositor will apply to a 0049 surface to compensate for the rotation or mirroring of an 0050 output device. 0051 0052 The flipped values correspond to an initial flip around a 0053 vertical axis followed by rotation. 0054 0055 The purpose is mainly to allow clients to render accordingly and 0056 tell the compositor, so that for fullscreen surfaces, the 0057 compositor is still able to scan out directly client surfaces. 0058 </description> 0059 0060 <entry name="normal" value="0"/> 0061 <entry name="90" value="1"/> 0062 <entry name="180" value="2"/> 0063 <entry name="270" value="3"/> 0064 <entry name="flipped" value="4"/> 0065 <entry name="flipped_90" value="5"/> 0066 <entry name="flipped_180" value="6"/> 0067 <entry name="flipped_270" value="7"/> 0068 </enum> 0069 0070 <event name="geometry"> 0071 <description summary="geometric properties of the output"> 0072 The geometry event describes geometric properties of the output. 0073 The event is sent when binding to the output object and whenever 0074 any of the properties change. 0075 </description> 0076 <arg name="x" type="int" 0077 summary="x position within the global compositor space"/> 0078 <arg name="y" type="int" 0079 summary="y position within the global compositor space"/> 0080 <arg name="physical_width" type="int" 0081 summary="width in millimeters of the output"/> 0082 <arg name="physical_height" type="int" 0083 summary="height in millimeters of the output"/> 0084 <arg name="subpixel" type="int" 0085 summary="subpixel orientation of the output"/> 0086 <arg name="make" type="string" 0087 summary="textual description of the manufacturer"/> 0088 <arg name="model" type="string" 0089 summary="textual description of the model"/> 0090 <arg name="transform" type="int" 0091 summary="transform that maps framebuffer to output"/> 0092 </event> 0093 0094 <enum name="mode"> 0095 <description summary="mode information"> 0096 These flags describe properties of an output mode. They are 0097 used in the flags bitfield of the mode event. 0098 </description> 0099 <entry name="current" value="0x1" 0100 summary="indicates this is the current mode"/> 0101 <entry name="preferred" value="0x2" 0102 summary="indicates this is the preferred mode"/> 0103 </enum> 0104 0105 <event name="mode"> 0106 <description summary="advertise available output modes and current one"> 0107 The mode event describes an available mode for the output. 0108 0109 When the client binds to the outputdevice object, the server sends this 0110 event once for every available mode the outputdevice can be operated by. 0111 0112 There will always be at least one event sent out on initial binding, 0113 which represents the current mode. 0114 0115 Later on if an output changes its mode the event is sent again, whereby 0116 this event represents the mode that has now become current. In other 0117 words, the current mode is always represented by the latest event sent 0118 with the current flag set. 0119 0120 The size of a mode is given in physical hardware units of the output device. 0121 This is not necessarily the same as the output size in the global compositor 0122 space. For instance, the output may be scaled, as described in 0123 org_kde_kwin_outputdevice.scale, or transformed, as described in 0124 org_kde_kwin_outputdevice.transform. 0125 0126 The id can be used to refer to a mode when calling set_mode on an 0127 org_kde_kwin_outputconfiguration object. 0128 </description> 0129 <arg name="flags" type="uint" summary="bitfield of mode flags"/> 0130 <arg name="width" type="int" summary="width of the mode in hardware units"/> 0131 <arg name="height" type="int" summary="height of the mode in hardware units"/> 0132 <arg name="refresh" type="int" summary="vertical refresh rate in mHz"/> 0133 <arg name="mode_id" type="int" summary="Per outputdevice unique id to identify a mode"/> 0134 </event> 0135 0136 <event name="done"> 0137 <description summary="sent all information about output"> 0138 This event is sent after all other properties have been 0139 sent on binding to the output object as well as after any 0140 other output property change have been applied later on. 0141 This allows to see changes to the output properties as atomic, 0142 even if multiple events successively announce them. 0143 </description> 0144 </event> 0145 0146 <event name="scale"> 0147 <description summary="output scaling properties"> 0148 This event contains scaling geometry information 0149 that is not in the geometry event. It may be sent after 0150 binding the output object or if the output scale changes 0151 later. If it is not sent, the client should assume a 0152 scale of 1. 0153 0154 A scale larger than 1 means that the compositor will 0155 automatically scale surface buffers by this amount 0156 when rendering. This is used for high resolution 0157 displays where applications rendering at the native 0158 resolution would be too small to be legible. 0159 0160 It is intended that scaling aware clients track the 0161 current output of a surface, and if it is on a scaled 0162 output it should use wl_surface.set_buffer_scale with 0163 the scale of the output. That way the compositor can 0164 avoid scaling the surface, and the client can supply 0165 a higher detail image. 0166 </description> 0167 <arg name="factor" type="int" summary="scaling factor of output"/> 0168 </event> 0169 0170 <event name="edid"> 0171 <description summary="advertise EDID data for the output"> 0172 The edid event encapsulates the EDID data for the outputdevice. 0173 0174 The event is sent when binding to the output object. The EDID 0175 data may be empty, in which case this event is sent anyway. 0176 If the EDID information is empty, you can fall back to the name 0177 et al. properties of the outputdevice. 0178 </description> 0179 <arg name="raw" type="string" summary="base64-encoded EDID string"/> 0180 </event> 0181 0182 <enum name="enablement"> 0183 <description summary="describes enabled state"> 0184 Describes whether a device is enabled, i.e. device is used to 0185 display content by the compositor. This wraps a boolean around 0186 an int to avoid a boolean trap. 0187 </description> 0188 <entry name="disabled" value="0"/> 0189 <entry name="enabled" value="1"/> 0190 </enum> 0191 0192 <event name="enabled"> 0193 <description summary="output is enabled or disabled"> 0194 The enabled event notifies whether this output is currently 0195 enabled and used for displaying content by the server. 0196 The event is sent when binding to the output object and 0197 whenever later on an output changes its state by becoming 0198 enabled or disabled. 0199 </description> 0200 <arg name="enabled" type="int" summary="output enabled state"/> 0201 </event> 0202 0203 <event name="uuid"> 0204 <description summary="A unique id for this outputdevice"> 0205 The uuid can be used to identify the output. It's controlled by 0206 the server entirely. The server should make sure the uuid is 0207 persistent across restarts. An empty uuid is considered invalid. 0208 </description> 0209 <arg name="uuid" type="string" summary="output devices ID"/> 0210 </event> 0211 0212 <event name="scalef" since="2"> 0213 <description summary="output scaling properties"> 0214 This event contains scaling geometry information 0215 that is not in the geometry event. It may be sent after 0216 binding the output object or if the output scale changes 0217 later. If it is not sent, the client should assume a 0218 scale of 1. 0219 0220 A scale larger than 1 means that the compositor will 0221 automatically scale surface buffers by this amount 0222 when rendering. This is used for high resolution 0223 displays where applications rendering at the native 0224 resolution would be too small to be legible. 0225 0226 It is intended that scaling aware clients track the 0227 current output of a surface, and if it is on a scaled 0228 output it should use wl_surface.set_buffer_scale with 0229 the scale of the output. That way the compositor can 0230 avoid scaling the surface, and the client can supply 0231 a higher detail image. 0232 0233 wl_output will keep the output scale as an integer. In every situation except 0234 configuring the window manager you want to use that. 0235 </description> 0236 <arg name="factor" type="fixed" summary="scaling factor of output"/> 0237 </event> 0238 0239 <event name="colorcurves" since="2"> 0240 <description summary="output color curves"> 0241 Describes the color intensity profile of the output. 0242 Commonly used for gamma/color correction. 0243 0244 The array contains all color ramp values of the output. 0245 For example on 8bit screens there are 256 of them. 0246 0247 The array elements are unsigned 16bit integers. 0248 </description> 0249 <arg name="red" type="array" 0250 summary="red color ramp"/> 0251 <arg name="green" type="array" 0252 summary="green color ramp"/> 0253 <arg name="blue" type="array" 0254 summary="blue color ramp"/> 0255 </event> 0256 0257 <event name="serial_number" since="2"> 0258 <description summary="Serial Number"> 0259 Serial ID of the monitor, sent on startup before the first done event. 0260 </description> 0261 <arg name="serialNumber" type="string" 0262 summary="textual representation of serial number"/> 0263 </event> 0264 <event name="eisa_id" since="2"> 0265 <description summary="EISA ID"> 0266 EISA ID of the monitor, sent on startup before the first done event. 0267 </description> 0268 <arg name="eisaId" type="string" 0269 summary="textual representation of EISA identifier"/> 0270 </event> 0271 0272 <enum name="capability" bitfield="true" since="3"> 0273 <description summary="describes capabilities of the outputdevice"> 0274 Describes what capabilities this device has. 0275 </description> 0276 <entry name="overscan" value="1" 0277 summary="if this outputdevice can use overscan"/> 0278 <entry name="vrr" value="2" since="4" 0279 summary="if this outputdevice supports variable refresh rate"/> 0280 </enum> 0281 0282 <event name="capabilities" since="3"> 0283 <description summary="capability flags"> 0284 What capabilities this device has, sent on startup before the first 0285 done event. 0286 </description> 0287 <arg name="flags" type="uint" enum="capability"/> 0288 </event> 0289 0290 <event name="overscan" since="3"> 0291 <description summary="overscan"> 0292 Overscan value of the monitor in percent, sent on startup before the 0293 first done event. 0294 </description> 0295 <arg name="overscan" type="uint" 0296 summary="amount of overscan of the monitor"/> 0297 </event> 0298 0299 <enum name="vrr_policy" since="4"> 0300 <description summary="describes vrr policy"> 0301 Describes when the compositor may employ variable refresh rate 0302 </description> 0303 <entry name="never" value="0"/> 0304 <entry name="always" value="1"/> 0305 <entry name="automatic" value="2"/> 0306 </enum> 0307 0308 <event name="vrr_policy" since="4"> 0309 <description summary="Variable Refresh Rate Policy"> 0310 What policy the compositor will employ regarding its use of variable 0311 refresh rate. 0312 </description> 0313 <arg name="vrr_policy" type="uint" enum="vrr_policy"/> 0314 </event> 0315 0316 </interface> 0317 0318 0319 0320 </protocol>