struct.ImageCmd.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <!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 `ImageCmd` struct in crate `ocl`."><meta name="keywords" content="rust, rustlang, rust-lang, ImageCmd"><title>ocl::builders::ImageCmd - 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 ImageCmd</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.read">read</a><a href="#method.write">write</a><a href="#method.map">map</a><a href="#method.copy">copy</a><a href="#method.copy_to_buffer">copy_to_buffer</a><a href="#method.gl_acquire">gl_acquire</a><a href="#method.gl_release">gl_release</a><a href="#method.fill">fill</a><a href="#method.queue">queue</a><a href="#method.block">block</a><a href="#method.origin">origin</a><a href="#method.region">region</a><a href="#method.pitch_bytes">pitch_bytes</a><a href="#method.ewait">ewait</a><a href="#method.enew">enew</a><a href="#method.enq">enq</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'>ocl</a>::<wbr><a href='index.html'>builders</a></p><script>window.sidebarCurrent = {name: 'ImageCmd', 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'>ocl</a>::<wbr><a href='index.html'>builders</a>::<wbr><a class="struct" href=''>ImageCmd</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/ocl/standard/image.rs.html#75-87' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'><div class="docblock attributes">#[must_use = "commands do nothing unless enqueued"]
  2. </div>pub struct ImageCmd&lt;'c, T:&nbsp;'c&gt; { /* fields omitted */ }</pre></div><div class='docblock'><p>An image command builder for enqueuing reads, writes, fills, and copies.</p>
  3. <h2 id="examples" class="section-header"><a href="#examples">Examples</a></h2>
  4. <div class='information'><div class='tooltip ignore'>ⓘ<span class='tooltiptext'>This example is not tested</span></div></div><pre class="rust rust-example-rendered ignore">
  5. <span class="comment">// Copies one image to another:</span>
  6. <span class="ident">src_image</span>.<span class="ident">cmd</span>().<span class="ident">copy</span>(<span class="kw-2">&amp;</span><span class="ident">dst_image</span>, [<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>]).<span class="ident">enq</span>().<span class="ident">unwrap</span>();
  7. <span class="comment">// Writes from a vector to an image, waiting on an event:</span>
  8. <span class="ident">image</span>.<span class="ident">write</span>(<span class="kw-2">&amp;</span><span class="ident">src_vec</span>).<span class="ident">ewait</span>(<span class="kw-2">&amp;</span><span class="ident">event</span>).<span class="ident">enq</span>().<span class="ident">unwrap</span>();
  9. <span class="comment">// Reads from a image into a vector, waiting on an event list and</span>
  10. <span class="comment">// filling a new empty event:</span>
  11. <span class="ident">image</span>.<span class="ident">read</span>(<span class="kw-2">&amp;</span><span class="ident">dst_vec</span>).<span class="ident">ewait</span>(<span class="kw-2">&amp;</span><span class="ident">event_list</span>).<span class="ident">enew</span>(<span class="kw-2">&amp;</span><span class="ident">empty_event</span>).<span class="ident">enq</span>().<span class="ident">unwrap</span>();
  12. <span class="comment">// Reads without blocking:</span>
  13. <span class="ident">image</span>.<span class="ident">cmd</span>().<span class="ident">read_async</span>(<span class="kw-2">&amp;</span><span class="ident">dst_vec</span>).<span class="ident">enew</span>(<span class="kw-2">&amp;</span><span class="ident">empty_event</span>).<span class="ident">enq</span>().<span class="ident">unwrap</span>();
  14. </pre>
  15. <p>[FIXME]: Fills not yet implemented.</p>
  16. </div>
  17. <h2 id='methods' class='small-section-header'>
  18. Methods<a href='#methods' class='anchor'></a>
  19. </h2>
  20. <h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'c, T:&nbsp;'c + <a class="trait" href="../../ocl/traits/trait.OclPrm.html" title="trait ocl::traits::OclPrm">OclPrm</a>&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#90-464' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='docblock'><p>[UNSTABLE]: All methods still in a state of adjustifulsomeness.</p>
  21. </div><div class='impl-items'><h4 id='method.read' class="method"><span id='read.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.read' class='fnname'>read</a>&lt;'d&gt;(self, dst_data: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'d mut [T]</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'d: 'c,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#125-132' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will be a blocking read operation.</p>
  22. <p>After calling this method, the blocking state of this command will
  23. be locked to true and a call to <code>::block</code> will cause a panic.</p>
  24. <h2 id="panics" class="section-header"><a href="#panics">Panics</a></h2>
  25. <p>The command operation kind must not have already been specified.</p>
  26. <h3 id="more-information" class="section-header"><a href="#more-information">More Information</a></h3>
  27. <p>See <a href="https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/clEnqueueReadImage.html">SDK</a> docs for more details.</p>
  28. </div><h4 id='method.write' class="method"><span id='write.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.write' class='fnname'>write</a>&lt;'d&gt;(self, src_data: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'d [T]</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'d: 'c,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#145-151' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will be a write operation.</p>
  29. <h2 id="panics-1" class="section-header"><a href="#panics-1">Panics</a></h2>
  30. <p>The command operation kind must not have already been specified</p>
  31. <h3 id="more-information-1" class="section-header"><a href="#more-information-1">More Information</a></h3>
  32. <p>See <a href="https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/clEnqueueReadBuffer.html">SDK</a> docs for more details.</p>
  33. </div><h4 id='method.map' class="method"><span id='map.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub unsafe fn <a href='#method.map' class='fnname'>map</a>(self) -&gt; ImageMapCmd&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#172-179' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will be a map operation.</p>
  34. <p>If <code>.block(..)</code> has been set it will be ignored. Non-blocking map
  35. commands are enqueued using <code>::enq_async</code>.</p>
  36. <h2 id="safety" class="section-header"><a href="#safety">Safety</a></h2>
  37. <p>The caller must ensure that only one mapping of a particular memory
  38. region exists at a time.</p>
  39. <h2 id="panics-2" class="section-header"><a href="#panics-2">Panics</a></h2>
  40. <p>The command operation kind must not have already been specified</p>
  41. <h3 id="more-information-2" class="section-header"><a href="#more-information-2">More Information</a></h3>
  42. <p>See <a href="https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/clEnqueueMapImage.html">SDK</a> docs for more details.</p>
  43. </div><h4 id='method.copy' class="method"><span id='copy.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.copy' class='fnname'>copy</a>&lt;'d&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;dst_image: &amp;'d <a class="struct" href="../../ocl/struct.Image.html" title="struct ocl::Image">Image</a>&lt;T&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;dst_origin: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">; 3]</a><br>) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'d: 'c,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#193-202' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will be a copy operation.</p>
  44. <p>If <code>.block(..)</code> has been set it will be ignored.</p>
  45. <h2 id="errors" class="section-header"><a href="#errors">Errors</a></h2>
  46. <p>If this is a rectangular copy, <code>dst_origin</code> and <code>len</code> must be zero.</p>
  47. <h2 id="panics-3" class="section-header"><a href="#panics-3">Panics</a></h2>
  48. <p>The command operation kind must not have already been specified</p>
  49. </div><h4 id='method.copy_to_buffer' class="method"><span id='copy_to_buffer.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.copy_to_buffer' class='fnname'>copy_to_buffer</a>&lt;'d&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;buffer: &amp;'d <a class="struct" href="../../ocl_core/types/abs/struct.Mem.html" title="struct ocl_core::types::abs::Mem">MemCore</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;dst_origin: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'d: 'c,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#212-218' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will be a copy to image.</p>
  50. <p>If <code>.block(..)</code> has been set it will be ignored.</p>
  51. <h2 id="panics-4" class="section-header"><a href="#panics-4">Panics</a></h2>
  52. <p>The command operation kind must not have already been specified</p>
  53. </div><h4 id='method.gl_acquire' class="method"><span id='gl_acquire.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.gl_acquire' class='fnname'>gl_acquire</a>(self) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#228-233' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will acquire a GL buffer.</p>
  54. <p>If <code>.block(..)</code> has been set it will be ignored.</p>
  55. <h2 id="panics-5" class="section-header"><a href="#panics-5">Panics</a></h2>
  56. <p>The command operation kind must not have already been specified</p>
  57. </div><h4 id='method.gl_release' class="method"><span id='gl_release.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.gl_release' class='fnname'>gl_release</a>(self) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#243-248' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will release a GL buffer.</p>
  58. <p>If <code>.block(..)</code> has been set it will be ignored.</p>
  59. <h2 id="panics-6" class="section-header"><a href="#panics-6">Panics</a></h2>
  60. <p>The command operation kind must not have already been specified</p>
  61. </div><h4 id='method.fill' class="method"><span id='fill.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.fill' class='fnname'>fill</a>(self, color: T) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#258-263' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies that this command will be a fill.</p>
  62. <p>If <code>.block(..)</code> has been set it will be ignored.</p>
  63. <h2 id="panics-7" class="section-header"><a href="#panics-7">Panics</a></h2>
  64. <p>The command operation kind must not have already been specified</p>
  65. </div><h4 id='method.queue' class="method"><span id='queue.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.queue' class='fnname'>queue</a>(self, queue: &amp;'c <a class="struct" href="../../ocl/struct.Queue.html" title="struct ocl::Queue">Queue</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#269-272' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies a queue to use for this call only.</p>
  66. <p>Overrides the image's default queue if one is set. If no default queue
  67. is set, this method <strong>must</strong> be called before enqueuing the command.</p>
  68. </div><h4 id='method.block' class="method"><span id='block.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub unsafe fn <a href='#method.block' class='fnname'>block</a>(self, block: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#293-296' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies whether or not to block the current thread until completion.</p>
  69. <p>Ignored if this is not a read or write operation.</p>
  70. <p>Default is <code>block = true</code>.</p>
  71. <h2 id="safety-1" class="section-header"><a href="#safety-1">Safety</a></h2>
  72. <p>When performing non-blocking reads or writes, the caller must ensure
  73. that the data being read from or written to is not accessed improperly
  74. until the command completes. Use events (<code>Event::wait_for</code>) or the
  75. command queue (<code>Queue::finish</code>) to synchronize.</p>
  76. <p>If possible, prefer instead to use <a href="struct.ImageMapCmd.html"><code>::map</code></a> with <a href="struct.ImageMapCmd.html#method.enq_async"><code>::enq_async</code></a> for
  77. optimal performance and data integrity.</p>
  78. </div><h4 id='method.origin' class="method"><span id='origin.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.origin' class='fnname'>origin</a>&lt;D&gt;(self, origin: D) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;D: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../../ocl/enum.SpatialDims.html" title="enum ocl::SpatialDims">SpatialDims</a>&gt;,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#306-310' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Sets the three dimensional offset, the origin point, for an operation.</p>
  79. <p>Defaults to [0, 0, 0] if not set.</p>
  80. <h2 id="panics-8" class="section-header"><a href="#panics-8">Panics</a></h2>
  81. <p>The 'shape' may not have already been set to rectangular by the
  82. <code>::rect</code> function.</p>
  83. </div><h4 id='method.region' class="method"><span id='region.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.region' class='fnname'>region</a>&lt;D&gt;(self, region: D) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;D: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../../ocl/enum.SpatialDims.html" title="enum ocl::SpatialDims">SpatialDims</a>&gt;,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#323-327' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Sets the region size for an operation.</p>
  84. <p>Defaults to the full region size of the image(s) as defined when first
  85. created if not set.</p>
  86. <h2 id="panics-tenative" class="section-header"><a href="#panics-tenative">Panics [TENATIVE]</a></h2>
  87. <p>Panics if the region is out of range on any of the three dimensions.</p>
  88. <p>[FIXME]: Probably delay checking this until enq().</p>
  89. </div><h4 id='method.pitch_bytes' class="method"><span id='pitch_bytes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub unsafe fn <a href='#method.pitch_bytes' class='fnname'>pitch_bytes</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;row_pitch_bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;slc_pitch_bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#340-344' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Sets the row and slice pitch for a read or write operation in bytes.</p>
  90. <p><code>row_pitch_bytes</code>: Must be greater than or equal to the region width
  91. in bytes (region[0] * sizeof(T)).</p>
  92. <p><code>slice_pitch: Must be greater than or equal to</code>row_pitch` * region
  93. height in bytes (region[1] * sizeof(T)).</p>
  94. <p>Only needs to be set if region has been set to something other than
  95. the (default) image buffer size.</p>
  96. </div><h4 id='method.ewait' class="method"><span id='ewait.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.ewait' class='fnname'>ewait</a>&lt;'e, Ewl&gt;(self, ewait: Ewl) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'e: 'c,<br>&nbsp;&nbsp;&nbsp;&nbsp;Ewl: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../../ocl/builders/enum.ClWaitListPtrEnum.html" title="enum ocl::builders::ClWaitListPtrEnum">ClWaitListPtrEnum</a>&lt;'e&gt;&gt;,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#374-378' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies an event or list of events to wait on before the command
  97. will run.</p>
  98. <p>When events generated using the <code>::enew</code> method of <strong>other</strong>,
  99. previously enqueued commands are passed here (either individually or
  100. as part of an <a href="struct.EventList.html"><code>EventList</code></a>), this command will not execute until
  101. those commands have completed.</p>
  102. <p>Using events can compliment the use of queues to order commands by
  103. creating temporal dependencies between them (where commands in one
  104. queue must wait for the completion of commands in another). Events can
  105. also supplant queues altogether when, for example, using out-of-order
  106. queues.</p>
  107. <h1 id="example" class="section-header"><a href="#example">Example</a></h1>
  108. <div class='information'><div class='tooltip ignore'>ⓘ<span class='tooltiptext'>This example is not tested</span></div></div><pre class="rust rust-example-rendered ignore">
  109. <span class="comment">// Create an event list:</span>
  110. <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">event_list</span> <span class="op">=</span> <span class="ident">EventList</span>::<span class="ident">new</span>();
  111. <span class="comment">// Enqueue a kernel on `queue_1`, creating an event representing the kernel</span>
  112. <span class="comment">// command in our list:</span>
  113. <span class="ident">kernel</span>.<span class="ident">cmd</span>().<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_1</span>).<span class="ident">enew</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">event_list</span>).<span class="ident">enq</span>()<span class="question-mark">?</span>;
  114. <span class="comment">// Read from a buffer using `queue_2`, ensuring the read does not begin until</span>
  115. <span class="comment">// after the kernel command has completed:</span>
  116. <span class="ident">buffer</span>.<span class="ident">read</span>(<span class="ident">rwvec</span>.<span class="ident">clone</span>()).<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_2</span>).<span class="ident">ewait</span>(<span class="kw-2">&amp;</span><span class="ident">event_list</span>).<span class="ident">enq_async</span>()<span class="question-mark">?</span>;</pre>
  117. </div><h4 id='method.enew' class="method"><span id='enew.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.enew' class='fnname'>enew</a>&lt;'e, En&gt;(self, enew: En) -&gt; <a class="struct" href="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;'e: 'c,<br>&nbsp;&nbsp;&nbsp;&nbsp;En: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../../ocl/builders/enum.ClNullEventPtrEnum.html" title="enum ocl::builders::ClNullEventPtrEnum">ClNullEventPtrEnum</a>&lt;'e&gt;&gt;,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#411-415' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Specifies the destination to store a new, optionally created event
  118. associated with this command.</p>
  119. <p>The destination can be a mutable reference to an empty event (created
  120. using <a href="struct.Event.html#method.empty"><code>Event::empty</code></a>) or a mutable reference to an event list.</p>
  121. <p>After this command is enqueued, the event in the destination can be
  122. passed to the <code>::ewait</code> method of another command. Doing so will cause
  123. the other command to wait until this command has completed before
  124. executing.</p>
  125. <p>Using events can compliment the use of queues to order commands by
  126. creating temporal dependencies between them (where commands in one
  127. queue must wait for the completion of commands in another). Events can
  128. also supplant queues altogether when, for example, using out-of-order
  129. queues.</p>
  130. <h1 id="example-1" class="section-header"><a href="#example-1">Example</a></h1>
  131. <div class='information'><div class='tooltip ignore'>ⓘ<span class='tooltiptext'>This example is not tested</span></div></div><pre class="rust rust-example-rendered ignore">
  132. <span class="comment">// Create an event list:</span>
  133. <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">event</span> <span class="op">=</span> <span class="ident">Event</span>::<span class="ident">empty</span>();
  134. <span class="comment">// Enqueue a kernel on `queue_1`, creating an event representing the kernel</span>
  135. <span class="comment">// command in our list:</span>
  136. <span class="ident">kernel</span>.<span class="ident">cmd</span>().<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_1</span>).<span class="ident">enew</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">event</span>).<span class="ident">enq</span>()<span class="question-mark">?</span>;
  137. <span class="comment">// Read from a buffer using `queue_2`, ensuring the read does not begin until</span>
  138. <span class="comment">// after the kernel command has completed:</span>
  139. <span class="ident">buffer</span>.<span class="ident">read</span>(<span class="ident">rwvec</span>.<span class="ident">clone</span>()).<span class="ident">queue</span>(<span class="kw-2">&amp;</span><span class="ident">queue_2</span>).<span class="ident">ewait</span>(<span class="kw-2">&amp;</span><span class="ident">event</span>).<span class="ident">enq_async</span>()<span class="question-mark">?</span>;</pre>
  140. </div><h4 id='method.enq' class="method"><span id='enq.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.enq' class='fnname'>enq</a>(self) -&gt; <a class="type" href="../../ocl_core/error/type.Result.html" title="type ocl_core::error::Result">OclCoreResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/ocl/standard/image.rs.html#421-463' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Enqueues this command.</p>
  141. <ul>
  142. <li>TODO: FOR COPY, FILL, AND COPYTOBUFFER -- ENSURE PITCHES ARE BOTH
  143. UNSET.</li>
  144. </ul>
  145. </div></div>
  146. <h2 id='synthetic-implementations' class='small-section-header'>
  147. Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>
  148. </h2>
  149. <div id='synthetic-implementations-list'>
  150. <h3 id='impl-Send' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'c, T&gt; !<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="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</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&lt;'c, T&gt; !<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="../../ocl/builders/struct.ImageCmd.html" title="struct ocl::builders::ImageCmd">ImageCmd</a>&lt;'c, T&gt;</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 = "ocl";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>