/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use serde::{Deserialize, Serialize}; pub use wgpu_core::id::markers::{ ComputePassEncoder as ComputePass, RenderPassEncoder as RenderPass, }; use wgpu_core::id::{ AdapterId, BindGroupId, BindGroupLayoutId, BufferId, CommandBufferId, CommandEncoderId, ComputePipelineId, DeviceId, PipelineLayoutId, QueueId, RenderBundleId, RenderPipelineId, SamplerId, ShaderModuleId, SurfaceId, TextureId, TextureViewId, }; pub use wgpu_core::id::{ ComputePassEncoderId as ComputePassId, RenderPassEncoderId as RenderPassId, }; macro_rules! webgpu_resource { ($name:ident, $id:ty) => { #[derive(Clone, Copy, Debug, Deserialize, Hash, PartialEq, PartialOrd, Serialize)] pub struct $name(pub $id); impl MallocSizeOf for $name { fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize { 0 } } impl Eq for $name {} }; } webgpu_resource!(WebGPUAdapter, AdapterId); webgpu_resource!(WebGPUBindGroup, BindGroupId); webgpu_resource!(WebGPUBindGroupLayout, BindGroupLayoutId); webgpu_resource!(WebGPUBuffer, BufferId); webgpu_resource!(WebGPUCommandBuffer, CommandBufferId); webgpu_resource!(WebGPUCommandEncoder, CommandEncoderId); webgpu_resource!(WebGPUComputePipeline, ComputePipelineId); webgpu_resource!(WebGPUDevice, DeviceId); webgpu_resource!(WebGPUPipelineLayout, PipelineLayoutId); webgpu_resource!(WebGPUQueue, QueueId); webgpu_resource!(WebGPURenderBundle, RenderBundleId); webgpu_resource!(WebGPURenderPipeline, RenderPipelineId); webgpu_resource!(WebGPUSampler, SamplerId); webgpu_resource!(WebGPUShaderModule, ShaderModuleId); webgpu_resource!(WebGPUSurface, SurfaceId); webgpu_resource!(WebGPUTexture, TextureId); webgpu_resource!(WebGPUTextureView, TextureViewId); webgpu_resource!(WebGPUComputePass, ComputePassId); webgpu_resource!(WebGPURenderPass, RenderPassId); webgpu_resource!(WebGPUContextId, u64);