|
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `RequestsTrait` trait in crate `wayland_client`."><meta name="keywords" content="rust, rustlang, rust-lang, RequestsTrait"><title>wayland_client::protocol::wl_surface::RequestsTrait - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../../wayland_client/index.html'><div class='logo-container'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Trait RequestsTrait</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.attach">attach</a><a href="#tymethod.commit">commit</a><a href="#tymethod.damage">damage</a><a href="#tymethod.damage_buffer">damage_buffer</a><a href="#tymethod.destroy">destroy</a><a href="#tymethod.frame">frame</a><a href="#tymethod.set_buffer_scale">set_buffer_scale</a><a href="#tymethod.set_buffer_transform">set_buffer_transform</a><a href="#tymethod.set_input_region">set_input_region</a><a href="#tymethod.set_opaque_region">set_opaque_region</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class='location'><a href='../../index.html'>wayland_client</a>::<wbr><a href='../index.html'>protocol</a>::<wbr><a href='index.html'>wl_surface</a></p><script>window.sidebarCurrent = {name: 'RequestsTrait', ty: 'trait', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></span><span class='in-band'>Trait <a href='../../index.html'>wayland_client</a>::<wbr><a href='../index.html'>protocol</a>::<wbr><a href='index.html'>wl_surface</a>::<wbr><a class="trait" href=''>RequestsTrait</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust trait'>pub trait RequestsTrait {
|
|
|
fn <a href='#tymethod.destroy' class='fnname'>destroy</a>(&self);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.attach' class='fnname'>attach</a>(&self, buffer: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_buffer/struct.WlBuffer.html" title="struct wayland_client::protocol::wl_buffer::WlBuffer">WlBuffer</a>>>, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.damage' class='fnname'>damage</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.frame' class='fnname'>frame</a><F>(&self, implementor: F) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>><br> <span class="where">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" href="../../../wayland_client/struct.NewProxy.html" title="struct wayland_client::NewProxy">NewProxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>) -> <a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>></span>;
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.set_opaque_region' class='fnname'>set_opaque_region</a>(&self, region: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_region/struct.WlRegion.html" title="struct wayland_client::protocol::wl_region::WlRegion">WlRegion</a>>>);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.set_input_region' class='fnname'>set_input_region</a>(&self, region: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_region/struct.WlRegion.html" title="struct wayland_client::protocol::wl_region::WlRegion">WlRegion</a>>>);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.commit' class='fnname'>commit</a>(&self);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.set_buffer_transform' class='fnname'>set_buffer_transform</a>(&self, transform: <a class="enum" href="../../../wayland_client/protocol/wl_output/enum.Transform.html" title="enum wayland_client::protocol::wl_output::Transform">Transform</a>);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.set_buffer_scale' class='fnname'>set_buffer_scale</a>(&self, scale: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>);
|
|
|
<div class='item-spacer'></div> fn <a href='#tymethod.damage_buffer' class='fnname'>damage_buffer</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>);
|
|
|
}</pre></div>
|
|
|
<h2 id='required-methods' class='small-section-header'>Required methods<a href='#required-methods' class='anchor'></a></h2><div class='methods'><h3 id='tymethod.destroy' class='method'><code id='destroy.v'>fn <a href='#tymethod.destroy' class='fnname'>destroy</a>(&self)</code></h3><div class='docblock'><p>delete surface</p>
|
|
|
<p>Deletes the surface and invalidates its object ID.</p>
|
|
|
<p>This is a destructor, you cannot send requests to this object any longer once this method is called.</p>
|
|
|
</div><h3 id='tymethod.attach' class='method'><code id='attach.v'>fn <a href='#tymethod.attach' class='fnname'>attach</a>(&self, buffer: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_buffer/struct.WlBuffer.html" title="struct wayland_client::protocol::wl_buffer::WlBuffer">WlBuffer</a>>>, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code></h3><div class='docblock'><p>set the surface contents</p>
|
|
|
<p>Set a buffer as the content of this surface.</p>
|
|
|
<p>The new size of the surface is calculated based on the buffer
|
|
|
size transformed by the inverse buffer_transform and the
|
|
|
inverse buffer_scale. This means that the supplied buffer
|
|
|
must be an integer multiple of the buffer_scale.</p>
|
|
|
<p>The x and y arguments specify the location of the new pending
|
|
|
buffer's upper left corner, relative to the current buffer's upper
|
|
|
left corner, in surface-local coordinates. In other words, the
|
|
|
x and y, combined with the new surface size define in which
|
|
|
directions the surface's size changes.</p>
|
|
|
<p>Surface contents are double-buffered state, see wl_surface.commit.</p>
|
|
|
<p>The initial surface contents are void; there is no content.
|
|
|
wl_surface.attach assigns the given wl_buffer as the pending
|
|
|
wl_buffer. wl_surface.commit makes the pending wl_buffer the new
|
|
|
surface contents, and the size of the surface becomes the size
|
|
|
calculated from the wl_buffer, as described above. After commit,
|
|
|
there is no pending buffer until the next attach.</p>
|
|
|
<p>Committing a pending wl_buffer allows the compositor to read the
|
|
|
pixels in the wl_buffer. The compositor may access the pixels at
|
|
|
any time after the wl_surface.commit request. When the compositor
|
|
|
will not access the pixels anymore, it will send the
|
|
|
wl_buffer.release event. Only after receiving wl_buffer.release,
|
|
|
the client may reuse the wl_buffer. A wl_buffer that has been
|
|
|
attached and then replaced by another attach instead of committed
|
|
|
will not receive a release event, and is not used by the
|
|
|
compositor.</p>
|
|
|
<p>Destroying the wl_buffer after wl_buffer.release does not change
|
|
|
the surface contents. However, if the client destroys the
|
|
|
wl_buffer before receiving the wl_buffer.release event, the surface
|
|
|
contents become undefined immediately.</p>
|
|
|
<p>If wl_surface.attach is sent with a NULL wl_buffer, the
|
|
|
following wl_surface.commit will remove the surface content.</p>
|
|
|
</div><h3 id='tymethod.damage' class='method'><code id='damage.v'>fn <a href='#tymethod.damage' class='fnname'>damage</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code></h3><div class='docblock'><p>mark part of the surface damaged</p>
|
|
|
<p>This request is used to describe the regions where the pending
|
|
|
buffer is different from the current surface contents, and where
|
|
|
the surface therefore needs to be repainted. The compositor
|
|
|
ignores the parts of the damage that fall outside of the surface.</p>
|
|
|
<p>Damage is double-buffered state, see wl_surface.commit.</p>
|
|
|
<p>The damage rectangle is specified in surface-local coordinates,
|
|
|
where x and y specify the upper left corner of the damage rectangle.</p>
|
|
|
<p>The initial value for pending damage is empty: no damage.
|
|
|
wl_surface.damage adds pending damage: the new pending damage
|
|
|
is the union of old pending damage and the given rectangle.</p>
|
|
|
<p>wl_surface.commit assigns pending damage as the current damage,
|
|
|
and clears pending damage. The server will clear the current
|
|
|
damage as it repaints the surface.</p>
|
|
|
<p>Alternatively, damage can be posted with wl_surface.damage_buffer
|
|
|
which uses buffer coordinates instead of surface coordinates,
|
|
|
and is probably the preferred and intuitive way of doing this.</p>
|
|
|
</div><h3 id='tymethod.frame' class='method'><code id='frame.v'>fn <a href='#tymethod.frame' class='fnname'>frame</a><F>(&self, implementor: F) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>> <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" href="../../../wayland_client/struct.NewProxy.html" title="struct wayland_client::NewProxy">NewProxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>) -> <a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>, </span></code></h3><div class='docblock'><p>request a frame throttling hint</p>
|
|
|
<p>Request a notification when it is a good time to start drawing a new
|
|
|
frame, by creating a frame callback. This is useful for throttling
|
|
|
redrawing operations, and driving animations.</p>
|
|
|
<p>When a client is animating on a wl_surface, it can use the 'frame'
|
|
|
request to get notified when it is a good time to draw and commit the
|
|
|
next frame of animation. If the client commits an update earlier than
|
|
|
that, it is likely that some updates will not make it to the display,
|
|
|
and the client is wasting resources by drawing too often.</p>
|
|
|
<p>The frame request will take effect on the next wl_surface.commit.
|
|
|
The notification will only be posted for one frame unless
|
|
|
requested again. For a wl_surface, the notifications are posted in
|
|
|
the order the frame requests were committed.</p>
|
|
|
<p>The server must send the notifications so that a client
|
|
|
will not send excessive updates, while still allowing
|
|
|
the highest possible update rate for clients that wait for the reply
|
|
|
before drawing again. The server should give some time for the client
|
|
|
to draw and commit after sending the frame callback events to let it
|
|
|
hit the next output refresh.</p>
|
|
|
<p>A server should avoid signaling the frame callbacks if the
|
|
|
surface is not visible in any way, e.g. the surface is off-screen,
|
|
|
or completely obscured by other opaque surfaces.</p>
|
|
|
<p>The object returned by this request will be destroyed by the
|
|
|
compositor after the callback is fired and as such the client must not
|
|
|
attempt to use it after that point.</p>
|
|
|
<p>The callback_data passed in the callback is the current time, in
|
|
|
milliseconds, with an undefined base.</p>
|
|
|
</div><h3 id='tymethod.set_opaque_region' class='method'><code id='set_opaque_region.v'>fn <a href='#tymethod.set_opaque_region' class='fnname'>set_opaque_region</a>(&self, region: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_region/struct.WlRegion.html" title="struct wayland_client::protocol::wl_region::WlRegion">WlRegion</a>>>)</code></h3><div class='docblock'><p>set opaque region</p>
|
|
|
<p>This request sets the region of the surface that contains
|
|
|
opaque content.</p>
|
|
|
<p>The opaque region is an optimization hint for the compositor
|
|
|
that lets it optimize the redrawing of content behind opaque
|
|
|
regions. Setting an opaque region is not required for correct
|
|
|
behaviour, but marking transparent content as opaque will result
|
|
|
in repaint artifacts.</p>
|
|
|
<p>The opaque region is specified in surface-local coordinates.</p>
|
|
|
<p>The compositor ignores the parts of the opaque region that fall
|
|
|
outside of the surface.</p>
|
|
|
<p>Opaque region is double-buffered state, see wl_surface.commit.</p>
|
|
|
<p>wl_surface.set_opaque_region changes the pending opaque region.
|
|
|
wl_surface.commit copies the pending region to the current region.
|
|
|
Otherwise, the pending and current regions are never changed.</p>
|
|
|
<p>The initial value for an opaque region is empty. Setting the pending
|
|
|
opaque region has copy semantics, and the wl_region object can be
|
|
|
destroyed immediately. A NULL wl_region causes the pending opaque
|
|
|
region to be set to empty.</p>
|
|
|
</div><h3 id='tymethod.set_input_region' class='method'><code id='set_input_region.v'>fn <a href='#tymethod.set_input_region' class='fnname'>set_input_region</a>(&self, region: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_region/struct.WlRegion.html" title="struct wayland_client::protocol::wl_region::WlRegion">WlRegion</a>>>)</code></h3><div class='docblock'><p>set input region</p>
|
|
|
<p>This request sets the region of the surface that can receive
|
|
|
pointer and touch events.</p>
|
|
|
<p>Input events happening outside of this region will try the next
|
|
|
surface in the server surface stack. The compositor ignores the
|
|
|
parts of the input region that fall outside of the surface.</p>
|
|
|
<p>The input region is specified in surface-local coordinates.</p>
|
|
|
<p>Input region is double-buffered state, see wl_surface.commit.</p>
|
|
|
<p>wl_surface.set_input_region changes the pending input region.
|
|
|
wl_surface.commit copies the pending region to the current region.
|
|
|
Otherwise the pending and current regions are never changed,
|
|
|
except cursor and icon surfaces are special cases, see
|
|
|
wl_pointer.set_cursor and wl_data_device.start_drag.</p>
|
|
|
<p>The initial value for an input region is infinite. That means the
|
|
|
whole surface will accept input. Setting the pending input region
|
|
|
has copy semantics, and the wl_region object can be destroyed
|
|
|
immediately. A NULL wl_region causes the input region to be set
|
|
|
to infinite.</p>
|
|
|
</div><h3 id='tymethod.commit' class='method'><code id='commit.v'>fn <a href='#tymethod.commit' class='fnname'>commit</a>(&self)</code></h3><div class='docblock'><p>commit pending surface state</p>
|
|
|
<p>Surface state (input, opaque, and damage regions, attached buffers,
|
|
|
etc.) is double-buffered. Protocol requests modify the pending state,
|
|
|
as opposed to the current state in use by the compositor. A commit
|
|
|
request atomically applies all pending state, replacing the current
|
|
|
state. After commit, the new pending state is as documented for each
|
|
|
related request.</p>
|
|
|
<p>On commit, a pending wl_buffer is applied first, and all other state
|
|
|
second. This means that all coordinates in double-buffered state are
|
|
|
relative to the new wl_buffer coming into use, except for
|
|
|
wl_surface.attach itself. If there is no pending wl_buffer, the
|
|
|
coordinates are relative to the current surface contents.</p>
|
|
|
<p>All requests that need a commit to become effective are documented
|
|
|
to affect double-buffered state.</p>
|
|
|
<p>Other interfaces may add further double-buffered surface state.</p>
|
|
|
</div><h3 id='tymethod.set_buffer_transform' class='method'><code id='set_buffer_transform.v'>fn <a href='#tymethod.set_buffer_transform' class='fnname'>set_buffer_transform</a>(&self, transform: <a class="enum" href="../../../wayland_client/protocol/wl_output/enum.Transform.html" title="enum wayland_client::protocol::wl_output::Transform">Transform</a>)</code></h3><div class='docblock'><p>sets the buffer transformation</p>
|
|
|
<p>This request sets an optional transformation on how the compositor
|
|
|
interprets the contents of the buffer attached to the surface. The
|
|
|
accepted values for the transform parameter are the values for
|
|
|
wl_output.transform.</p>
|
|
|
<p>Buffer transform is double-buffered state, see wl_surface.commit.</p>
|
|
|
<p>A newly created surface has its buffer transformation set to normal.</p>
|
|
|
<p>wl_surface.set_buffer_transform changes the pending buffer
|
|
|
transformation. wl_surface.commit copies the pending buffer
|
|
|
transformation to the current one. Otherwise, the pending and current
|
|
|
values are never changed.</p>
|
|
|
<p>The purpose of this request is to allow clients to render content
|
|
|
according to the output transform, thus permitting the compositor to
|
|
|
use certain optimizations even if the display is rotated. Using
|
|
|
hardware overlays and scanning out a client buffer for fullscreen
|
|
|
surfaces are examples of such optimizations. Those optimizations are
|
|
|
highly dependent on the compositor implementation, so the use of this
|
|
|
request should be considered on a case-by-case basis.</p>
|
|
|
<p>Note that if the transform value includes 90 or 270 degree rotation,
|
|
|
the width of the buffer will become the surface height and the height
|
|
|
of the buffer will become the surface width.</p>
|
|
|
<p>If transform is not one of the values from the
|
|
|
wl_output.transform enum the invalid_transform protocol error
|
|
|
is raised.</p>
|
|
|
<p>Only available since version 2 of the interface.</p>
|
|
|
</div><h3 id='tymethod.set_buffer_scale' class='method'><code id='set_buffer_scale.v'>fn <a href='#tymethod.set_buffer_scale' class='fnname'>set_buffer_scale</a>(&self, scale: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code></h3><div class='docblock'><p>sets the buffer scaling factor</p>
|
|
|
<p>This request sets an optional scaling factor on how the compositor
|
|
|
interprets the contents of the buffer attached to the window.</p>
|
|
|
<p>Buffer scale is double-buffered state, see wl_surface.commit.</p>
|
|
|
<p>A newly created surface has its buffer scale set to 1.</p>
|
|
|
<p>wl_surface.set_buffer_scale changes the pending buffer scale.
|
|
|
wl_surface.commit copies the pending buffer scale to the current one.
|
|
|
Otherwise, the pending and current values are never changed.</p>
|
|
|
<p>The purpose of this request is to allow clients to supply higher
|
|
|
resolution buffer data for use on high resolution outputs. It is
|
|
|
intended that you pick the same buffer scale as the scale of the
|
|
|
output that the surface is displayed on. This means the compositor
|
|
|
can avoid scaling when rendering the surface on that output.</p>
|
|
|
<p>Note that if the scale is larger than 1, then you have to attach
|
|
|
a buffer that is larger (by a factor of scale in each dimension)
|
|
|
than the desired surface size.</p>
|
|
|
<p>If scale is not positive the invalid_scale protocol error is
|
|
|
raised.</p>
|
|
|
<p>Only available since version 3 of the interface.</p>
|
|
|
</div><h3 id='tymethod.damage_buffer' class='method'><code id='damage_buffer.v'>fn <a href='#tymethod.damage_buffer' class='fnname'>damage_buffer</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code></h3><div class='docblock'><p>mark part of the surface damaged using buffer coordinates</p>
|
|
|
<p>This request is used to describe the regions where the pending
|
|
|
buffer is different from the current surface contents, and where
|
|
|
the surface therefore needs to be repainted. The compositor
|
|
|
ignores the parts of the damage that fall outside of the surface.</p>
|
|
|
<p>Damage is double-buffered state, see wl_surface.commit.</p>
|
|
|
<p>The damage rectangle is specified in buffer coordinates,
|
|
|
where x and y specify the upper left corner of the damage rectangle.</p>
|
|
|
<p>The initial value for pending damage is empty: no damage.
|
|
|
wl_surface.damage_buffer adds pending damage: the new pending
|
|
|
damage is the union of old pending damage and the given rectangle.</p>
|
|
|
<p>wl_surface.commit assigns pending damage as the current damage,
|
|
|
and clears pending damage. The server will clear the current
|
|
|
damage as it repaints the surface.</p>
|
|
|
<p>This request differs from wl_surface.damage in only one way - it
|
|
|
takes damage in buffer coordinates instead of surface-local
|
|
|
coordinates. While this generally is more intuitive than surface
|
|
|
coordinates, it is especially desirable when using wp_viewport
|
|
|
or when a drawing library (like EGL) is unaware of buffer scale
|
|
|
and buffer transform.</p>
|
|
|
<p>Note: Because buffer transformation changes and damage requests may
|
|
|
be interleaved in the protocol stream, it is impossible to determine
|
|
|
the actual mapping between surface and buffer damage until
|
|
|
wl_surface.commit time. Therefore, compositors wishing to take both
|
|
|
kinds of damage into account will have to accumulate damage from the
|
|
|
two requests separately and only transform from one to the other
|
|
|
after receiving the wl_surface.commit.</p>
|
|
|
<p>Only available since version 4 of the interface.</p>
|
|
|
</div></div><span class='loading-content'>Loading content...</span>
|
|
|
<h2 id='implementors' class='small-section-header'>Implementors<a href='#implementors' class='anchor'></a></h2><div class='item-list' id='implementors-list'><h3 id='impl-RequestsTrait' class='impl'><code class='in-band'>impl RequestsTrait for <a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_surface/struct.WlSurface.html" title="struct wayland_client::protocol::wl_surface::WlSurface">WlSurface</a>></code><a href='#impl-RequestsTrait' class='anchor'></a><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.destroy' class="method hidden"><code id='destroy.v-1'>fn <a href='#method.destroy' class='fnname'>destroy</a>(&self)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.attach' class="method hidden"><code id='attach.v-1'>fn <a href='#method.attach' class='fnname'>attach</a>(&self, buffer: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_buffer/struct.WlBuffer.html" title="struct wayland_client::protocol::wl_buffer::WlBuffer">WlBuffer</a>>>, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.damage' class="method hidden"><code id='damage.v-1'>fn <a href='#method.damage' class='fnname'>damage</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.frame' class="method hidden"><code id='frame.v-1'>fn <a href='#method.frame' class='fnname'>frame</a><F>(&self, implementor: F) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>> <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" href="../../../wayland_client/struct.NewProxy.html" title="struct wayland_client::NewProxy">NewProxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>) -> <a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_callback/struct.WlCallback.html" title="struct wayland_client::protocol::wl_callback::WlCallback">WlCallback</a>>, </span></code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.set_opaque_region' class="method hidden"><code id='set_opaque_region.v-1'>fn <a href='#method.set_opaque_region' class='fnname'>set_opaque_region</a>(&self, region: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_region/struct.WlRegion.html" title="struct wayland_client::protocol::wl_region::WlRegion">WlRegion</a>>>)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.set_input_region' class="method hidden"><code id='set_input_region.v-1'>fn <a href='#method.set_input_region' class='fnname'>set_input_region</a>(&self, region: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../../../wayland_client/struct.Proxy.html" title="struct wayland_client::Proxy">Proxy</a><<a class="struct" href="../../../wayland_client/protocol/wl_region/struct.WlRegion.html" title="struct wayland_client::protocol::wl_region::WlRegion">WlRegion</a>>>)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.commit' class="method hidden"><code id='commit.v-1'>fn <a href='#method.commit' class='fnname'>commit</a>(&self)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.set_buffer_transform' class="method hidden"><code id='set_buffer_transform.v-1'>fn <a href='#method.set_buffer_transform' class='fnname'>set_buffer_transform</a>(&self, transform: <a class="enum" href="../../../wayland_client/protocol/wl_output/enum.Transform.html" title="enum wayland_client::protocol::wl_output::Transform">Transform</a>)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.set_buffer_scale' class="method hidden"><code id='set_buffer_scale.v-1'>fn <a href='#method.set_buffer_scale' class='fnname'>set_buffer_scale</a>(&self, scale: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4><h4 id='method.damage_buffer' class="method hidden"><code id='damage_buffer.v-1'>fn <a href='#method.damage_buffer' class='fnname'>damage_buffer</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, y: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>)</code><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></h4></div></div><span class='loading-content'>Loading content...</span><script type="text/javascript">window.inlined_types=new Set([]);</script><script type="text/javascript" async
|
|
|
src="../../../implementors/wayland_client/protocol/wl_surface/trait.RequestsTrait.js">
|
|
|
</script></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd>↑</kbd></dt><dd>Move up in search results</dd><dt><kbd>↓</kbd></dt><dd>Move down in search results</dd><dt><kbd>↹</kbd></dt><dd>Switch tab</dd><dt><kbd>⏎</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "wayland_client";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html> |