|
2432 | 2432 | <span id="2430">2430</span>
|
2433 | 2433 | <span id="2431">2431</span>
|
2434 | 2434 | <span id="2432">2432</span>
|
2435 |
| -<span id="2433">2433</span> |
2436 |
| -<span id="2434">2434</span> |
2437 |
| -<span id="2435">2435</span> |
2438 |
| -<span id="2436">2436</span> |
2439 |
| -<span id="2437">2437</span> |
2440 |
| -<span id="2438">2438</span> |
2441 |
| -<span id="2439">2439</span> |
2442 | 2435 | </pre><pre class="rust"><code><span class="kw">use crate</span>::{
|
2443 | 2436 | AdapterInfo, BindGroupDescriptor, BindGroupLayoutDescriptor, BindingResource, BufferBinding,
|
2444 | 2437 | CommandEncoderDescriptor, ComputePassDescriptor, ComputePipelineDescriptor,
|
|
2456 | 2449 | error::Error,
|
2457 | 2450 | fmt,
|
2458 | 2451 | future::{ready, Ready},
|
2459 |
| - marker::PhantomData, |
2460 | 2452 | ops::Range,
|
2461 | 2453 | slice,
|
2462 | 2454 | sync::Arc,
|
|
2510 | 2502 | <span class="attribute">#[cfg(any(not(target_arch = <span class="string">"wasm32"</span>), feature = <span class="string">"emscripten"</span>))]
|
2511 | 2503 | </span><span class="kw">pub fn </span>enumerate_adapters(<span class="kw-2">&</span><span class="self">self</span>, backends: wgt::Backends) -> Vec<wgc::id::AdapterId> {
|
2512 | 2504 | <span class="self">self</span>.<span class="number">0
|
2513 |
| - </span>.enumerate_adapters(wgc::instance::AdapterInputs::Mask(backends, |<span class="kw">_</span>| { |
2514 |
| - PhantomData |
2515 |
| - })) |
| 2505 | + </span>.enumerate_adapters(wgc::instance::AdapterInputs::Mask(backends, |<span class="kw">_</span>| ())) |
2516 | 2506 | }
|
2517 | 2507 |
|
2518 | 2508 | <span class="attribute">#[cfg(any(not(target_arch = <span class="string">"wasm32"</span>), feature = <span class="string">"emscripten"</span>))]
|
2519 | 2509 | </span><span class="kw">pub unsafe fn </span>create_adapter_from_hal<A: wgc::hub::HalApi>(
|
2520 | 2510 | <span class="kw-2">&</span><span class="self">self</span>,
|
2521 | 2511 | hal_adapter: hal::ExposedAdapter<A>,
|
2522 | 2512 | ) -> wgc::id::AdapterId {
|
2523 |
| - <span class="self">self</span>.<span class="number">0</span>.create_adapter_from_hal(hal_adapter, PhantomData) |
| 2513 | + <span class="self">self</span>.<span class="number">0</span>.create_adapter_from_hal(hal_adapter, ()) |
2524 | 2514 | }
|
2525 | 2515 |
|
2526 | 2516 | <span class="kw">pub unsafe fn </span>adapter_as_hal<A: wgc::hub::HalApi, F: FnOnce(<span class="prelude-ty">Option</span><<span class="kw-2">&</span>A::Adapter>) -> R, R>(
|
|
2546 | 2536 | hal_device,
|
2547 | 2537 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
2548 | 2538 | trace_dir,
|
2549 |
| - PhantomData, |
| 2539 | + (), |
2550 | 2540 | );
|
2551 | 2541 | <span class="kw">if let </span><span class="prelude-val">Some</span>(err) = error {
|
2552 | 2542 | <span class="self">self</span>.handle_error_fatal(err, <span class="string">"Adapter::create_device_from_hal"</span>);
|
|
2571 | 2561 | hal_texture,
|
2572 | 2562 | device.id,
|
2573 | 2563 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
2574 |
| - PhantomData, |
| 2564 | + (), |
2575 | 2565 | );
|
2576 | 2566 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
2577 | 2567 | <span class="self">self</span>.handle_error(
|
|
2618 | 2608 | <span class="self">self</span>: <span class="kw-2">&</span>Arc<<span class="self">Self</span>>,
|
2619 | 2609 | layer: <span class="kw-2">*mut </span>std::ffi::c_void,
|
2620 | 2610 | ) -> <span class="kw">crate</span>::Surface {
|
2621 |
| - <span class="kw">let </span>id = <span class="self">self</span>.<span class="number">0</span>.instance_create_surface_metal(layer, PhantomData); |
| 2611 | + <span class="kw">let </span>id = <span class="self">self</span>.<span class="number">0</span>.instance_create_surface_metal(layer, ()); |
2622 | 2612 | <span class="kw">crate</span>::Surface {
|
2623 | 2613 | context: Arc::clone(<span class="self">self</span>),
|
2624 | 2614 | id: Surface {
|
|
2633 | 2623 | <span class="self">self</span>: <span class="kw-2">&</span>Arc<<span class="self">Self</span>>,
|
2634 | 2624 | canvas: <span class="kw-2">&</span>web_sys::HtmlCanvasElement,
|
2635 | 2625 | ) -> Surface {
|
2636 |
| - <span class="kw">let </span>id = <span class="self">self</span>.<span class="number">0</span>.create_surface_webgl_canvas(canvas, PhantomData); |
| 2626 | + <span class="kw">let </span>id = <span class="self">self</span>.<span class="number">0</span>.create_surface_webgl_canvas(canvas, ()); |
2637 | 2627 | Surface {
|
2638 | 2628 | id,
|
2639 | 2629 | configured_device: Mutex::default(),
|
|
2645 | 2635 | <span class="self">self</span>: <span class="kw-2">&</span>Arc<<span class="self">Self</span>>,
|
2646 | 2636 | canvas: <span class="kw-2">&</span>web_sys::OffscreenCanvas,
|
2647 | 2637 | ) -> Surface {
|
2648 |
| - <span class="kw">let </span>id = <span class="self">self |
2649 |
| - </span>.<span class="number">0 |
2650 |
| - </span>.create_surface_webgl_offscreen_canvas(canvas, PhantomData); |
| 2638 | + <span class="kw">let </span>id = <span class="self">self</span>.<span class="number">0</span>.create_surface_webgl_offscreen_canvas(canvas, ()); |
2651 | 2639 | Surface {
|
2652 | 2640 | id,
|
2653 | 2641 | configured_device: Mutex::default(),
|
|
2659 | 2647 | <span class="self">self</span>: <span class="kw-2">&</span>Arc<<span class="self">Self</span>>,
|
2660 | 2648 | visual: <span class="kw-2">*mut </span>std::ffi::c_void,
|
2661 | 2649 | ) -> <span class="kw">crate</span>::Surface {
|
2662 |
| - <span class="kw">let </span>id = <span class="self">self |
2663 |
| - </span>.<span class="number">0 |
2664 |
| - </span>.instance_create_surface_from_visual(visual, PhantomData); |
| 2650 | + <span class="kw">let </span>id = <span class="self">self</span>.<span class="number">0</span>.instance_create_surface_from_visual(visual, ()); |
2665 | 2651 | <span class="kw">crate</span>::Surface {
|
2666 | 2652 | context: Arc::clone(<span class="self">self</span>),
|
2667 | 2653 | id: Surface {
|
|
3294 | 3280 | handle: <span class="kw-2">&</span>(<span class="kw">impl </span>raw_window_handle::HasRawWindowHandle + raw_window_handle::HasRawDisplayHandle),
|
3295 | 3281 | ) -> <span class="self">Self</span>::SurfaceId {
|
3296 | 3282 | Surface {
|
3297 |
| - id: <span class="self">self</span>.<span class="number">0</span>.instance_create_surface(handle, PhantomData), |
| 3283 | + id: <span class="self">self</span>.<span class="number">0</span>.instance_create_surface(handle, ()), |
3298 | 3284 | configured_device: Mutex::new(<span class="prelude-val">None</span>),
|
3299 | 3285 | }
|
3300 | 3286 | }
|
|
3309 | 3295 | force_fallback_adapter: options.force_fallback_adapter,
|
3310 | 3296 | compatible_surface: options.compatible_surface.map(|surface| surface.id.id),
|
3311 | 3297 | },
|
3312 |
| - wgc::instance::AdapterInputs::Mask(wgt::Backends::all(), |<span class="kw">_</span>| PhantomData), |
| 3298 | + wgc::instance::AdapterInputs::Mask(wgt::Backends::all(), |<span class="kw">_</span>| ()), |
3313 | 3299 | );
|
3314 | 3300 | ready(id.ok())
|
3315 | 3301 | }
|
|
3333 | 3319 | <span class="kw-2">*</span>adapter,
|
3334 | 3320 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
3335 | 3321 | trace_dir,
|
3336 |
| - PhantomData |
| 3322 | + () |
3337 | 3323 | ));
|
3338 | 3324 | <span class="kw">if let </span><span class="prelude-val">Some</span>(err) = error {
|
3339 | 3325 | <span class="macro">log::error!</span>(<span class="string">"Error in Adapter::request_device: {}"</span>, err);
|
|
3463 | 3449 | .lock()
|
3464 | 3450 | .expect(<span class="string">"Surface was not configured?"</span>);
|
3465 | 3451 | <span class="kw">match </span><span class="macro">wgc::gfx_select!</span>(
|
3466 |
| - device_id => global.surface_get_current_texture(surface.id, PhantomData) |
| 3452 | + device_id => global.surface_get_current_texture(surface.id, ()) |
3467 | 3453 | ) {
|
3468 | 3454 | <span class="prelude-val">Ok</span>(wgc::present::SurfaceOutput { status, texture_id }) => (
|
3469 | 3455 | texture_id.map(|id| Texture {
|
|
3568 | 3554 | </span>ShaderSource::Naga(module) => wgc::pipeline::ShaderModuleSource::Naga(module),
|
3569 | 3555 | };
|
3570 | 3556 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(
|
3571 |
| - device.id => global.device_create_shader_module(device.id, <span class="kw-2">&</span>descriptor, source, PhantomData) |
| 3557 | + device.id => global.device_create_shader_module(device.id, <span class="kw-2">&</span>descriptor, source, ()) |
3572 | 3558 | );
|
3573 | 3559 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3574 | 3560 | <span class="self">self</span>.handle_error(
|
|
3595 | 3581 | </span>shader_bound_checks: wgt::ShaderBoundChecks::unchecked(),
|
3596 | 3582 | };
|
3597 | 3583 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(
|
3598 |
| - device.id => global.device_create_shader_module_spirv(device.id, <span class="kw-2">&</span>descriptor, Borrowed(<span class="kw-2">&</span>desc.source), PhantomData) |
| 3584 | + device.id => global.device_create_shader_module_spirv(device.id, <span class="kw-2">&</span>descriptor, Borrowed(<span class="kw-2">&</span>desc.source), ()) |
3599 | 3585 | );
|
3600 | 3586 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3601 | 3587 | <span class="self">self</span>.handle_error(
|
|
3620 | 3606 | entries: Borrowed(desc.entries),
|
3621 | 3607 | };
|
3622 | 3608 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(
|
3623 |
| - device.id => global.device_create_bind_group_layout(device.id, <span class="kw-2">&</span>descriptor, PhantomData) |
| 3609 | + device.id => global.device_create_bind_group_layout(device.id, <span class="kw-2">&</span>descriptor, ()) |
3624 | 3610 | );
|
3625 | 3611 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3626 | 3612 | <span class="self">self</span>.handle_error(
|
|
3721 | 3707 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_bind_group(
|
3722 | 3708 | device.id,
|
3723 | 3709 | <span class="kw-2">&</span>descriptor,
|
3724 |
| - PhantomData |
| 3710 | + () |
3725 | 3711 | ));
|
3726 | 3712 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3727 | 3713 | <span class="self">self</span>.handle_error(
|
|
3764 | 3750 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_pipeline_layout(
|
3765 | 3751 | device.id,
|
3766 | 3752 | <span class="kw-2">&</span>descriptor,
|
3767 |
| - PhantomData |
| 3753 | + () |
3768 | 3754 | ));
|
3769 | 3755 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3770 | 3756 | <span class="self">self</span>.handle_error(
|
|
3799 | 3785 | <span class="kw">let </span>implicit_pipeline_ids = <span class="kw">match </span>desc.layout {
|
3800 | 3786 | <span class="prelude-val">Some</span>(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
|
3801 | 3787 | <span class="prelude-val">None </span>=> <span class="prelude-val">Some</span>(wgc::device::ImplicitPipelineIds {
|
3802 |
| - root_id: PhantomData, |
3803 |
| - group_ids: <span class="kw-2">&</span>[PhantomData; wgc::MAX_BIND_GROUPS], |
| 3788 | + root_id: (), |
| 3789 | + group_ids: <span class="kw-2">&</span>[(); wgc::MAX_BIND_GROUPS], |
3804 | 3790 | }),
|
3805 | 3791 | };
|
3806 | 3792 | <span class="kw">let </span>descriptor = pipe::RenderPipelineDescriptor {
|
|
3830 | 3816 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_render_pipeline(
|
3831 | 3817 | device.id,
|
3832 | 3818 | <span class="kw-2">&</span>descriptor,
|
3833 |
| - PhantomData, |
| 3819 | + (), |
3834 | 3820 | implicit_pipeline_ids
|
3835 | 3821 | ));
|
3836 | 3822 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
|
3859 | 3845 | <span class="kw">let </span>implicit_pipeline_ids = <span class="kw">match </span>desc.layout {
|
3860 | 3846 | <span class="prelude-val">Some</span>(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
|
3861 | 3847 | <span class="prelude-val">None </span>=> <span class="prelude-val">Some</span>(wgc::device::ImplicitPipelineIds {
|
3862 |
| - root_id: PhantomData, |
3863 |
| - group_ids: <span class="kw-2">&</span>[PhantomData; wgc::MAX_BIND_GROUPS], |
| 3848 | + root_id: (), |
| 3849 | + group_ids: <span class="kw-2">&</span>[(); wgc::MAX_BIND_GROUPS], |
3864 | 3850 | }),
|
3865 | 3851 | };
|
3866 | 3852 | <span class="kw">let </span>descriptor = pipe::ComputePipelineDescriptor {
|
|
3876 | 3862 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_compute_pipeline(
|
3877 | 3863 | device.id,
|
3878 | 3864 | <span class="kw-2">&</span>descriptor,
|
3879 |
| - PhantomData, |
| 3865 | + (), |
3880 | 3866 | implicit_pipeline_ids
|
3881 | 3867 | ));
|
3882 | 3868 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
|
3908 | 3894 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_buffer(
|
3909 | 3895 | device.id,
|
3910 | 3896 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
3911 |
| - PhantomData |
| 3897 | + () |
3912 | 3898 | ));
|
3913 | 3899 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3914 | 3900 | <span class="self">self</span>.handle_error(
|
|
3934 | 3920 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_texture(
|
3935 | 3921 | device.id,
|
3936 | 3922 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
3937 |
| - PhantomData |
| 3923 | + () |
3938 | 3924 | ));
|
3939 | 3925 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3940 | 3926 | <span class="self">self</span>.handle_error(
|
|
3977 | 3963 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_sampler(
|
3978 | 3964 | device.id,
|
3979 | 3965 | <span class="kw-2">&</span>descriptor,
|
3980 |
| - PhantomData |
| 3966 | + () |
3981 | 3967 | ));
|
3982 | 3968 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
3983 | 3969 | <span class="self">self</span>.handle_error(
|
|
4000 | 3986 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_query_set(
|
4001 | 3987 | device.id,
|
4002 | 3988 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
4003 |
| - PhantomData |
| 3989 | + () |
4004 | 3990 | ));
|
4005 | 3991 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
4006 | 3992 | <span class="self">self</span>.handle_error_nolabel(<span class="kw-2">&</span>device.error_sink, cause, <span class="string">"Device::create_query_set"</span>);
|
|
4017 | 4003 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(device.id => global.device_create_command_encoder(
|
4018 | 4004 | device.id,
|
4019 | 4005 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
4020 |
| - PhantomData |
| 4006 | + () |
4021 | 4007 | ));
|
4022 | 4008 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
4023 | 4009 | <span class="self">self</span>.handle_error(
|
|
4183 | 4169 | };
|
4184 | 4170 | <span class="kw">let </span>global = <span class="kw-2">&</span><span class="self">self</span>.<span class="number">0</span>;
|
4185 | 4171 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(
|
4186 |
| - texture.id => global.texture_create_view(texture.id, <span class="kw-2">&</span>descriptor, PhantomData) |
| 4172 | + texture.id => global.texture_create_view(texture.id, <span class="kw-2">&</span>descriptor, ()) |
4187 | 4173 | );
|
4188 | 4174 | <span class="kw">if let </span><span class="prelude-val">Some</span>(cause) = error {
|
4189 | 4175 | <span class="self">self</span>.handle_error(
|
|
4289 | 4275 | index: u32,
|
4290 | 4276 | ) -> <span class="self">Self</span>::BindGroupLayoutId {
|
4291 | 4277 | <span class="kw">let </span>global = <span class="kw-2">&</span><span class="self">self</span>.<span class="number">0</span>;
|
4292 |
| - <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(<span class="kw-2">*</span>pipeline => global.compute_pipeline_get_bind_group_layout(<span class="kw-2">*</span>pipeline, index, PhantomData)); |
| 4278 | + <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(<span class="kw-2">*</span>pipeline => global.compute_pipeline_get_bind_group_layout(<span class="kw-2">*</span>pipeline, index, ())); |
4293 | 4279 | <span class="kw">if let </span><span class="prelude-val">Some</span>(err) = error {
|
4294 | 4280 | <span class="macro">panic!</span>(<span class="string">"Error reflecting bind group {}: {}"</span>, index, err);
|
4295 | 4281 | }
|
|
4301 | 4287 | index: u32,
|
4302 | 4288 | ) -> <span class="self">Self</span>::BindGroupLayoutId {
|
4303 | 4289 | <span class="kw">let </span>global = <span class="kw-2">&</span><span class="self">self</span>.<span class="number">0</span>;
|
4304 |
| - <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(<span class="kw-2">*</span>pipeline => global.render_pipeline_get_bind_group_layout(<span class="kw-2">*</span>pipeline, index, PhantomData)); |
| 4290 | + <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(<span class="kw-2">*</span>pipeline => global.render_pipeline_get_bind_group_layout(<span class="kw-2">*</span>pipeline, index, ())); |
4305 | 4291 | <span class="kw">if let </span><span class="prelude-val">Some</span>(err) = error {
|
4306 | 4292 | <span class="macro">panic!</span>(<span class="string">"Error reflecting bind group {}: {}"</span>, index, err);
|
4307 | 4293 | }
|
|
4624 | 4610 | <span class="kw">let </span>(id, error) = <span class="macro">wgc::gfx_select!</span>(encoder.parent() => global.render_bundle_encoder_finish(
|
4625 | 4611 | encoder,
|
4626 | 4612 | <span class="kw-2">&</span>desc.map_label(|l| l.map(Borrowed)),
|
4627 |
| - PhantomData |
| 4613 | + () |
4628 | 4614 | ));
|
4629 | 4615 | <span class="kw">if let </span><span class="prelude-val">Some</span>(err) = error {
|
4630 | 4616 | <span class="self">self</span>.handle_error_fatal(err, <span class="string">"RenderBundleEncoder::finish"</span>);
|
|
4671 | 4657 | ) -> QueueWriteBuffer {
|
4672 | 4658 | <span class="kw">let </span>global = <span class="kw-2">&</span><span class="self">self</span>.<span class="number">0</span>;
|
4673 | 4659 | <span class="kw">match </span><span class="macro">wgc::gfx_select!</span>(
|
4674 |
| - <span class="kw-2">*</span>queue => global.queue_create_staging_buffer(<span class="kw-2">*</span>queue, size, PhantomData) |
| 4660 | + <span class="kw-2">*</span>queue => global.queue_create_staging_buffer(<span class="kw-2">*</span>queue, size, ()) |
4675 | 4661 | ) {
|
4676 | 4662 | <span class="prelude-val">Ok</span>((buffer_id, ptr)) => QueueWriteBuffer {
|
4677 | 4663 | buffer_id,
|
|
0 commit comments