diff --git a/wgpu-bindings/wgpu.h b/wgpu-bindings/wgpu.h index 0e503ec20..6d1ad8d3d 100644 --- a/wgpu-bindings/wgpu.h +++ b/wgpu-bindings/wgpu.h @@ -240,7 +240,14 @@ typedef enum { typedef struct WGPUBufferMapAsyncStatus WGPUBufferMapAsyncStatus; -typedef struct WGPUId WGPUId; +typedef uint32_t WGPUIndex; + +typedef uint32_t WGPUEpoch; + +typedef struct { + WGPUIndex _0; + WGPUEpoch _1; +} WGPUId; typedef WGPUId WGPUDeviceId; diff --git a/wgpu-native/src/hub.rs b/wgpu-native/src/hub.rs index b8063944b..4e50ab23b 100644 --- a/wgpu-native/src/hub.rs +++ b/wgpu-native/src/hub.rs @@ -18,6 +18,8 @@ use std::sync::Arc; pub(crate) type Index = u32; pub(crate) type Epoch = u32; + +#[repr(C)] #[derive(Clone, Copy, Debug, Hash, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct Id(Index, Epoch);