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>