documenting
This commit is contained in:
@@ -153,6 +153,33 @@
|
||||
<span id="153">153</span>
|
||||
<span id="154">154</span>
|
||||
<span id="155">155</span>
|
||||
<span id="156">156</span>
|
||||
<span id="157">157</span>
|
||||
<span id="158">158</span>
|
||||
<span id="159">159</span>
|
||||
<span id="160">160</span>
|
||||
<span id="161">161</span>
|
||||
<span id="162">162</span>
|
||||
<span id="163">163</span>
|
||||
<span id="164">164</span>
|
||||
<span id="165">165</span>
|
||||
<span id="166">166</span>
|
||||
<span id="167">167</span>
|
||||
<span id="168">168</span>
|
||||
<span id="169">169</span>
|
||||
<span id="170">170</span>
|
||||
<span id="171">171</span>
|
||||
<span id="172">172</span>
|
||||
<span id="173">173</span>
|
||||
<span id="174">174</span>
|
||||
<span id="175">175</span>
|
||||
<span id="176">176</span>
|
||||
<span id="177">177</span>
|
||||
<span id="178">178</span>
|
||||
<span id="179">179</span>
|
||||
<span id="180">180</span>
|
||||
<span id="181">181</span>
|
||||
<span id="182">182</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="kw">use</span> <span class="ident">vulkano</span>::<span class="ident">pipeline</span>::<span class="ident">vertex</span>::{<span class="ident">VertexDefinition</span>, <span class="ident">InputRate</span>, <span class="ident">AttributeInfo</span>, <span class="ident">IncompatibleVertexDefinitionError</span>, <span class="ident">VertexSource</span>, <span class="ident">VertexMemberInfo</span>, <span class="ident">VertexMemberTy</span>};
|
||||
<span class="kw">use</span> <span class="ident">vulkano</span>::<span class="ident">pipeline</span>::<span class="ident">shader</span>::<span class="ident">ShaderInterfaceDef</span>;
|
||||
@@ -160,6 +187,7 @@
|
||||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">sync</span>::<span class="ident">Arc</span>;
|
||||
<span class="kw">use</span> <span class="ident">cgmath</span>::<span class="ident">num_traits</span>::<span class="ident">real</span>::<span class="ident">Real</span>;
|
||||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">vec</span>::<span class="ident">IntoIter</span> <span class="kw">as</span> <span class="ident">VecIntoIter</span>;
|
||||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
|
||||
|
||||
<span class="doccomment">/// Runtime Vertex def is just a generic holder of "dynamic vertex definitions"</span>
|
||||
<span class="comment">// This baby needs to be able to be copied....</span>
|
||||
@@ -187,7 +215,7 @@
|
||||
<span class="comment">// https://github.com/tomaka/vulkano-examples/blob/gltf/gltf/gltf_system.rs</span>
|
||||
|
||||
|
||||
|
||||
<span class="ident">num_vertices</span> <span class="op">=</span> <span class="number">3</span>;
|
||||
|
||||
|
||||
<span class="comment">// for (attribute_id, attribute) in primitive.attributes().enumerate() {</span>
|
||||
@@ -267,32 +295,58 @@
|
||||
|
||||
<span class="kw">let</span> <span class="ident">buffers_iter</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">buffers</span>.<span class="ident">clone</span>().<span class="ident">into_iter</span>();
|
||||
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">attribs_iter</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">attributes</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="kw-2">&</span>(<span class="kw-2">ref</span> <span class="ident">name</span>, <span class="ident">buffer_id</span>, <span class="kw-2">ref</span> <span class="ident">infos</span>)<span class="op">|</span> {
|
||||
<span class="kw">let</span> <span class="ident">attrib_loc</span> <span class="op">=</span> <span class="ident">interface</span>
|
||||
.<span class="ident">elements</span>()
|
||||
.<span class="ident">find</span>(<span class="op">|</span><span class="ident">e</span><span class="op">|</span> <span class="ident">e</span>.<span class="ident">name</span>.<span class="ident">as_ref</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">n</span><span class="op">|</span> <span class="kw-2">&</span><span class="ident">n</span>[..]) <span class="op">=</span><span class="op">=</span> <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="ident">name</span>[..]))
|
||||
.<span class="ident">unwrap</span>()
|
||||
.<span class="ident">location</span>.<span class="ident">start</span>;
|
||||
(<span class="ident">attrib_loc</span> <span class="kw">as</span> <span class="ident">u32</span>, <span class="ident">buffer_id</span>, <span class="ident">AttributeInfo</span> { <span class="ident">offset</span>: <span class="ident">infos</span>.<span class="ident">offset</span>, <span class="ident">format</span>: <span class="ident">infos</span>.<span class="ident">format</span> })
|
||||
}).<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span>();
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">attributes</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">default</span>();
|
||||
|
||||
<span class="comment">// Add dummy attributes.</span>
|
||||
<span class="comment">// Binding is</span>
|
||||
<span class="kw">for</span> <span class="ident">input</span> <span class="kw">in</span> <span class="ident">interface</span>.<span class="ident">elements</span>() {
|
||||
|
||||
<span class="ident">attributes</span>.<span class="ident">push</span>((
|
||||
<span class="ident">input</span>.<span class="ident">location</span>.<span class="ident">start</span> <span class="kw">as</span> <span class="ident">u32</span>,
|
||||
<span class="ident">input</span>.<span class="ident">location</span>.<span class="ident">start</span> <span class="kw">as</span> <span class="ident">u32</span>,
|
||||
<span class="ident">AttributeInfo</span> { <span class="ident">offset</span>: <span class="number">0</span>, <span class="ident">format</span>: <span class="ident">input</span>.<span class="ident">format</span> }
|
||||
));
|
||||
|
||||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{:?}"</span>, <span class="ident">input</span>.<span class="ident">location</span>);
|
||||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{:?}"</span>, <span class="ident">input</span>.<span class="ident">format</span>);
|
||||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{:?}"</span>, <span class="ident">input</span>.<span class="ident">name</span>);
|
||||
}
|
||||
|
||||
<span class="comment">// let mut attribs_iter = self.attributes.iter().map(|&(ref name, buffer_id, ref infos)| {</span>
|
||||
<span class="comment">// let attrib_loc = interface</span>
|
||||
<span class="comment">// .elements()</span>
|
||||
<span class="comment">// .find(|e| e.name.as_ref().map(|n| &n[..]) == Some(&name[..]))</span>
|
||||
<span class="comment">// .unwrap()</span>
|
||||
<span class="comment">// .location.start;</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="comment">// (</span>
|
||||
<span class="comment">// attrib_loc as u32,</span>
|
||||
<span class="comment">// buffer_id,</span>
|
||||
<span class="comment">// AttributeInfo { offset: infos.offset, format: infos.format }</span>
|
||||
<span class="comment">// )</span>
|
||||
<span class="comment">// }).collect::<Vec<_>>();</span>
|
||||
|
||||
|
||||
<span class="comment">// This does nothing?</span>
|
||||
<span class="kw">for</span> <span class="ident">binding</span> <span class="kw">in</span> <span class="ident">interface</span>.<span class="ident">elements</span>() {
|
||||
<span class="kw">if</span> <span class="ident">attribs_iter</span>.<span class="ident">iter</span>().<span class="ident">any</span>(<span class="op">|</span><span class="ident">a</span><span class="op">|</span> <span class="ident">a</span>.<span class="number">0</span> <span class="op">=</span><span class="op">=</span> <span class="ident">binding</span>.<span class="ident">location</span>.<span class="ident">start</span>) {
|
||||
<span class="kw">if</span> <span class="ident">attributes</span>.<span class="ident">iter</span>().<span class="ident">any</span>(<span class="op">|</span><span class="ident">a</span><span class="op">|</span> <span class="ident">a</span>.<span class="number">0</span> <span class="op">=</span><span class="op">=</span> <span class="ident">binding</span>.<span class="ident">location</span>.<span class="ident">start</span>) {
|
||||
<span class="kw">continue</span>;
|
||||
}
|
||||
|
||||
<span class="ident">attribs_iter</span>.<span class="ident">push</span>((<span class="ident">binding</span>.<span class="ident">location</span>.<span class="ident">start</span>, <span class="number">0</span>,
|
||||
<span class="ident">attributes</span>.<span class="ident">push</span>((<span class="ident">binding</span>.<span class="ident">location</span>.<span class="ident">start</span>, <span class="number">0</span>,
|
||||
<span class="ident">AttributeInfo</span> { <span class="ident">offset</span>: <span class="number">0</span>, <span class="ident">format</span>: <span class="ident">binding</span>.<span class="ident">format</span> }));
|
||||
}
|
||||
|
||||
<span class="comment">// let buffers = vec![</span>
|
||||
<span class="comment">// (0, mem::size_of::<T>(), InputRate::Vertex),</span>
|
||||
<span class="comment">// (1, mem::size_of::<U>(), InputRate::Instance),</span>
|
||||
<span class="comment">// ].into_iter();</span>
|
||||
<span class="comment">// The number of actually bound inputs</span>
|
||||
<span class="kw">let</span> <span class="ident">buffers</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[
|
||||
(<span class="number">0</span>, <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(), <span class="ident">InputRate</span>::<span class="ident">Vertex</span>),
|
||||
(<span class="number">1</span>, <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(), <span class="ident">InputRate</span>::<span class="ident">Vertex</span>),
|
||||
(<span class="number">2</span>, <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(), <span class="ident">InputRate</span>::<span class="ident">Vertex</span>),
|
||||
(<span class="number">3</span>, <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(), <span class="ident">InputRate</span>::<span class="ident">Vertex</span>),
|
||||
(<span class="number">4</span>, <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(), <span class="ident">InputRate</span>::<span class="ident">Vertex</span>),
|
||||
(<span class="number">5</span>, <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(), <span class="ident">InputRate</span>::<span class="ident">Vertex</span>),
|
||||
(<span class="number">6</span>, <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op"><</span><span class="ident">i32</span><span class="op">></span>(), <span class="ident">InputRate</span>::<span class="ident">Vertex</span>),
|
||||
].<span class="ident">into_iter</span>();
|
||||
|
||||
<span class="prelude-val">Ok</span>((<span class="ident">buffers_iter</span>, <span class="ident">attribs_iter</span>.<span class="ident">into_iter</span>()))
|
||||
<span class="prelude-val">Ok</span>((<span class="ident">buffers</span>, <span class="ident">attributes</span>.<span class="ident">into_iter</span>()))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,5 +362,6 @@
|
||||
<span class="number">1</span> <span class="comment">// Number of instances</span>
|
||||
)
|
||||
}
|
||||
}</pre></div>
|
||||
}
|
||||
</pre></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>⏎</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 = "sfml_rust";</script><script src="../../../../aliases.js"></script><script src="../../../../main.js"></script><script src="../../../../source-script.js"></script><script src="../../../../source-files.js"></script><script defer src="../../../../search-index.js"></script></body></html>
|
||||
Reference in New Issue
Block a user