1 /* WARNING: This is auto-generated file. Do not modify, since changes will 2 * be lost! Modify the generating script instead. 3 */ 4 namespace refdetails 5 { 6 7 template<> 8 void Deleter<VkDeviceMemory>::operator() (VkDeviceMemory obj) const 9 { 10 m_deviceIface->freeMemory(m_device, obj, m_allocator); 11 } 12 13 template<> 14 void Deleter<VkFence>::operator() (VkFence obj) const 15 { 16 m_deviceIface->destroyFence(m_device, obj, m_allocator); 17 } 18 19 template<> 20 void Deleter<VkSemaphore>::operator() (VkSemaphore obj) const 21 { 22 m_deviceIface->destroySemaphore(m_device, obj, m_allocator); 23 } 24 25 template<> 26 void Deleter<VkEvent>::operator() (VkEvent obj) const 27 { 28 m_deviceIface->destroyEvent(m_device, obj, m_allocator); 29 } 30 31 template<> 32 void Deleter<VkQueryPool>::operator() (VkQueryPool obj) const 33 { 34 m_deviceIface->destroyQueryPool(m_device, obj, m_allocator); 35 } 36 37 template<> 38 void Deleter<VkBuffer>::operator() (VkBuffer obj) const 39 { 40 m_deviceIface->destroyBuffer(m_device, obj, m_allocator); 41 } 42 43 template<> 44 void Deleter<VkBufferView>::operator() (VkBufferView obj) const 45 { 46 m_deviceIface->destroyBufferView(m_device, obj, m_allocator); 47 } 48 49 template<> 50 void Deleter<VkImage>::operator() (VkImage obj) const 51 { 52 m_deviceIface->destroyImage(m_device, obj, m_allocator); 53 } 54 55 template<> 56 void Deleter<VkImageView>::operator() (VkImageView obj) const 57 { 58 m_deviceIface->destroyImageView(m_device, obj, m_allocator); 59 } 60 61 template<> 62 void Deleter<VkShaderModule>::operator() (VkShaderModule obj) const 63 { 64 m_deviceIface->destroyShaderModule(m_device, obj, m_allocator); 65 } 66 67 template<> 68 void Deleter<VkPipelineCache>::operator() (VkPipelineCache obj) const 69 { 70 m_deviceIface->destroyPipelineCache(m_device, obj, m_allocator); 71 } 72 73 template<> 74 void Deleter<VkPipeline>::operator() (VkPipeline obj) const 75 { 76 m_deviceIface->destroyPipeline(m_device, obj, m_allocator); 77 } 78 79 template<> 80 void Deleter<VkPipelineLayout>::operator() (VkPipelineLayout obj) const 81 { 82 m_deviceIface->destroyPipelineLayout(m_device, obj, m_allocator); 83 } 84 85 template<> 86 void Deleter<VkSampler>::operator() (VkSampler obj) const 87 { 88 m_deviceIface->destroySampler(m_device, obj, m_allocator); 89 } 90 91 template<> 92 void Deleter<VkDescriptorSetLayout>::operator() (VkDescriptorSetLayout obj) const 93 { 94 m_deviceIface->destroyDescriptorSetLayout(m_device, obj, m_allocator); 95 } 96 97 template<> 98 void Deleter<VkDescriptorPool>::operator() (VkDescriptorPool obj) const 99 { 100 m_deviceIface->destroyDescriptorPool(m_device, obj, m_allocator); 101 } 102 103 template<> 104 void Deleter<VkFramebuffer>::operator() (VkFramebuffer obj) const 105 { 106 m_deviceIface->destroyFramebuffer(m_device, obj, m_allocator); 107 } 108 109 template<> 110 void Deleter<VkRenderPass>::operator() (VkRenderPass obj) const 111 { 112 m_deviceIface->destroyRenderPass(m_device, obj, m_allocator); 113 } 114 115 template<> 116 void Deleter<VkCommandPool>::operator() (VkCommandPool obj) const 117 { 118 m_deviceIface->destroyCommandPool(m_device, obj, m_allocator); 119 } 120 121 template<> 122 void Deleter<VkSamplerYcbcrConversion>::operator() (VkSamplerYcbcrConversion obj) const 123 { 124 m_deviceIface->destroySamplerYcbcrConversion(m_device, obj, m_allocator); 125 } 126 127 template<> 128 void Deleter<VkDescriptorUpdateTemplate>::operator() (VkDescriptorUpdateTemplate obj) const 129 { 130 m_deviceIface->destroyDescriptorUpdateTemplate(m_device, obj, m_allocator); 131 } 132 133 template<> 134 void Deleter<VkSwapchainKHR>::operator() (VkSwapchainKHR obj) const 135 { 136 m_deviceIface->destroySwapchainKHR(m_device, obj, m_allocator); 137 } 138 139 template<> 140 void Deleter<VkIndirectCommandsLayoutNVX>::operator() (VkIndirectCommandsLayoutNVX obj) const 141 { 142 m_deviceIface->destroyIndirectCommandsLayoutNVX(m_device, obj, m_allocator); 143 } 144 145 template<> 146 void Deleter<VkObjectTableNVX>::operator() (VkObjectTableNVX obj) const 147 { 148 m_deviceIface->destroyObjectTableNVX(m_device, obj, m_allocator); 149 } 150 151 template<> 152 void Deleter<VkValidationCacheEXT>::operator() (VkValidationCacheEXT obj) const 153 { 154 m_deviceIface->destroyValidationCacheEXT(m_device, obj, m_allocator); 155 } 156 157 } // refdetails 158 159 Move<VkInstance> createInstance (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 160 { 161 VkInstance object = 0; 162 VK_CHECK(vk.createInstance(pCreateInfo, pAllocator, &object)); 163 return Move<VkInstance>(check<VkInstance>(object), Deleter<VkInstance>(vk, object, pAllocator)); 164 } 165 166 Move<VkDevice> createDevice (const InstanceInterface& vk, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 167 { 168 VkDevice object = 0; 169 VK_CHECK(vk.createDevice(physicalDevice, pCreateInfo, pAllocator, &object)); 170 return Move<VkDevice>(check<VkDevice>(object), Deleter<VkDevice>(vk, object, pAllocator)); 171 } 172 173 Move<VkDeviceMemory> allocateMemory (const DeviceInterface& vk, VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator) 174 { 175 VkDeviceMemory object = 0; 176 VK_CHECK(vk.allocateMemory(device, pAllocateInfo, pAllocator, &object)); 177 return Move<VkDeviceMemory>(check<VkDeviceMemory>(object), Deleter<VkDeviceMemory>(vk, device, pAllocator)); 178 } 179 180 Move<VkFence> createFence (const DeviceInterface& vk, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 181 { 182 VkFence object = 0; 183 VK_CHECK(vk.createFence(device, pCreateInfo, pAllocator, &object)); 184 return Move<VkFence>(check<VkFence>(object), Deleter<VkFence>(vk, device, pAllocator)); 185 } 186 187 Move<VkSemaphore> createSemaphore (const DeviceInterface& vk, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 188 { 189 VkSemaphore object = 0; 190 VK_CHECK(vk.createSemaphore(device, pCreateInfo, pAllocator, &object)); 191 return Move<VkSemaphore>(check<VkSemaphore>(object), Deleter<VkSemaphore>(vk, device, pAllocator)); 192 } 193 194 Move<VkEvent> createEvent (const DeviceInterface& vk, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 195 { 196 VkEvent object = 0; 197 VK_CHECK(vk.createEvent(device, pCreateInfo, pAllocator, &object)); 198 return Move<VkEvent>(check<VkEvent>(object), Deleter<VkEvent>(vk, device, pAllocator)); 199 } 200 201 Move<VkQueryPool> createQueryPool (const DeviceInterface& vk, VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 202 { 203 VkQueryPool object = 0; 204 VK_CHECK(vk.createQueryPool(device, pCreateInfo, pAllocator, &object)); 205 return Move<VkQueryPool>(check<VkQueryPool>(object), Deleter<VkQueryPool>(vk, device, pAllocator)); 206 } 207 208 Move<VkBuffer> createBuffer (const DeviceInterface& vk, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 209 { 210 VkBuffer object = 0; 211 VK_CHECK(vk.createBuffer(device, pCreateInfo, pAllocator, &object)); 212 return Move<VkBuffer>(check<VkBuffer>(object), Deleter<VkBuffer>(vk, device, pAllocator)); 213 } 214 215 Move<VkBufferView> createBufferView (const DeviceInterface& vk, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 216 { 217 VkBufferView object = 0; 218 VK_CHECK(vk.createBufferView(device, pCreateInfo, pAllocator, &object)); 219 return Move<VkBufferView>(check<VkBufferView>(object), Deleter<VkBufferView>(vk, device, pAllocator)); 220 } 221 222 Move<VkImage> createImage (const DeviceInterface& vk, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 223 { 224 VkImage object = 0; 225 VK_CHECK(vk.createImage(device, pCreateInfo, pAllocator, &object)); 226 return Move<VkImage>(check<VkImage>(object), Deleter<VkImage>(vk, device, pAllocator)); 227 } 228 229 Move<VkImageView> createImageView (const DeviceInterface& vk, VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 230 { 231 VkImageView object = 0; 232 VK_CHECK(vk.createImageView(device, pCreateInfo, pAllocator, &object)); 233 return Move<VkImageView>(check<VkImageView>(object), Deleter<VkImageView>(vk, device, pAllocator)); 234 } 235 236 Move<VkShaderModule> createShaderModule (const DeviceInterface& vk, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 237 { 238 VkShaderModule object = 0; 239 VK_CHECK(vk.createShaderModule(device, pCreateInfo, pAllocator, &object)); 240 return Move<VkShaderModule>(check<VkShaderModule>(object), Deleter<VkShaderModule>(vk, device, pAllocator)); 241 } 242 243 Move<VkPipelineCache> createPipelineCache (const DeviceInterface& vk, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 244 { 245 VkPipelineCache object = 0; 246 VK_CHECK(vk.createPipelineCache(device, pCreateInfo, pAllocator, &object)); 247 return Move<VkPipelineCache>(check<VkPipelineCache>(object), Deleter<VkPipelineCache>(vk, device, pAllocator)); 248 } 249 250 Move<VkPipelineLayout> createPipelineLayout (const DeviceInterface& vk, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 251 { 252 VkPipelineLayout object = 0; 253 VK_CHECK(vk.createPipelineLayout(device, pCreateInfo, pAllocator, &object)); 254 return Move<VkPipelineLayout>(check<VkPipelineLayout>(object), Deleter<VkPipelineLayout>(vk, device, pAllocator)); 255 } 256 257 Move<VkSampler> createSampler (const DeviceInterface& vk, VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 258 { 259 VkSampler object = 0; 260 VK_CHECK(vk.createSampler(device, pCreateInfo, pAllocator, &object)); 261 return Move<VkSampler>(check<VkSampler>(object), Deleter<VkSampler>(vk, device, pAllocator)); 262 } 263 264 Move<VkDescriptorSetLayout> createDescriptorSetLayout (const DeviceInterface& vk, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 265 { 266 VkDescriptorSetLayout object = 0; 267 VK_CHECK(vk.createDescriptorSetLayout(device, pCreateInfo, pAllocator, &object)); 268 return Move<VkDescriptorSetLayout>(check<VkDescriptorSetLayout>(object), Deleter<VkDescriptorSetLayout>(vk, device, pAllocator)); 269 } 270 271 Move<VkDescriptorPool> createDescriptorPool (const DeviceInterface& vk, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 272 { 273 VkDescriptorPool object = 0; 274 VK_CHECK(vk.createDescriptorPool(device, pCreateInfo, pAllocator, &object)); 275 return Move<VkDescriptorPool>(check<VkDescriptorPool>(object), Deleter<VkDescriptorPool>(vk, device, pAllocator)); 276 } 277 278 Move<VkFramebuffer> createFramebuffer (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 279 { 280 VkFramebuffer object = 0; 281 VK_CHECK(vk.createFramebuffer(device, pCreateInfo, pAllocator, &object)); 282 return Move<VkFramebuffer>(check<VkFramebuffer>(object), Deleter<VkFramebuffer>(vk, device, pAllocator)); 283 } 284 285 Move<VkRenderPass> createRenderPass (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 286 { 287 VkRenderPass object = 0; 288 VK_CHECK(vk.createRenderPass(device, pCreateInfo, pAllocator, &object)); 289 return Move<VkRenderPass>(check<VkRenderPass>(object), Deleter<VkRenderPass>(vk, device, pAllocator)); 290 } 291 292 Move<VkCommandPool> createCommandPool (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 293 { 294 VkCommandPool object = 0; 295 VK_CHECK(vk.createCommandPool(device, pCreateInfo, pAllocator, &object)); 296 return Move<VkCommandPool>(check<VkCommandPool>(object), Deleter<VkCommandPool>(vk, device, pAllocator)); 297 } 298 299 Move<VkSamplerYcbcrConversion> createSamplerYcbcrConversion (const DeviceInterface& vk, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 300 { 301 VkSamplerYcbcrConversion object = 0; 302 VK_CHECK(vk.createSamplerYcbcrConversion(device, pCreateInfo, pAllocator, &object)); 303 return Move<VkSamplerYcbcrConversion>(check<VkSamplerYcbcrConversion>(object), Deleter<VkSamplerYcbcrConversion>(vk, device, pAllocator)); 304 } 305 306 Move<VkDescriptorUpdateTemplate> createDescriptorUpdateTemplate (const DeviceInterface& vk, VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator) 307 { 308 VkDescriptorUpdateTemplate object = 0; 309 VK_CHECK(vk.createDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, &object)); 310 return Move<VkDescriptorUpdateTemplate>(check<VkDescriptorUpdateTemplate>(object), Deleter<VkDescriptorUpdateTemplate>(vk, device, pAllocator)); 311 } 312 313 Move<VkSwapchainKHR> createSwapchainKHR (const DeviceInterface& vk, VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 314 { 315 VkSwapchainKHR object = 0; 316 VK_CHECK(vk.createSwapchainKHR(device, pCreateInfo, pAllocator, &object)); 317 return Move<VkSwapchainKHR>(check<VkSwapchainKHR>(object), Deleter<VkSwapchainKHR>(vk, device, pAllocator)); 318 } 319 320 Move<VkSurfaceKHR> createDisplayPlaneSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 321 { 322 VkSurfaceKHR object = 0; 323 VK_CHECK(vk.createDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, &object)); 324 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 325 } 326 327 Move<VkSwapchainKHR> createSharedSwapchainsKHR (const DeviceInterface& vk, VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator) 328 { 329 VkSwapchainKHR object = 0; 330 VK_CHECK(vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, &object)); 331 return Move<VkSwapchainKHR>(check<VkSwapchainKHR>(object), Deleter<VkSwapchainKHR>(vk, device, pAllocator)); 332 } 333 334 Move<VkSurfaceKHR> createXlibSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 335 { 336 VkSurfaceKHR object = 0; 337 VK_CHECK(vk.createXlibSurfaceKHR(instance, pCreateInfo, pAllocator, &object)); 338 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 339 } 340 341 Move<VkSurfaceKHR> createXcbSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 342 { 343 VkSurfaceKHR object = 0; 344 VK_CHECK(vk.createXcbSurfaceKHR(instance, pCreateInfo, pAllocator, &object)); 345 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 346 } 347 348 Move<VkSurfaceKHR> createWaylandSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 349 { 350 VkSurfaceKHR object = 0; 351 VK_CHECK(vk.createWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, &object)); 352 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 353 } 354 355 Move<VkSurfaceKHR> createMirSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 356 { 357 VkSurfaceKHR object = 0; 358 VK_CHECK(vk.createMirSurfaceKHR(instance, pCreateInfo, pAllocator, &object)); 359 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 360 } 361 362 Move<VkSurfaceKHR> createAndroidSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 363 { 364 VkSurfaceKHR object = 0; 365 VK_CHECK(vk.createAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, &object)); 366 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 367 } 368 369 Move<VkSurfaceKHR> createWin32SurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator) 370 { 371 VkSurfaceKHR object = 0; 372 VK_CHECK(vk.createWin32SurfaceKHR(instance, pCreateInfo, pAllocator, &object)); 373 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 374 } 375 376 Move<VkDebugReportCallbackEXT> createDebugReportCallbackEXT (const InstanceInterface& vk, VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator) 377 { 378 VkDebugReportCallbackEXT object = 0; 379 VK_CHECK(vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, &object)); 380 return Move<VkDebugReportCallbackEXT>(check<VkDebugReportCallbackEXT>(object), Deleter<VkDebugReportCallbackEXT>(vk, instance, pAllocator)); 381 } 382 383 Move<VkSurfaceKHR> createViSurfaceNN (const InstanceInterface& vk, VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator) 384 { 385 VkSurfaceKHR object = 0; 386 VK_CHECK(vk.createViSurfaceNN(instance, pCreateInfo, pAllocator, &object)); 387 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 388 } 389 390 Move<VkIndirectCommandsLayoutNVX> createIndirectCommandsLayoutNVX (const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator) 391 { 392 VkIndirectCommandsLayoutNVX object = 0; 393 VK_CHECK(vk.createIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, &object)); 394 return Move<VkIndirectCommandsLayoutNVX>(check<VkIndirectCommandsLayoutNVX>(object), Deleter<VkIndirectCommandsLayoutNVX>(vk, device, pAllocator)); 395 } 396 397 Move<VkObjectTableNVX> createObjectTableNVX (const DeviceInterface& vk, VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator) 398 { 399 VkObjectTableNVX object = 0; 400 VK_CHECK(vk.createObjectTableNVX(device, pCreateInfo, pAllocator, &object)); 401 return Move<VkObjectTableNVX>(check<VkObjectTableNVX>(object), Deleter<VkObjectTableNVX>(vk, device, pAllocator)); 402 } 403 404 Move<VkSurfaceKHR> createIOSSurfaceMVK (const InstanceInterface& vk, VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator) 405 { 406 VkSurfaceKHR object = 0; 407 VK_CHECK(vk.createIOSSurfaceMVK(instance, pCreateInfo, pAllocator, &object)); 408 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 409 } 410 411 Move<VkSurfaceKHR> createMacOSSurfaceMVK (const InstanceInterface& vk, VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator) 412 { 413 VkSurfaceKHR object = 0; 414 VK_CHECK(vk.createMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, &object)); 415 return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator)); 416 } 417 418 Move<VkValidationCacheEXT> createValidationCacheEXT (const DeviceInterface& vk, VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator) 419 { 420 VkValidationCacheEXT object = 0; 421 VK_CHECK(vk.createValidationCacheEXT(device, pCreateInfo, pAllocator, &object)); 422 return Move<VkValidationCacheEXT>(check<VkValidationCacheEXT>(object), Deleter<VkValidationCacheEXT>(vk, device, pAllocator)); 423 } 424 425