lava/vulkan/vk/
vk_object_type.rs

1// Generated by `scripts/generate.js`
2
3use utils::vk_traits::*;
4
5/// Wrapper for [VkObjectType](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkObjectType.html).
6#[repr(i32)]
7#[derive(Debug, PartialEq, Copy, Clone)]
8pub enum VkObjectType {
9    Unknown = 0,
10    Instance = 1,
11    PhysicalDevice = 2,
12    Device = 3,
13    Queue = 4,
14    Semaphore = 5,
15    CommandBuffer = 6,
16    Fence = 7,
17    DeviceMemory = 8,
18    Buffer = 9,
19    Image = 10,
20    Event = 11,
21    QueryPool = 12,
22    BufferView = 13,
23    ImageView = 14,
24    ShaderModule = 15,
25    PipelineCache = 16,
26    PipelineLayout = 17,
27    RenderPass = 18,
28    Pipeline = 19,
29    DescriptorSetLayout = 20,
30    Sampler = 21,
31    DescriptorPool = 22,
32    DescriptorSet = 23,
33    Framebuffer = 24,
34    CommandPool = 25,
35    SamplerYcbcrConversion = 1000156000,
36    DescriptorUpdateTemplate = 1000085000,
37    SurfaceKhr = 1000000000,
38    SwapchainKhr = 1000001000,
39    DisplayKhr = 1000002000,
40    DisplayModeKhr = 1000002001,
41    DebugReportCallbackExt = 1000011000,
42    DebugUtilsMessengerExt = 1000128000,
43    AccelerationStructureKhr = 1000165000,
44    ValidationCacheExt = 1000160000,
45    PerformanceConfigurationIntel = 1000210000,
46    DeferredOperationKhr = 1000268000,
47    IndirectCommandsLayoutNv = 1000277000,
48}
49
50#[doc(hidden)]
51pub type RawVkObjectType = i32;
52
53impl VkWrappedType<RawVkObjectType> for VkObjectType {
54    fn vk_to_raw(src: &VkObjectType, dst: &mut RawVkObjectType) {
55        *dst = *src as i32
56    }
57}
58
59impl VkRawType<VkObjectType> for RawVkObjectType {
60    fn vk_to_wrapped(src: &RawVkObjectType) -> VkObjectType {
61        unsafe {
62            *((src as *const i32) as *const VkObjectType)
63        }
64    }
65}
66
67impl Default for VkObjectType {
68    fn default() -> VkObjectType {
69        VkObjectType::Unknown
70    }
71}