|
181 | 181 | <a href="#180" id="180">180</a> |
182 | 182 | <a href="#181" id="181">181</a> |
183 | 183 | <a href="#182" id="182">182</a> |
184 | | -<a href="#183" id="183">183</a> |
185 | | -<a href="#184" id="184">184</a> |
186 | | -<a href="#185" id="185">185</a> |
187 | | -<a href="#186" id="186">186</a> |
188 | | -<a href="#187" id="187">187</a> |
189 | | -<a href="#188" id="188">188</a> |
190 | 184 | </pre></div><pre class="rust"><code><span class="kw">use </span><span class="kw">crate</span>::dispatch; |
191 | 185 | <span class="kw">use crate</span>::{Buffer, Label}; |
192 | 186 | <span class="kw">use </span>std::sync::Arc; |
|
233 | 227 | /// [TlasPackage]: crate::TlasPackage |
234 | 228 | </span><span class="attr">#[derive(Debug, Clone)] |
235 | 229 | </span><span class="kw">pub struct </span>TlasInstance { |
236 | | - <span class="kw">pub</span>(<span class="kw">crate</span>) blas: Arc<BlasShared>, |
| 230 | + <span class="kw">pub</span>(<span class="kw">crate</span>) blas: Arc<dispatch::DispatchBlas>, |
237 | 231 | <span class="doccomment">/// Affine transform matrix 3x4 (rows x columns, row major order). |
238 | 232 | </span><span class="kw">pub </span>transform: [f32; <span class="number">12</span>], |
239 | 233 | <span class="doccomment">/// Custom index for the instance used inside the shader. |
|
260 | 254 | /// generate a validation error. |
261 | 255 | </span><span class="kw">pub fn </span>new(blas: <span class="kw-2">&</span>Blas, transform: [f32; <span class="number">12</span>], custom_index: u32, mask: u8) -> <span class="self">Self </span>{ |
262 | 256 | <span class="self">Self </span>{ |
263 | | - blas: blas.shared.clone(), |
| 257 | + blas: blas.inner.clone(), |
264 | 258 | transform, |
265 | 259 | custom_index, |
266 | 260 | mask, |
|
272 | 266 | /// See the note on [TlasInstance] about the |
273 | 267 | /// guarantees of keeping a BLAS alive. |
274 | 268 | </span><span class="kw">pub fn </span>set_blas(<span class="kw-2">&mut </span><span class="self">self</span>, blas: <span class="kw-2">&</span>Blas) { |
275 | | - <span class="self">self</span>.blas = blas.shared.clone(); |
| 269 | + <span class="self">self</span>.blas = blas.inner.clone(); |
276 | 270 | } |
277 | 271 | } |
278 | 272 |
|
|
317 | 311 | } |
318 | 312 | <span class="macro">static_assertions::assert_impl_all!</span>(BlasBuildEntry<<span class="lifetime">'_</span>>: WasmNotSendSync); |
319 | 313 |
|
320 | | -<span class="attr">#[derive(Debug)] |
321 | | -</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>BlasShared { |
322 | | - <span class="kw">pub</span>(<span class="kw">crate</span>) inner: dispatch::DispatchBlas, |
323 | | -} |
324 | | -<span class="macro">static_assertions::assert_impl_all!</span>(BlasShared: WasmNotSendSync); |
325 | | - |
326 | | -<span class="attr">#[derive(Debug)] |
| 314 | +<span class="attr">#[derive(Debug, Clone)] |
327 | 315 | </span><span class="doccomment">/// Bottom Level Acceleration Structure (BLAS). |
328 | 316 | /// |
329 | 317 | /// A BLAS is a device-specific raytracing acceleration structure that contains geometry data. |
|
333 | 321 | /// [Tlas]: crate::Tlas |
334 | 322 | </span><span class="kw">pub struct </span>Blas { |
335 | 323 | <span class="kw">pub</span>(<span class="kw">crate</span>) handle: <span class="prelude-ty">Option</span><u64>, |
336 | | - <span class="kw">pub</span>(<span class="kw">crate</span>) shared: Arc<BlasShared>, |
| 324 | + <span class="kw">pub</span>(<span class="kw">crate</span>) inner: Arc<dispatch::DispatchBlas>, |
337 | 325 | } |
338 | 326 | <span class="macro">static_assertions::assert_impl_all!</span>(Blas: WasmNotSendSync); |
339 | 327 |
|
340 | | -<span class="macro">crate::cmp::impl_eq_ord_hash_proxy!</span>(Blas => .shared.inner); |
| 328 | +<span class="macro">crate::cmp::impl_eq_ord_hash_proxy!</span>(Blas => .inner); |
341 | 329 |
|
342 | 330 | <span class="kw">impl </span>Blas { |
343 | 331 | <span class="doccomment">/// Raw handle to the acceleration structure, used inside raw instance buffers. |
|
346 | 334 | } |
347 | 335 | <span class="doccomment">/// Destroy the associated native resources as soon as possible. |
348 | 336 | </span><span class="kw">pub fn </span>destroy(<span class="kw-2">&</span><span class="self">self</span>) { |
349 | | - <span class="self">self</span>.shared.inner.destroy(); |
| 337 | + <span class="self">self</span>.inner.destroy(); |
350 | 338 | } |
351 | 339 | } |
352 | 340 |
|
|
0 commit comments