Make vulkan handles always pointer sized

This commit is contained in:
hodasemi 2025-03-27 11:02:23 +01:00
parent f81cfa413f
commit 4b98e845c4
4 changed files with 58 additions and 76 deletions

View file

@ -1,12 +1,12 @@
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkBuffer(u64);
SetupU64Conv!(VkBuffer);
pub struct VkBuffer(usize);
SetupUSizeConv!(VkBuffer);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkBufferView(u64);
SetupU64Conv!(VkBufferView);
pub struct VkBufferView(usize);
SetupUSizeConv!(VkBufferView);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -15,23 +15,23 @@ SetupUSizeConv!(VkCommandBuffer);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkCommandPool(u64);
SetupU64Conv!(VkCommandPool);
pub struct VkCommandPool(usize);
SetupUSizeConv!(VkCommandPool);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorPool(u64);
SetupU64Conv!(VkDescriptorPool);
pub struct VkDescriptorPool(usize);
SetupUSizeConv!(VkDescriptorPool);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorSet(u64);
SetupU64Conv!(VkDescriptorSet);
pub struct VkDescriptorSet(usize);
SetupUSizeConv!(VkDescriptorSet);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorSetLayout(u64);
SetupU64Conv!(VkDescriptorSetLayout);
pub struct VkDescriptorSetLayout(usize);
SetupUSizeConv!(VkDescriptorSetLayout);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -40,33 +40,33 @@ SetupUSizeConv!(VkDevice);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDeviceMemory(u64);
SetupU64Conv!(VkDeviceMemory);
pub struct VkDeviceMemory(usize);
SetupUSizeConv!(VkDeviceMemory);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkEvent(u64);
SetupU64Conv!(VkEvent);
pub struct VkEvent(usize);
SetupUSizeConv!(VkEvent);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkFence(u64);
SetupU64Conv!(VkFence);
pub struct VkFence(usize);
SetupUSizeConv!(VkFence);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkFramebuffer(u64);
SetupU64Conv!(VkFramebuffer);
pub struct VkFramebuffer(usize);
SetupUSizeConv!(VkFramebuffer);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkImage(u64);
SetupU64Conv!(VkImage);
pub struct VkImage(usize);
SetupUSizeConv!(VkImage);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkImageView(u64);
SetupU64Conv!(VkImageView);
pub struct VkImageView(usize);
SetupUSizeConv!(VkImageView);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -80,23 +80,23 @@ SetupUSizeConv!(VkPhysicalDevice);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkPipeline(u64);
SetupU64Conv!(VkPipeline);
pub struct VkPipeline(usize);
SetupUSizeConv!(VkPipeline);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkPipelineCache(u64);
SetupU64Conv!(VkPipelineCache);
pub struct VkPipelineCache(usize);
SetupUSizeConv!(VkPipelineCache);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkPipelineLayout(u64);
SetupU64Conv!(VkPipelineLayout);
pub struct VkPipelineLayout(usize);
SetupUSizeConv!(VkPipelineLayout);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkQueryPool(u64);
SetupU64Conv!(VkQueryPool);
pub struct VkQueryPool(usize);
SetupUSizeConv!(VkQueryPool);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -105,20 +105,20 @@ SetupUSizeConv!(VkQueue);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkRenderPass(u64);
SetupU64Conv!(VkRenderPass);
pub struct VkRenderPass(usize);
SetupUSizeConv!(VkRenderPass);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSampler(u64);
SetupU64Conv!(VkSampler);
pub struct VkSampler(usize);
SetupUSizeConv!(VkSampler);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSemaphore(u64);
SetupU64Conv!(VkSemaphore);
pub struct VkSemaphore(usize);
SetupUSizeConv!(VkSemaphore);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkShaderModule(u64);
SetupU64Conv!(VkShaderModule);
pub struct VkShaderModule(usize);
SetupUSizeConv!(VkShaderModule);

View file

@ -1,9 +1,9 @@
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct VkDebugReportCallbackEXT(u64);
SetupU64Conv!(VkDebugReportCallbackEXT);
pub struct VkDebugReportCallbackEXT(usize);
SetupUSizeConv!(VkDebugReportCallbackEXT);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct VkDebugUtilsMessengerEXT(u64);
SetupU64Conv!(VkDebugUtilsMessengerEXT);
pub struct VkDebugUtilsMessengerEXT(usize);
SetupUSizeConv!(VkDebugUtilsMessengerEXT);

View file

@ -1,34 +1,34 @@
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorUpdateTemplateKHR(u64);
SetupU64Conv!(VkDescriptorUpdateTemplateKHR);
pub struct VkDescriptorUpdateTemplateKHR(usize);
SetupUSizeConv!(VkDescriptorUpdateTemplateKHR);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDisplayKHR(u64);
SetupU64Conv!(VkDisplayKHR);
pub struct VkDisplayKHR(usize);
SetupUSizeConv!(VkDisplayKHR);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDisplayModeKHR(u64);
SetupU64Conv!(VkDisplayModeKHR);
pub struct VkDisplayModeKHR(usize);
SetupUSizeConv!(VkDisplayModeKHR);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSurfaceKHR(u64);
SetupU64Conv!(VkSurfaceKHR);
pub struct VkSurfaceKHR(usize);
SetupUSizeConv!(VkSurfaceKHR);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSwapchainKHR(u64);
SetupU64Conv!(VkSwapchainKHR);
pub struct VkSwapchainKHR(usize);
SetupUSizeConv!(VkSwapchainKHR);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkAccelerationStructureKHR(u64);
SetupU64Conv!(VkAccelerationStructureKHR);
pub struct VkAccelerationStructureKHR(usize);
SetupUSizeConv!(VkAccelerationStructureKHR);
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDeferredOperationKHR(u64);
SetupU64Conv!(VkDeferredOperationKHR);
pub struct VkDeferredOperationKHR(usize);
SetupUSizeConv!(VkDeferredOperationKHR);

View file

@ -1,21 +1,3 @@
macro_rules! SetupU64Conv {
($name: ident) => {
impl $name {
pub const NULL_HANDLE: $name = $name(0);
pub fn raw(&self) -> u64 {
self.0
}
}
impl From<u64> for $name {
fn from(v: u64) -> Self {
$name(v)
}
}
};
}
macro_rules! SetupUSizeConv {
($name: ident) => {
impl $name {