rusty_snek_gaem/target/doc/glutin/struct.EventsLoop.html
2018-10-28 21:14:05 -05:00

32 lines
17 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 `EventsLoop` struct in crate `glutin`."><meta name="keywords" content="rust, rustlang, rust-lang, EventsLoop"><title>glutin::EventsLoop - 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></head><body class="rustdoc struct"><!--[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">&#9776;</div><p class='location'>Struct EventsLoop</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.get_available_monitors">get_available_monitors</a><a href="#method.get_primary_monitor">get_primary_monitor</a><a href="#method.poll_events">poll_events</a><a href="#method.run_forever">run_forever</a><a href="#method.create_proxy">create_proxy</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-EventsLoopExt">EventsLoopExt</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a></div></div><p class='location'><a href='index.html'>glutin</a></p><script>window.sidebarCurrent = {name: 'EventsLoop', ty: 'struct', 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"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><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='in-band'>Struct <a href='index.html'>glutin</a>::<wbr><a class="struct" href=''>EventsLoop</a></span><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'>&#x2212;</span>]</a></span><a class='srclink' href='../src/winit/lib.rs.html#182-185' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct EventsLoop { /* fields omitted */ }</pre></div><div class='docblock'><p>Provides a way to retrieve events from the system and from the windows that were registered to
the events loop.</p>
<p>An <code>EventsLoop</code> can be seen more or less as a &quot;context&quot;. Calling <code>EventsLoop::new()</code>
initializes everything that will be required to create windows. For example on Linux creating
an events loop opens a connection to the X or Wayland server.</p>
<p>To wake up an <code>EventsLoop</code> from a another thread, see the <code>EventsLoopProxy</code> docs.</p>
<p>Note that the <code>EventsLoop</code> cannot be shared accross threads (due to platform-dependant logic
forbiding it), as such it is neither <code>Send</code> nor <code>Sync</code>. If you need cross-thread access, the
<code>Window</code> created from this <code>EventsLoop</code> <em>can</em> be sent to an other thread, and the
<code>EventsLoopProxy</code> allows you to wakeup an <code>EventsLoop</code> from an other thread.</p>
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../glutin/struct.EventsLoop.html" title="struct glutin::EventsLoop">EventsLoop</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/lib.rs.html#198-258' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new' class='fnname'>new</a>() -&gt; <a class="struct" href="../glutin/struct.EventsLoop.html" title="struct glutin::EventsLoop">EventsLoop</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/lib.rs.html#205-210' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Builds a new events loop.</p>
<p>Usage will result in display backend initialisation, this can be controlled on linux
using an environment variable <code>WINIT_UNIX_BACKEND</code>. Legal values are <code>x11</code> and <code>wayland</code>.
If it is not set, winit will try to connect to a wayland connection, and if it fails will
fallback on x11. If this variable is set with any other value, winit will panic.</p>
</div><h4 id='method.get_available_monitors' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="struct" href="../glutin/struct.AvailableMonitorsIter.html" title="struct glutin::AvailableMonitorsIter">AvailableMonitorsIter</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="struct" href="../glutin/struct.AvailableMonitorsIter.html" title="struct glutin::AvailableMonitorsIter">AvailableMonitorsIter</a></h3><code class="content"><span class="where fmt-newline">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/iterator/trait.Iterator.html" title="trait core::iter::iterator::Iterator">Iterator</a> for <a class="struct" href="../glutin/struct.AvailableMonitorsIter.html" title="struct glutin::AvailableMonitorsIter">AvailableMonitorsIter</a></span><span class="where fmt-newline"> type <a href='https://doc.rust-lang.org/nightly/core/iter/iterator/trait.Iterator.html#associatedtype.Item' class="type">Item</a> = <a class="struct" href="../glutin/struct.MonitorId.html" title="struct glutin::MonitorId">MonitorId</a>;</span></code></div></div><span id='get_available_monitors.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_available_monitors' class='fnname'>get_available_monitors</a>(&amp;self) -&gt; <a class="struct" href="../glutin/struct.AvailableMonitorsIter.html" title="struct glutin::AvailableMonitorsIter">AvailableMonitorsIter</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/lib.rs.html#216-219' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the list of all the monitors available on the system.</p>
</div><h4 id='method.get_primary_monitor' class="method"><span id='get_primary_monitor.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_primary_monitor' class='fnname'>get_primary_monitor</a>(&amp;self) -&gt; <a class="struct" href="../glutin/struct.MonitorId.html" title="struct glutin::MonitorId">MonitorId</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/lib.rs.html#223-225' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the primary monitor of the system.</p>
</div><h4 id='method.poll_events' class="method"><span id='poll_events.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.poll_events' class='fnname'>poll_events</a>&lt;F&gt;(&amp;mut self, callback: F) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="enum" href="../glutin/enum.Event.html" title="enum glutin::Event">Event</a>),&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/lib.rs.html#230-234' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Fetches all the events that are pending, calls the callback function for each of them,
and returns.</p>
</div><h4 id='method.run_forever' class="method"><span id='run_forever.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.run_forever' class='fnname'>run_forever</a>&lt;F&gt;(&amp;mut self, callback: F) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="enum" href="../glutin/enum.Event.html" title="enum glutin::Event">Event</a>) -&gt; <a class="enum" href="../glutin/enum.ControlFlow.html" title="enum glutin::ControlFlow">ControlFlow</a>,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/lib.rs.html#245-249' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Calls <code>callback</code> every time an event is received. If no event is available, sleeps the
current thread and waits for an event. If the callback returns <code>ControlFlow::Break</code> then
<code>run_forever</code> will immediately return.</p>
<h1 id="danger" class="section-header"><a href="#danger">Danger!</a></h1>
<p>The callback is run after <em>every</em> event, so if its execution time is non-trivial the event queue may not empty
at a sufficient rate. Rendering in the callback with vsync enabled <strong>will</strong> cause significant lag.</p>
</div><h4 id='method.create_proxy' class="method"><span id='create_proxy.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.create_proxy' class='fnname'>create_proxy</a>(&amp;self) -&gt; <a class="struct" href="../glutin/struct.EventsLoopProxy.html" title="struct glutin::EventsLoopProxy">EventsLoopProxy</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/lib.rs.html#253-257' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Creates an <code>EventsLoopProxy</code> that can be used to wake up the <code>EventsLoop</code> from another
thread.</p>
</div></div><h2 id='implementations' class='small-section-header'>Trait Implementations<a href='#implementations' class='anchor'></a></h2><div id='implementations-list'><h3 id='impl-EventsLoopExt' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="../glutin/os/unix/trait.EventsLoopExt.html" title="trait glutin::os::unix::EventsLoopExt">EventsLoopExt</a> for <a class="struct" href="../glutin/struct.EventsLoop.html" title="struct glutin::EventsLoop">EventsLoop</a></code><a href='#impl-EventsLoopExt' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/os/unix.rs.html#48-85' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new_x11' class="method"><span id='new_x11.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='../glutin/os/unix/trait.EventsLoopExt.html#tymethod.new_x11' class='fnname'>new_x11</a>() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../glutin/struct.EventsLoop.html" title="struct glutin::EventsLoop">EventsLoop</a>, <a class="enum" href="../glutin/os/unix/enum.XNotSupported.html" title="enum glutin::os::unix::XNotSupported">XNotSupported</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/os/unix.rs.html#50-57' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Builds a new <code>EventsLoop</code> that is forced to use X11.</p>
</div><h4 id='method.new_wayland' class="method"><span id='new_wayland.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='../glutin/os/unix/trait.EventsLoopExt.html#tymethod.new_wayland' class='fnname'>new_wayland</a>() -&gt; <a class="struct" href="../glutin/struct.EventsLoop.html" title="struct glutin::EventsLoop">EventsLoop</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/os/unix.rs.html#60-68' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Builds a new <code>EventsLoop</code> that is forced to use Wayland.</p>
</div><h4 id='method.is_wayland' class="method"><span id='is_wayland.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='../glutin/os/unix/trait.EventsLoopExt.html#tymethod.is_wayland' class='fnname'>is_wayland</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/os/unix.rs.html#71-73' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>True if the <code>EventsLoop</code> uses Wayland.</p>
</div><h4 id='method.is_x11' class="method"><span id='is_x11.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='../glutin/os/unix/trait.EventsLoopExt.html#tymethod.is_x11' class='fnname'>is_x11</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/winit/os/unix.rs.html#76-78' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>True if the <code>EventsLoop</code> uses X11.</p>
</div></div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-Send' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../glutin/struct.EventsLoop.html" title="struct glutin::EventsLoop">EventsLoop</a></code><a href='#impl-Send' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../glutin/struct.EventsLoop.html" title="struct glutin::EventsLoop">EventsLoop</a></code><a href='#impl-Sync' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div></div></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>&#9166;</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 = "glutin";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>