mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-04-04 07:15:53 -04:00
protocol: introduce wl_surface.configure
This event atomically applies a group of events configuring a surface. For instance, if a surface jumps from one wl_output to another, the compositor will send the following sequence: - wl_surface.leave(wl_output@1) - wl_surface.enter(wl_output@2) - wl_surface.configure() The client can use the configure event to avoid painting intermediate frames based on partially outdated state. Signed-off-by: Simon Ser <contact@emersion.fr>
This commit is contained in:
parent
355c8e885c
commit
94ef757930
1 changed files with 31 additions and 2 deletions
|
|
@ -187,7 +187,7 @@
|
||||||
</event>
|
</event>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
<interface name="wl_compositor" version="5">
|
<interface name="wl_compositor" version="6">
|
||||||
<description summary="the compositor singleton">
|
<description summary="the compositor singleton">
|
||||||
A compositor. This object is a singleton global. The
|
A compositor. This object is a singleton global. The
|
||||||
compositor is in charge of combining the contents of multiple
|
compositor is in charge of combining the contents of multiple
|
||||||
|
|
@ -1352,7 +1352,7 @@
|
||||||
</event>
|
</event>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
<interface name="wl_surface" version="5">
|
<interface name="wl_surface" version="6">
|
||||||
<description summary="an onscreen surface">
|
<description summary="an onscreen surface">
|
||||||
A surface is a rectangular area that may be displayed on zero
|
A surface is a rectangular area that may be displayed on zero
|
||||||
or more outputs, and shown any number of times at the compositor's
|
or more outputs, and shown any number of times at the compositor's
|
||||||
|
|
@ -1635,6 +1635,9 @@
|
||||||
output.
|
output.
|
||||||
|
|
||||||
Note that a surface may be overlapping with zero or more outputs.
|
Note that a surface may be overlapping with zero or more outputs.
|
||||||
|
|
||||||
|
This event is a part of a wl_surface configuration sequence, see
|
||||||
|
wl_surface.configure.
|
||||||
</description>
|
</description>
|
||||||
<arg name="output" type="object" interface="wl_output" summary="output entered by the surface"/>
|
<arg name="output" type="object" interface="wl_output" summary="output entered by the surface"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
@ -1650,6 +1653,9 @@
|
||||||
has been sent, and the compositor might expect new surface content
|
has been sent, and the compositor might expect new surface content
|
||||||
updates even if no enter event has been sent. The frame event should be
|
updates even if no enter event has been sent. The frame event should be
|
||||||
used instead.
|
used instead.
|
||||||
|
|
||||||
|
This event is a part of a wl_surface configuration sequence, see
|
||||||
|
wl_surface.configure.
|
||||||
</description>
|
</description>
|
||||||
<arg name="output" type="object" interface="wl_output" summary="output left by the surface"/>
|
<arg name="output" type="object" interface="wl_output" summary="output left by the surface"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
@ -1786,6 +1792,26 @@
|
||||||
<arg name="x" type="int" summary="surface-local x coordinate"/>
|
<arg name="x" type="int" summary="surface-local x coordinate"/>
|
||||||
<arg name="y" type="int" summary="surface-local y coordinate"/>
|
<arg name="y" type="int" summary="surface-local y coordinate"/>
|
||||||
</request>
|
</request>
|
||||||
|
|
||||||
|
<!-- Version 6 additions -->
|
||||||
|
|
||||||
|
<event name="configure" since="6">
|
||||||
|
<description summary="end of a surface configuration sequence">
|
||||||
|
The configure event marks the end of a wl_surface configuration
|
||||||
|
sequence. A wl_surface configuration sequence is a set of zero or more
|
||||||
|
events configuring the state of the surface. A wl_surface configuration
|
||||||
|
sequence is started by any event (of any interface) specified to be a
|
||||||
|
part of a wl_surface configuration sequence, and includes any other
|
||||||
|
events specified similarly until the end of the sequence. Clients should
|
||||||
|
wait to receive the whole sequence before they start applying changes to
|
||||||
|
their surfaces.
|
||||||
|
|
||||||
|
Any event that is specified to be a part of wl_surface configuration
|
||||||
|
sequence guarantees that a wl_surface.configure event will follow after
|
||||||
|
all state events for the same sequence have been sent, provided that the
|
||||||
|
negotiated wl_surface interface version is 6 or greater.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
<interface name="wl_seat" version="8">
|
<interface name="wl_seat" version="8">
|
||||||
|
|
@ -2921,6 +2947,9 @@
|
||||||
wl_surface state is applied, regardless of the sub-surface's mode.
|
wl_surface state is applied, regardless of the sub-surface's mode.
|
||||||
As the exception, set_sync and set_desync are effective immediately.
|
As the exception, set_sync and set_desync are effective immediately.
|
||||||
|
|
||||||
|
Compositors must always send a wl_surface.configure event on the parent
|
||||||
|
after sending a wl_surface.configure event on the sub-surface.
|
||||||
|
|
||||||
The main surface can be thought to be always in desynchronized mode,
|
The main surface can be thought to be always in desynchronized mode,
|
||||||
since it does not have a parent in the sub-surfaces sense.
|
since it does not have a parent in the sub-surfaces sense.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue