mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2024-12-03 22:28:29 +00:00
20d71f8928
This provides virtual display style output, useful for debugging virtio-gpu. Although using virtio-gpu for display purposes clashes with the more integreated virtio-wayland support, it is nonetheless helpful for debugging virtio-gpu, and is technically required to fully implement that device. TEST=cargo build -p gpu_display BUG=chromium:837073 CQ-DEPEND=CL:1096300 Change-Id: I59f895e951ef593d4119e7558168dd34223519ee Reviewed-on: https://chromium-review.googlesource.com/1043446 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org>
202 lines
9.2 KiB
XML
202 lines
9.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="aura_shell">
|
|
<copyright>
|
|
Copyright 2017 The Chromium Authors.
|
|
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.
|
|
</copyright>
|
|
<interface name="zaura_shell" version="6">
|
|
<description summary="aura_shell">
|
|
The global interface exposing aura shell capabilities is used to
|
|
instantiate an interface extension for a wl_surface object.
|
|
This extended interface will then allow the client to use aura shell
|
|
specific functionality.
|
|
</description>
|
|
<enum name="error">
|
|
<entry name="aura_surface_exists" value="0"
|
|
summary="the surface already has an aura surface object associated"/>
|
|
<entry name="aura_output_exists" value="1"
|
|
summary="the output already has an aura output object associated"/>
|
|
</enum>
|
|
<request name="get_aura_surface">
|
|
<description summary="extend surface interface for aura shell">
|
|
Instantiate an interface extension for the given wl_surface to
|
|
provide aura shell functionality. If the given wl_surface is not
|
|
associated with a shell surface, the shell_surface_missing protocol
|
|
error is raised.
|
|
</description>
|
|
<arg name="id" type="new_id" interface="zaura_surface"
|
|
summary="the new aura surface interface id"/>
|
|
<arg name="surface" type="object" interface="wl_surface"
|
|
summary="the surface"/>
|
|
</request>
|
|
<!-- Version 2 additions -->
|
|
<request name="get_aura_output" since="2">
|
|
<description summary="extend output interface for aura shell">
|
|
Instantiate an interface extension for the given wl_output to
|
|
provide aura shell functionality.
|
|
</description>
|
|
<arg name="id" type="new_id" interface="zaura_output"
|
|
summary="the new aura output interface id"/>
|
|
<arg name="output" type="object" interface="wl_output"
|
|
summary="the output"/>
|
|
</request>
|
|
</interface>
|
|
<interface name="zaura_surface" version="5">
|
|
<description summary="aura shell interface to a wl_surface">
|
|
An additional interface to a wl_surface object, which allows the
|
|
client to access aura shell specific functionality for surface.
|
|
</description>
|
|
<enum name="frame_type">
|
|
<description summary="different frame types">
|
|
Frame types that can be used to decorate a surface.
|
|
</description>
|
|
<entry name="none" value="0" summary="no frame"/>
|
|
<entry name="normal" value="1" summary="caption with shadow" />
|
|
<entry name="shadow" value="2" summary="shadow only"/>
|
|
</enum>
|
|
<request name="set_frame">
|
|
<description summary="request a frame for surface">
|
|
Suggests a surface should use a specific frame.
|
|
</description>
|
|
<arg name="type" type="uint" summary="the new frame type"/>
|
|
</request>
|
|
<!-- Version 2 additions -->
|
|
<request name="set_parent" since="2">
|
|
<description summary="set the parent of this surface">
|
|
Set the "parent" of this surface. "x" and "y" arguments specify the
|
|
initial position for surface relative to parent.
|
|
</description>
|
|
<arg name="parent" type="object" interface="zaura_surface" allow-null="true"/>
|
|
<arg name="x" type="int"/>
|
|
<arg name="y" type="int"/>
|
|
</request>
|
|
<!-- Version 3 additions -->
|
|
<request name="set_frame_colors" since="3">
|
|
<description summary="set the frame colors of this surface">
|
|
Set the frame colors.
|
|
</description>
|
|
<arg name="active_color" type="uint" summary="32 bit ARGB color value, not premultiplied"/>
|
|
<arg name="inactive_color" type="uint" summary="32 bit ARGB color value, not premultiplied"/>
|
|
</request>
|
|
<!-- Version 4 additions -->
|
|
<request name="set_startup_id" since="4">
|
|
<description summary="set the startup ID of this surface">
|
|
Set the startup ID.
|
|
</description>
|
|
<arg name="startup_id" type="string" allow-null="true"/>
|
|
</request>
|
|
<!-- Version 5 additions -->
|
|
<request name="set_application_id" since="5">
|
|
<description summary="set the application ID of this surface">
|
|
Set the application ID.
|
|
</description>
|
|
<arg name="application_id" type="string" allow-null="true"/>
|
|
</request>
|
|
</interface>
|
|
<interface name="zaura_output" version="6">
|
|
<description summary="aura shell interface to a wl_output">
|
|
An additional interface to a wl_output object, which allows the
|
|
client to access aura shell specific functionality for output.
|
|
</description>
|
|
<!-- Version 2 additions -->
|
|
<enum name="scale_property" bitfield="true">
|
|
<description summary="scale information">
|
|
These flags describe properties of an output scale.
|
|
They are used in the flags bitfield of the scale event.
|
|
</description>
|
|
<entry name="current" value="0x1"
|
|
summary="indicates this is the current scale"/>
|
|
<entry name="preferred" value="0x2"
|
|
summary="indicates this is the preferred scale"/>
|
|
</enum>
|
|
<enum name="scale_factor">
|
|
<entry name="0400" value="400"/>
|
|
<entry name="0500" value="500"/>
|
|
<entry name="0550" value="550"/>
|
|
<entry name="0600" value="600"/>
|
|
<entry name="0625" value="625"/>
|
|
<entry name="0650" value="650"/>
|
|
<entry name="0700" value="700"/>
|
|
<entry name="0750" value="750"/>
|
|
<entry name="0800" value="800"/>
|
|
<entry name="0850" value="850"/>
|
|
<entry name="0900" value="900"/>
|
|
<entry name="0950" value="950"/>
|
|
<entry name="1000" value="1000"/>
|
|
<entry name="1050" value="1050"/>
|
|
<entry name="1100" value="1100"/>
|
|
<entry name="1150" value="1150"/>
|
|
<entry name="1125" value="1125"/>
|
|
<entry name="1200" value="1200"/>
|
|
<entry name="1250" value="1250"/>
|
|
<entry name="1300" value="1300"/>
|
|
<entry name="1400" value="1400"/>
|
|
<entry name="1450" value="1450"/>
|
|
<entry name="1500" value="1500"/>
|
|
<entry name="1600" value="1600"/>
|
|
<entry name="1750" value="1750"/>
|
|
<entry name="1800" value="1800"/>
|
|
<entry name="2000" value="2000"/>
|
|
<entry name="2200" value="2200"/>
|
|
<entry name="2250" value="2250"/>
|
|
<entry name="2500" value="2500"/>
|
|
<entry name="2750" value="2750"/>
|
|
<entry name="3000" value="3000"/>
|
|
<entry name="3500" value="3500"/>
|
|
<entry name="4000" value="4000"/>
|
|
<entry name="4500" value="4500"/>
|
|
<entry name="5000" value="5000"/>
|
|
</enum>
|
|
<event name="scale" since="2">
|
|
<description summary="advertise available scales for the output">
|
|
The scale event describes an available scale for the output.
|
|
The event is sent when binding to the output object and there
|
|
will always be one scale, the current scale. The event is sent
|
|
again if an output changes scale, for the scale that is now
|
|
current. In other words, the current scale is always the last
|
|
scale that was received with the current flag set.
|
|
</description>
|
|
<arg name="flags" type="uint" enum="scale_property" summary="bitfield of scale flags"/>
|
|
<arg name="scale" type="uint" enum="scale_factor" summary="output scale"/>
|
|
</event>
|
|
<!-- Version 5 additions -->
|
|
<enum name="connection_type">
|
|
<entry name="unknown" value="0"/>
|
|
<entry name="internal" value="1"/>
|
|
</enum>
|
|
<event name="connection" since="5">
|
|
<description summary="advertise connection for the output">
|
|
The connection event describes how the output is connected.
|
|
The event is sent when binding to the output object.
|
|
</description>
|
|
<arg name="connection" type="uint" enum="connection_type" summary="output connection"/>
|
|
</event>
|
|
<event name="device_scale_factor" since="5">
|
|
<description summary="advertise device scale factor for the output">
|
|
This event describes the device specific scale factor for the output.
|
|
The device specific scale factor is not expected the change during
|
|
the lifetime of the output. And it is not limited to an integer value
|
|
like the scale factor provided by wl_output interface. The exact
|
|
contents scale used by the compositor can be determined by combining
|
|
this device scale factor with the current output scale.
|
|
The event is sent when binding to the output object.
|
|
</description>
|
|
<arg name="scale" type="uint" enum="scale_factor" summary="output device scale factor"/>
|
|
</event>
|
|
</interface>
|
|
</protocol>
|