1 // 2 // Copyright (c) 2022 The Khronos Group Inc. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 #ifndef _vulkan_wrapper_types_hpp_ 18 #define _vulkan_wrapper_types_hpp_ 19 20 #include <vulkan/vulkan.h> 21 22 #define VULKAN_MIN_BUFFER_OFFSET_COPY_ALIGNMENT 4 23 #define VULKAN_REMAINING_MIP_LEVELS VK_REMAINING_MIP_LEVELS 24 #define VULKAN_REMAINING_ARRAY_LAYERS VK_REMAINING_ARRAY_LAYERS 25 26 class VulkanInstance; 27 class VulkanPhysicalDevice; 28 class VulkanMemoryHeap; 29 class VulkanMemoryType; 30 class VulkanQueueFamily; 31 class VulkanDevice; 32 class VulkanQueue; 33 class VulkanDescriptorSetLayoutBinding; 34 class VulkanDescriptorSetLayout; 35 class VulkanPipelineLayout; 36 class VulkanShaderModule; 37 class VulkanPipeline; 38 class VulkanComputePipeline; 39 class VulkanDescriptorPool; 40 class VulkanDescriptorSet; 41 class VulkanCommandPool; 42 class VulkanCommandBuffer; 43 class VulkanBuffer; 44 class VulkanOffset3D; 45 class VulkanExtent3D; 46 class VulkanImage; 47 class VulkanImage2D; 48 class VulkanImageView; 49 class VulkanDeviceMemory; 50 class VulkanSemaphore; 51 52 class VulkanPhysicalDeviceList; 53 class VulkanMemoryHeapList; 54 class VulkanMemoryTypeList; 55 class VulkanQueueFamilyList; 56 class VulkanQueueFamilyToQueueCountMap; 57 class VulkanQueueFamilyToQueueListMap; 58 class VulkanQueueList; 59 class VulkanCommandBufferList; 60 class VulkanDescriptorSetLayoutList; 61 class VulkanBufferList; 62 class VulkanImage2DList; 63 class VulkanImageViewList; 64 class VulkanDeviceMemoryList; 65 class VulkanSemaphoreList; 66 67 enum VulkanQueueFlag 68 { 69 VULKAN_QUEUE_FLAG_GRAPHICS = VK_QUEUE_GRAPHICS_BIT, 70 VULKAN_QUEUE_FLAG_COMPUTE = VK_QUEUE_COMPUTE_BIT, 71 VULKAN_QUEUE_FLAG_TRANSFER = VK_QUEUE_TRANSFER_BIT, 72 VULKAN_QUEUE_FLAG_MASK_ALL = VULKAN_QUEUE_FLAG_GRAPHICS 73 | VULKAN_QUEUE_FLAG_COMPUTE | VULKAN_QUEUE_FLAG_TRANSFER 74 }; 75 76 enum VulkanDescriptorType 77 { 78 VULKAN_DESCRIPTOR_TYPE_SAMPLER = VK_DESCRIPTOR_TYPE_SAMPLER, 79 VULKAN_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 80 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 81 VULKAN_DESCRIPTOR_TYPE_SAMPLED_IMAGE = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 82 VULKAN_DESCRIPTOR_TYPE_STORAGE_IMAGE = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 83 VULKAN_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 84 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, 85 VULKAN_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 86 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 87 VULKAN_DESCRIPTOR_TYPE_UNIFORM_BUFFER = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 88 VULKAN_DESCRIPTOR_TYPE_STORAGE_BUFFER = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 89 VULKAN_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 90 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 91 VULKAN_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 92 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 93 VULKAN_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 94 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 95 }; 96 97 enum VulkanShaderStage 98 { 99 VULKAN_SHADER_STAGE_VERTEX = VK_SHADER_STAGE_VERTEX_BIT, 100 VULKAN_SHADER_STAGE_FRAGMENT = VK_SHADER_STAGE_FRAGMENT_BIT, 101 VULKAN_SHADER_STAGE_COMPUTE = VK_SHADER_STAGE_COMPUTE_BIT, 102 VULKAN_SHADER_STAGE_ALL_GRAPHICS = VK_SHADER_STAGE_ALL_GRAPHICS, 103 VULKAN_SHADER_STAGE_ALL = VK_SHADER_STAGE_ALL 104 }; 105 106 enum VulkanPipelineBindPoint 107 { 108 VULKAN_PIPELINE_BIND_POINT_GRAPHICS = VK_PIPELINE_BIND_POINT_GRAPHICS, 109 VULKAN_PIPELINE_BIND_POINT_COMPUTE = VK_PIPELINE_BIND_POINT_COMPUTE 110 }; 111 112 enum VulkanMemoryTypeProperty 113 { 114 VULKAN_MEMORY_TYPE_PROPERTY_NONE = 0, 115 VULKAN_MEMORY_TYPE_PROPERTY_DEVICE_LOCAL = 116 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, 117 VULKAN_MEMORY_TYPE_PROPERTY_HOST_VISIBLE_COHERENT = 118 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT 119 | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, 120 VULKAN_MEMORY_TYPE_PROPERTY_HOST_VISIBLE_CACHED = 121 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT 122 | VK_MEMORY_PROPERTY_HOST_CACHED_BIT, 123 VULKAN_MEMORY_TYPE_PROPERTY_HOST_VISIBLE_CACHED_COHERENT = 124 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT 125 | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, 126 VULKAN_MEMORY_TYPE_PROPERTY_DEVICE_LOCAL_HOST_VISIBLE_COHERENT = 127 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT 128 | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT 129 | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, 130 VULKAN_MEMORY_TYPE_PROPERTY_DEVICE_LOCAL_HOST_VISIBLE_CACHED = 131 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT 132 | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT 133 | VK_MEMORY_PROPERTY_HOST_CACHED_BIT, 134 VULKAN_MEMORY_TYPE_PROPERTY_DEVICE_LOCAL_HOST_VISIBLE_CACHED_COHERENT = 135 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT 136 | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT 137 | VK_MEMORY_PROPERTY_HOST_CACHED_BIT 138 | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT 139 }; 140 141 enum VulkanMemoryHeapFlag 142 { 143 VULKAN_MEMORY_HEAP_FLAG_NONE = 0, 144 VULKAN_MEMORY_HEAP_FLAG_DEVICE_LOCAL = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT 145 }; 146 147 enum VulkanExternalMemoryHandleType 148 { 149 VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_NONE = 0, 150 VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = 151 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR, 152 VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_NT = 153 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR, 154 VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = 155 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, 156 VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_NT_KMT = 157 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR 158 | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR 159 }; 160 161 enum VulkanExternalSemaphoreHandleType 162 { 163 VULKAN_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NONE = 0, 164 VULKAN_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = 165 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR, 166 VULKAN_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_NT = 167 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR, 168 VULKAN_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = 169 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, 170 VULKAN_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_NT_KMT = 171 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR 172 | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, 173 VULKAN_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD = 174 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR 175 }; 176 177 enum VulkanBufferUsage 178 { 179 VULKAN_BUFFER_USAGE_TRANSFER_SRC = VK_BUFFER_USAGE_TRANSFER_SRC_BIT, 180 VULKAN_BUFFER_USAGE_TRANSFER_DST = VK_BUFFER_USAGE_TRANSFER_DST_BIT, 181 VULKAN_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER = 182 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, 183 VULKAN_BUFFER_USAGE_STORAGE_TEXEL_BUFFER = 184 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, 185 VULKAN_BUFFER_USAGE_UNIFORM_BUFFER = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, 186 VULKAN_BUFFER_USAGE_STORAGE_BUFFER = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, 187 VULKAN_BUFFER_USAGE_INDEX_BUFFER = VK_BUFFER_USAGE_INDEX_BUFFER_BIT, 188 VULKAN_BUFFER_USAGE_VERTEX_BUFFER = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, 189 VULKAN_BUFFER_USAGE_INDIRECT_BUFFER = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, 190 VULKAN_BUFFER_USAGE_STORAGE_BUFFER_TRANSFER_SRC_DST = 191 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT 192 | VK_BUFFER_USAGE_TRANSFER_DST_BIT, 193 VULKAN_BUFFER_USAGE_UNIFORM_BUFFER_TRANSFER_SRC_DST = 194 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT 195 | VK_BUFFER_USAGE_TRANSFER_DST_BIT, 196 }; 197 198 enum VulkanSharingMode 199 { 200 VULKAN_SHARING_MODE_EXCLUSIVE = VK_SHARING_MODE_EXCLUSIVE, 201 VULKAN_SHARING_MODE_CONCURRENT = VK_SHARING_MODE_CONCURRENT 202 }; 203 204 enum VulkanImageType 205 { 206 VULKAN_IMAGE_TYPE_1D = VK_IMAGE_TYPE_1D, 207 VULKAN_IMAGE_TYPE_2D = VK_IMAGE_TYPE_2D, 208 VULKAN_IMAGE_TYPE_3D = VK_IMAGE_TYPE_3D 209 }; 210 211 enum VulkanFormat 212 { 213 VULKAN_FORMAT_UNDEFINED = VK_FORMAT_UNDEFINED, 214 VULKAN_FORMAT_R4G4_UNORM_PACK8 = VK_FORMAT_R4G4_UNORM_PACK8, 215 VULKAN_FORMAT_R4G4B4A4_UNORM_PACK16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16, 216 VULKAN_FORMAT_B4G4R4A4_UNORM_PACK16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16, 217 VULKAN_FORMAT_R5G6B5_UNORM_PACK16 = VK_FORMAT_R5G6B5_UNORM_PACK16, 218 VULKAN_FORMAT_B5G6R5_UNORM_PACK16 = VK_FORMAT_B5G6R5_UNORM_PACK16, 219 VULKAN_FORMAT_R5G5B5A1_UNORM_PACK16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16, 220 VULKAN_FORMAT_B5G5R5A1_UNORM_PACK16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16, 221 VULKAN_FORMAT_A1R5G5B5_UNORM_PACK16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16, 222 VULKAN_FORMAT_R8_UNORM = VK_FORMAT_R8_UNORM, 223 VULKAN_FORMAT_R8_SNORM = VK_FORMAT_R8_SNORM, 224 VULKAN_FORMAT_R8_USCALED = VK_FORMAT_R8_USCALED, 225 VULKAN_FORMAT_R8_SSCALED = VK_FORMAT_R8_SSCALED, 226 VULKAN_FORMAT_R8_UINT = VK_FORMAT_R8_UINT, 227 VULKAN_FORMAT_R8_SINT = VK_FORMAT_R8_SINT, 228 VULKAN_FORMAT_R8_SRGB = VK_FORMAT_R8_SRGB, 229 VULKAN_FORMAT_R8G8_SNORM = VK_FORMAT_R8G8_SNORM, 230 VULKAN_FORMAT_R8G8_UNORM = VK_FORMAT_R8G8_UNORM, 231 VULKAN_FORMAT_R8G8_USCALED = VK_FORMAT_R8G8_USCALED, 232 VULKAN_FORMAT_R8G8_SSCALED = VK_FORMAT_R8G8_SSCALED, 233 VULKAN_FORMAT_R8G8_UINT = VK_FORMAT_R8G8_UINT, 234 VULKAN_FORMAT_R8G8_SINT = VK_FORMAT_R8G8_SINT, 235 VULKAN_FORMAT_R8G8_SRGB = VK_FORMAT_R8G8_SRGB, 236 VULKAN_FORMAT_R8G8B8_UNORM = VK_FORMAT_R8G8B8_UNORM, 237 VULKAN_FORMAT_R8G8B8_SNORM = VK_FORMAT_R8G8B8_SNORM, 238 VULKAN_FORMAT_R8G8B8_USCALED = VK_FORMAT_R8G8B8_USCALED, 239 VULKAN_FORMAT_R8G8B8_SSCALED = VK_FORMAT_R8G8B8_SSCALED, 240 VULKAN_FORMAT_R8G8B8_UINT = VK_FORMAT_R8G8B8_UINT, 241 VULKAN_FORMAT_R8G8B8_SINT = VK_FORMAT_R8G8B8_SINT, 242 VULKAN_FORMAT_R8G8B8_SRGB = VK_FORMAT_R8G8B8_SRGB, 243 VULKAN_FORMAT_B8G8R8_UNORM = VK_FORMAT_B8G8R8_UNORM, 244 VULKAN_FORMAT_B8G8R8_SNORM = VK_FORMAT_B8G8R8_SNORM, 245 VULKAN_FORMAT_B8G8R8_USCALED = VK_FORMAT_B8G8R8_USCALED, 246 VULKAN_FORMAT_B8G8R8_SSCALED = VK_FORMAT_B8G8R8_SSCALED, 247 VULKAN_FORMAT_B8G8R8_UINT = VK_FORMAT_B8G8R8_UINT, 248 VULKAN_FORMAT_B8G8R8_SINT = VK_FORMAT_B8G8R8_SINT, 249 VULKAN_FORMAT_B8G8R8_SRGB = VK_FORMAT_B8G8R8_SRGB, 250 VULKAN_FORMAT_R8G8B8A8_UNORM = VK_FORMAT_R8G8B8A8_UNORM, 251 VULKAN_FORMAT_R8G8B8A8_SNORM = VK_FORMAT_R8G8B8A8_SNORM, 252 VULKAN_FORMAT_R8G8B8A8_USCALED = VK_FORMAT_R8G8B8A8_USCALED, 253 VULKAN_FORMAT_R8G8B8A8_SSCALED = VK_FORMAT_R8G8B8A8_SSCALED, 254 VULKAN_FORMAT_R8G8B8A8_UINT = VK_FORMAT_R8G8B8A8_UINT, 255 VULKAN_FORMAT_R8G8B8A8_SINT = VK_FORMAT_R8G8B8A8_SINT, 256 VULKAN_FORMAT_R8G8B8A8_SRGB = VK_FORMAT_R8G8B8A8_SRGB, 257 VULKAN_FORMAT_B8G8R8A8_UNORM = VK_FORMAT_B8G8R8A8_UNORM, 258 VULKAN_FORMAT_B8G8R8A8_SNORM = VK_FORMAT_B8G8R8A8_SNORM, 259 VULKAN_FORMAT_B8G8R8A8_USCALED = VK_FORMAT_B8G8R8A8_USCALED, 260 VULKAN_FORMAT_B8G8R8A8_SSCALED = VK_FORMAT_B8G8R8A8_SSCALED, 261 VULKAN_FORMAT_B8G8R8A8_UINT = VK_FORMAT_B8G8R8A8_UINT, 262 VULKAN_FORMAT_B8G8R8A8_SINT = VK_FORMAT_B8G8R8A8_SINT, 263 VULKAN_FORMAT_B8G8R8A8_SRGB = VK_FORMAT_B8G8R8A8_SRGB, 264 VULKAN_FORMAT_A8B8G8R8_UNORM_PACK32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32, 265 VULKAN_FORMAT_A8B8G8R8_SNORM_PACK32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32, 266 VULKAN_FORMAT_A8B8G8R8_USCALED_PACK32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32, 267 VULKAN_FORMAT_A8B8G8R8_SSCALED_PACK32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32, 268 VULKAN_FORMAT_A8B8G8R8_UINT_PACK32 = VK_FORMAT_A8B8G8R8_UINT_PACK32, 269 VULKAN_FORMAT_A8B8G8R8_SINT_PACK32 = VK_FORMAT_A8B8G8R8_SINT_PACK32, 270 VULKAN_FORMAT_A8B8G8R8_SRGB_PACK32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32, 271 VULKAN_FORMAT_A2R10G10B10_UNORM_PACK32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32, 272 VULKAN_FORMAT_A2R10G10B10_SNORM_PACK32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32, 273 VULKAN_FORMAT_A2R10G10B10_USCALED_PACK32 = 274 VK_FORMAT_A2R10G10B10_USCALED_PACK32, 275 VULKAN_FORMAT_A2R10G10B10_SSCALED_PACK32 = 276 VK_FORMAT_A2R10G10B10_SSCALED_PACK32, 277 VULKAN_FORMAT_A2R10G10B10_UINT_PACK32 = VK_FORMAT_A2R10G10B10_UINT_PACK32, 278 VULKAN_FORMAT_A2R10G10B10_SINT_PACK32 = VK_FORMAT_A2R10G10B10_SINT_PACK32, 279 VULKAN_FORMAT_A2B10G10R10_UNORM_PACK32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32, 280 VULKAN_FORMAT_A2B10G10R10_SNORM_PACK32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32, 281 VULKAN_FORMAT_A2B10G10R10_USCALED_PACK32 = 282 VK_FORMAT_A2B10G10R10_USCALED_PACK32, 283 VULKAN_FORMAT_A2B10G10R10_SSCALED_PACK32 = 284 VK_FORMAT_A2B10G10R10_SSCALED_PACK32, 285 VULKAN_FORMAT_A2B10G10R10_UINT_PACK32 = VK_FORMAT_A2B10G10R10_UINT_PACK32, 286 VULKAN_FORMAT_A2B10G10R10_SINT_PACK32 = VK_FORMAT_A2B10G10R10_SINT_PACK32, 287 VULKAN_FORMAT_R16_UNORM = VK_FORMAT_R16_UNORM, 288 VULKAN_FORMAT_R16_SNORM = VK_FORMAT_R16_SNORM, 289 VULKAN_FORMAT_R16_USCALED = VK_FORMAT_R16_USCALED, 290 VULKAN_FORMAT_R16_SSCALED = VK_FORMAT_R16_SSCALED, 291 VULKAN_FORMAT_R16_UINT = VK_FORMAT_R16_UINT, 292 VULKAN_FORMAT_R16_SINT = VK_FORMAT_R16_SINT, 293 VULKAN_FORMAT_R16_SFLOAT = VK_FORMAT_R16_SFLOAT, 294 VULKAN_FORMAT_R16G16_UNORM = VK_FORMAT_R16G16_UNORM, 295 VULKAN_FORMAT_R16G16_SNORM = VK_FORMAT_R16G16_SNORM, 296 VULKAN_FORMAT_R16G16_USCALED = VK_FORMAT_R16G16_USCALED, 297 VULKAN_FORMAT_R16G16_SSCALED = VK_FORMAT_R16G16_SSCALED, 298 VULKAN_FORMAT_R16G16_UINT = VK_FORMAT_R16G16_UINT, 299 VULKAN_FORMAT_R16G16_SINT = VK_FORMAT_R16G16_SINT, 300 VULKAN_FORMAT_R16G16_SFLOAT = VK_FORMAT_R16G16_SFLOAT, 301 VULKAN_FORMAT_R16G16B16_UNORM = VK_FORMAT_R16G16B16_UNORM, 302 VULKAN_FORMAT_R16G16B16_SNORM = VK_FORMAT_R16G16B16_SNORM, 303 VULKAN_FORMAT_R16G16B16_USCALED = VK_FORMAT_R16G16B16_USCALED, 304 VULKAN_FORMAT_R16G16B16_SSCALED = VK_FORMAT_R16G16B16_SSCALED, 305 VULKAN_FORMAT_R16G16B16_UINT = VK_FORMAT_R16G16B16_UINT, 306 VULKAN_FORMAT_R16G16B16_SINT = VK_FORMAT_R16G16B16_SINT, 307 VULKAN_FORMAT_R16G16B16_SFLOAT = VK_FORMAT_R16G16B16_SFLOAT, 308 VULKAN_FORMAT_R16G16B16A16_UNORM = VK_FORMAT_R16G16B16A16_UNORM, 309 VULKAN_FORMAT_R16G16B16A16_SNORM = VK_FORMAT_R16G16B16A16_SNORM, 310 VULKAN_FORMAT_R16G16B16A16_USCALED = VK_FORMAT_R16G16B16A16_USCALED, 311 VULKAN_FORMAT_R16G16B16A16_SSCALED = VK_FORMAT_R16G16B16A16_SSCALED, 312 VULKAN_FORMAT_R16G16B16A16_UINT = VK_FORMAT_R16G16B16A16_UINT, 313 VULKAN_FORMAT_R16G16B16A16_SINT = VK_FORMAT_R16G16B16A16_SINT, 314 VULKAN_FORMAT_R16G16B16A16_SFLOAT = VK_FORMAT_R16G16B16A16_SFLOAT, 315 VULKAN_FORMAT_R32_UINT = VK_FORMAT_R32_UINT, 316 VULKAN_FORMAT_R32_SINT = VK_FORMAT_R32_SINT, 317 VULKAN_FORMAT_R32_SFLOAT = VK_FORMAT_R32_SFLOAT, 318 VULKAN_FORMAT_R32G32_UINT = VK_FORMAT_R32G32_UINT, 319 VULKAN_FORMAT_R32G32_SINT = VK_FORMAT_R32G32_SINT, 320 VULKAN_FORMAT_R32G32_SFLOAT = VK_FORMAT_R32G32_SFLOAT, 321 VULKAN_FORMAT_R32G32B32_UINT = VK_FORMAT_R32G32B32_UINT, 322 VULKAN_FORMAT_R32G32B32_SINT = VK_FORMAT_R32G32B32_SINT, 323 VULKAN_FORMAT_R32G32B32_SFLOAT = VK_FORMAT_R32G32B32_SFLOAT, 324 VULKAN_FORMAT_R32G32B32A32_UINT = VK_FORMAT_R32G32B32A32_UINT, 325 VULKAN_FORMAT_R32G32B32A32_SINT = VK_FORMAT_R32G32B32A32_SINT, 326 VULKAN_FORMAT_R32G32B32A32_SFLOAT = VK_FORMAT_R32G32B32A32_SFLOAT, 327 VULKAN_FORMAT_R64_UINT = VK_FORMAT_R64_UINT, 328 VULKAN_FORMAT_R64_SINT = VK_FORMAT_R64_SINT, 329 VULKAN_FORMAT_R64_SFLOAT = VK_FORMAT_R64_SFLOAT, 330 VULKAN_FORMAT_R64G64_UINT = VK_FORMAT_R64G64_UINT, 331 VULKAN_FORMAT_R64G64_SINT = VK_FORMAT_R64G64_SINT, 332 VULKAN_FORMAT_R64G64_SFLOAT = VK_FORMAT_R64G64_SFLOAT, 333 VULKAN_FORMAT_R64G64B64_UINT = VK_FORMAT_R64G64B64_UINT, 334 VULKAN_FORMAT_R64G64B64_SINT = VK_FORMAT_R64G64B64_SINT, 335 VULKAN_FORMAT_R64G64B64_SFLOAT = VK_FORMAT_R64G64B64_SFLOAT, 336 VULKAN_FORMAT_R64G64B64A64_UINT = VK_FORMAT_R64G64B64A64_UINT, 337 VULKAN_FORMAT_R64G64B64A64_SINT = VK_FORMAT_R64G64B64A64_SINT, 338 VULKAN_FORMAT_R64G64B64A64_SFLOAT = VK_FORMAT_R64G64B64A64_SFLOAT, 339 VULKAN_FORMAT_B10G11R11_UFLOAT_PACK32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32, 340 VULKAN_FORMAT_E5B9G9R9_UFLOAT_PACK32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, 341 VULKAN_FORMAT_D16_UNORM = VK_FORMAT_D16_UNORM, 342 VULKAN_FORMAT_X8_D24_UNORM_PACK32 = VK_FORMAT_X8_D24_UNORM_PACK32, 343 VULKAN_FORMAT_D32_SFLOAT = VK_FORMAT_D32_SFLOAT, 344 VULKAN_FORMAT_S8_UINT = VK_FORMAT_S8_UINT, 345 VULKAN_FORMAT_D16_UNORM_S8_UINT = VK_FORMAT_D16_UNORM_S8_UINT, 346 VULKAN_FORMAT_D24_UNORM_S8_UINT = VK_FORMAT_D24_UNORM_S8_UINT, 347 VULKAN_FORMAT_D32_SFLOAT_S8_UINT = VK_FORMAT_D32_SFLOAT_S8_UINT, 348 VULKAN_FORMAT_BC1_RGB_UNORM_BLOCK = VK_FORMAT_BC1_RGB_UNORM_BLOCK, 349 VULKAN_FORMAT_BC1_RGB_SRGB_BLOCK = VK_FORMAT_BC1_RGB_SRGB_BLOCK, 350 VULKAN_FORMAT_BC1_RGBA_UNORM_BLOCK = VK_FORMAT_BC1_RGBA_UNORM_BLOCK, 351 VULKAN_FORMAT_BC1_RGBA_SRGB_BLOCK = VK_FORMAT_BC1_RGBA_SRGB_BLOCK, 352 VULKAN_FORMAT_BC2_UNORM_BLOCK = VK_FORMAT_BC2_UNORM_BLOCK, 353 VULKAN_FORMAT_BC2_SRGB_BLOCK = VK_FORMAT_BC2_SRGB_BLOCK, 354 VULKAN_FORMAT_BC3_UNORM_BLOCK = VK_FORMAT_BC3_UNORM_BLOCK, 355 VULKAN_FORMAT_BC3_SRGB_BLOCK = VK_FORMAT_BC3_SRGB_BLOCK, 356 VULKAN_FORMAT_BC4_UNORM_BLOCK = VK_FORMAT_BC4_UNORM_BLOCK, 357 VULKAN_FORMAT_BC4_SNORM_BLOCK = VK_FORMAT_BC4_SNORM_BLOCK, 358 VULKAN_FORMAT_BC5_UNORM_BLOCK = VK_FORMAT_BC5_UNORM_BLOCK, 359 VULKAN_FORMAT_BC5_SNORM_BLOCK = VK_FORMAT_BC5_SNORM_BLOCK, 360 VULKAN_FORMAT_BC6H_UFLOAT_BLOCK = VK_FORMAT_BC6H_UFLOAT_BLOCK, 361 VULKAN_FORMAT_BC6H_SFLOAT_BLOCK = VK_FORMAT_BC6H_SFLOAT_BLOCK, 362 VULKAN_FORMAT_BC7_UNORM_BLOCK = VK_FORMAT_BC7_UNORM_BLOCK, 363 VULKAN_FORMAT_BC7_SRGB_BLOCK = VK_FORMAT_BC7_SRGB_BLOCK, 364 VULKAN_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, 365 VULKAN_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, 366 VULKAN_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 367 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, 368 VULKAN_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, 369 VULKAN_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 370 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, 371 VULKAN_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, 372 VULKAN_FORMAT_EAC_R11_UNORM_BLOCK = VK_FORMAT_EAC_R11_UNORM_BLOCK, 373 VULKAN_FORMAT_EAC_R11_SNORM_BLOCK = VK_FORMAT_EAC_R11_SNORM_BLOCK, 374 VULKAN_FORMAT_EAC_R11G11_UNORM_BLOCK = VK_FORMAT_EAC_R11G11_UNORM_BLOCK, 375 VULKAN_FORMAT_EAC_R11G11_SNORM_BLOCK = VK_FORMAT_EAC_R11G11_SNORM_BLOCK, 376 VULKAN_FORMAT_ASTC_4x4_UNORM_BLOCK = VK_FORMAT_ASTC_4x4_UNORM_BLOCK, 377 VULKAN_FORMAT_ASTC_4x4_SRGB_BLOCK = VK_FORMAT_ASTC_4x4_SRGB_BLOCK, 378 VULKAN_FORMAT_ASTC_5x4_UNORM_BLOCK = VK_FORMAT_ASTC_5x4_UNORM_BLOCK, 379 VULKAN_FORMAT_ASTC_5x4_SRGB_BLOCK = VK_FORMAT_ASTC_5x4_SRGB_BLOCK, 380 VULKAN_FORMAT_ASTC_5x5_UNORM_BLOCK = VK_FORMAT_ASTC_5x5_UNORM_BLOCK, 381 VULKAN_FORMAT_ASTC_5x5_SRGB_BLOCK = VK_FORMAT_ASTC_5x5_SRGB_BLOCK, 382 VULKAN_FORMAT_ASTC_6x5_UNORM_BLOCK = VK_FORMAT_ASTC_6x5_UNORM_BLOCK, 383 VULKAN_FORMAT_ASTC_6x5_SRGB_BLOCK = VK_FORMAT_ASTC_6x5_SRGB_BLOCK, 384 VULKAN_FORMAT_ASTC_6x6_UNORM_BLOCK = VK_FORMAT_ASTC_6x6_UNORM_BLOCK, 385 VULKAN_FORMAT_ASTC_6x6_SRGB_BLOCK = VK_FORMAT_ASTC_6x6_SRGB_BLOCK, 386 VULKAN_FORMAT_ASTC_8x5_UNORM_BLOCK = VK_FORMAT_ASTC_8x5_UNORM_BLOCK, 387 VULKAN_FORMAT_ASTC_8x5_SRGB_BLOCK = VK_FORMAT_ASTC_8x5_SRGB_BLOCK, 388 VULKAN_FORMAT_ASTC_8x6_UNORM_BLOCK = VK_FORMAT_ASTC_8x6_UNORM_BLOCK, 389 VULKAN_FORMAT_ASTC_8x6_SRGB_BLOCK = VK_FORMAT_ASTC_8x6_SRGB_BLOCK, 390 VULKAN_FORMAT_ASTC_8x8_UNORM_BLOCK = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, 391 VULKAN_FORMAT_ASTC_8x8_SRGB_BLOCK = VK_FORMAT_ASTC_8x8_SRGB_BLOCK, 392 VULKAN_FORMAT_ASTC_10x5_UNORM_BLOCK = VK_FORMAT_ASTC_10x5_UNORM_BLOCK, 393 VULKAN_FORMAT_ASTC_10x5_SRGB_BLOCK = VK_FORMAT_ASTC_10x5_SRGB_BLOCK, 394 VULKAN_FORMAT_ASTC_10x6_UNORM_BLOCK = VK_FORMAT_ASTC_10x6_UNORM_BLOCK, 395 VULKAN_FORMAT_ASTC_10x6_SRGB_BLOCK = VK_FORMAT_ASTC_10x6_SRGB_BLOCK, 396 VULKAN_FORMAT_ASTC_10x8_UNORM_BLOCK = VK_FORMAT_ASTC_10x8_UNORM_BLOCK, 397 VULKAN_FORMAT_ASTC_10x8_SRGB_BLOCK = VK_FORMAT_ASTC_10x8_SRGB_BLOCK, 398 VULKAN_FORMAT_ASTC_10x10_UNORM_BLOCK = VK_FORMAT_ASTC_10x10_UNORM_BLOCK, 399 VULKAN_FORMAT_ASTC_10x10_SRGB_BLOCK = VK_FORMAT_ASTC_10x10_SRGB_BLOCK, 400 VULKAN_FORMAT_ASTC_12x10_UNORM_BLOCK = VK_FORMAT_ASTC_12x10_UNORM_BLOCK, 401 VULKAN_FORMAT_ASTC_12x10_SRGB_BLOCK = VK_FORMAT_ASTC_12x10_SRGB_BLOCK, 402 VULKAN_FORMAT_ASTC_12x12_UNORM_BLOCK = VK_FORMAT_ASTC_12x12_UNORM_BLOCK, 403 VULKAN_FORMAT_ASTC_12x12_SRGB_BLOCK = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, 404 }; 405 406 enum VulkanImageLayout 407 { 408 VULKAN_IMAGE_LAYOUT_UNDEFINED = VK_IMAGE_LAYOUT_UNDEFINED, 409 VULKAN_IMAGE_LAYOUT_GENERAL = VK_IMAGE_LAYOUT_GENERAL, 410 VULKAN_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 411 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, 412 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 413 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 414 }; 415 416 enum VulkanImageUsage 417 { 418 VULKAN_IMAGE_USAGE_TRANSFER_SRC = VK_IMAGE_USAGE_TRANSFER_SRC_BIT, 419 VULKAN_IMAGE_USAGE_TRANSFER_DST = VK_IMAGE_USAGE_TRANSFER_DST_BIT, 420 VULKAN_IMAGE_USAGE_SAMPLED = VK_IMAGE_USAGE_SAMPLED_BIT, 421 VULKAN_IMAGE_USAGE_STORAGE = VK_IMAGE_USAGE_STORAGE_BIT, 422 VULKAN_IMAGE_USAGE_COLOR_ATTACHMENT = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, 423 VULKAN_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT = 424 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, 425 VULKAN_IMAGE_USAGE_TRANSIENT_ATTACHMENT = 426 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, 427 VULKAN_IMAGE_USAGE_INPUT_ATTACHMENT = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, 428 VULKAN_IMAGE_USAGE_TRANSFER_SRC_DST = 429 VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, 430 VULKAN_IMAGE_USAGE_STORAGE_TRANSFER_SRC_DST = VULKAN_IMAGE_USAGE_STORAGE 431 | VULKAN_IMAGE_USAGE_TRANSFER_SRC | VULKAN_IMAGE_USAGE_TRANSFER_DST, 432 VULKAN_IMAGE_USAGE_SAMPLED_STORAGE_TRANSFER_SRC_DST = 433 VK_IMAGE_USAGE_SAMPLED_BIT | VULKAN_IMAGE_USAGE_STORAGE 434 | VULKAN_IMAGE_USAGE_TRANSFER_SRC | VULKAN_IMAGE_USAGE_TRANSFER_DST 435 }; 436 437 enum VulkanImageTiling 438 { 439 VULKAN_IMAGE_TILING_OPTIMAL = VK_IMAGE_TILING_OPTIMAL, 440 VULKAN_IMAGE_TILING_LINEAR = VK_IMAGE_TILING_LINEAR 441 }; 442 443 enum VulkanImageCreateFlag 444 { 445 VULKAN_IMAGE_CREATE_FLAG_NONE = 0, 446 VULKAN_IMAGE_CREATE_FLAG_MUTABLE_FORMAT = 447 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, 448 VULKAN_IMAGE_CREATE_FLAG_CUBE_COMPATIBLE = 449 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, 450 VULKAN_IMAGE_CREATE_FLAG_CUBE_COMPATIBLE_MUTABLE_FORMAT = 451 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT | VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT 452 }; 453 454 enum VulkanImageViewType 455 { 456 VULKAN_IMAGE_VIEW_TYPE_1D = VK_IMAGE_VIEW_TYPE_1D, 457 VULKAN_IMAGE_VIEW_TYPE_2D = VK_IMAGE_VIEW_TYPE_2D, 458 VULKAN_IMAGE_VIEW_TYPE_3D = VK_IMAGE_VIEW_TYPE_3D, 459 VULKAN_IMAGE_VIEW_TYPE_CUBE = VK_IMAGE_VIEW_TYPE_CUBE, 460 VULKAN_IMAGE_VIEW_TYPE_1D_ARRAY = VK_IMAGE_VIEW_TYPE_1D_ARRAY, 461 VULKAN_IMAGE_VIEW_TYPE_2D_ARRAY = VK_IMAGE_VIEW_TYPE_2D_ARRAY, 462 VULKAN_IMAGE_VIEW_TYPE_CUBE_ARRAY = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, 463 }; 464 465 #endif // _vulkan_wrapper_types_hpp_ 466