| 1 | /* |
|---|---|
| 2 | Simple DirectMedia Layer |
| 3 | Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org> |
| 4 | |
| 5 | This software is provided 'as-is', without any express or implied |
| 6 | warranty. In no event will the authors be held liable for any damages |
| 7 | arising from the use of this software. |
| 8 | |
| 9 | Permission is granted to anyone to use this software for any purpose, |
| 10 | including commercial applications, and to alter it and redistribute it |
| 11 | freely, subject to the following restrictions: |
| 12 | |
| 13 | 1. The origin of this software must not be misrepresented; you must not |
| 14 | claim that you wrote the original software. If you use this software |
| 15 | in a product, an acknowledgment in the product documentation would be |
| 16 | appreciated but is not required. |
| 17 | 2. Altered source versions must be plainly marked as such, and must not be |
| 18 | misrepresented as being the original software. |
| 19 | 3. This notice may not be removed or altered from any source distribution. |
| 20 | */ |
| 21 | |
| 22 | /* |
| 23 | * Global functions from the Vulkan Loader |
| 24 | */ |
| 25 | |
| 26 | #ifndef VULKAN_GLOBAL_FUNCTION |
| 27 | #define VULKAN_GLOBAL_FUNCTION(name) |
| 28 | #endif |
| 29 | VULKAN_GLOBAL_FUNCTION(vkCreateInstance) |
| 30 | VULKAN_GLOBAL_FUNCTION(vkEnumerateInstanceExtensionProperties) |
| 31 | VULKAN_GLOBAL_FUNCTION(vkEnumerateInstanceLayerProperties) |
| 32 | |
| 33 | /* |
| 34 | * vkInstance, created by global vkCreateInstance function |
| 35 | */ |
| 36 | |
| 37 | #ifndef VULKAN_INSTANCE_FUNCTION |
| 38 | #define VULKAN_INSTANCE_FUNCTION(name) |
| 39 | #endif |
| 40 | |
| 41 | // Vulkan 1.0 |
| 42 | VULKAN_INSTANCE_FUNCTION(vkGetDeviceProcAddr) |
| 43 | VULKAN_INSTANCE_FUNCTION(vkCreateDevice) |
| 44 | VULKAN_INSTANCE_FUNCTION(vkDestroyInstance) |
| 45 | VULKAN_INSTANCE_FUNCTION(vkEnumerateDeviceExtensionProperties) |
| 46 | VULKAN_INSTANCE_FUNCTION(vkEnumeratePhysicalDevices) |
| 47 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceFeatures) |
| 48 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceQueueFamilyProperties) |
| 49 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceFormatProperties) |
| 50 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceImageFormatProperties) |
| 51 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceMemoryProperties) |
| 52 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceProperties) |
| 53 | |
| 54 | // VK_KHR_get_physical_device_properties2, needed for KHR_driver_properties |
| 55 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceProperties2KHR) |
| 56 | |
| 57 | // VK_KHR_surface |
| 58 | VULKAN_INSTANCE_FUNCTION(vkDestroySurfaceKHR) |
| 59 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) |
| 60 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR) |
| 61 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR) |
| 62 | VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR) |
| 63 | |
| 64 | // VK_EXT_debug_utils |
| 65 | VULKAN_INSTANCE_FUNCTION(vkCmdBeginDebugUtilsLabelEXT) |
| 66 | VULKAN_INSTANCE_FUNCTION(vkSetDebugUtilsObjectNameEXT) |
| 67 | VULKAN_INSTANCE_FUNCTION(vkCmdEndDebugUtilsLabelEXT) |
| 68 | VULKAN_INSTANCE_FUNCTION(vkCmdInsertDebugUtilsLabelEXT) |
| 69 | |
| 70 | /* |
| 71 | * vkDevice, created by a vkInstance |
| 72 | */ |
| 73 | |
| 74 | #ifndef VULKAN_DEVICE_FUNCTION |
| 75 | #define VULKAN_DEVICE_FUNCTION(name) |
| 76 | #endif |
| 77 | |
| 78 | // Vulkan 1.0 |
| 79 | VULKAN_DEVICE_FUNCTION(vkAllocateCommandBuffers) |
| 80 | VULKAN_DEVICE_FUNCTION(vkAllocateDescriptorSets) |
| 81 | VULKAN_DEVICE_FUNCTION(vkAllocateMemory) |
| 82 | VULKAN_DEVICE_FUNCTION(vkBeginCommandBuffer) |
| 83 | VULKAN_DEVICE_FUNCTION(vkBindBufferMemory) |
| 84 | VULKAN_DEVICE_FUNCTION(vkBindImageMemory) |
| 85 | VULKAN_DEVICE_FUNCTION(vkCmdBeginRenderPass) |
| 86 | VULKAN_DEVICE_FUNCTION(vkCmdBindDescriptorSets) |
| 87 | VULKAN_DEVICE_FUNCTION(vkCmdBindIndexBuffer) |
| 88 | VULKAN_DEVICE_FUNCTION(vkCmdBindPipeline) |
| 89 | VULKAN_DEVICE_FUNCTION(vkCmdBindVertexBuffers) |
| 90 | VULKAN_DEVICE_FUNCTION(vkCmdBlitImage) |
| 91 | VULKAN_DEVICE_FUNCTION(vkCmdClearAttachments) |
| 92 | VULKAN_DEVICE_FUNCTION(vkCmdClearColorImage) |
| 93 | VULKAN_DEVICE_FUNCTION(vkCmdClearDepthStencilImage) |
| 94 | VULKAN_DEVICE_FUNCTION(vkCmdCopyBuffer) |
| 95 | VULKAN_DEVICE_FUNCTION(vkCmdCopyImage) |
| 96 | VULKAN_DEVICE_FUNCTION(vkCmdCopyBufferToImage) |
| 97 | VULKAN_DEVICE_FUNCTION(vkCmdCopyImageToBuffer) |
| 98 | VULKAN_DEVICE_FUNCTION(vkCmdDispatch) |
| 99 | VULKAN_DEVICE_FUNCTION(vkCmdDispatchIndirect) |
| 100 | VULKAN_DEVICE_FUNCTION(vkCmdDraw) |
| 101 | VULKAN_DEVICE_FUNCTION(vkCmdDrawIndexed) |
| 102 | VULKAN_DEVICE_FUNCTION(vkCmdDrawIndexedIndirect) |
| 103 | VULKAN_DEVICE_FUNCTION(vkCmdDrawIndirect) |
| 104 | VULKAN_DEVICE_FUNCTION(vkCmdEndRenderPass) |
| 105 | VULKAN_DEVICE_FUNCTION(vkCmdPipelineBarrier) |
| 106 | VULKAN_DEVICE_FUNCTION(vkCmdResolveImage) |
| 107 | VULKAN_DEVICE_FUNCTION(vkCmdSetBlendConstants) |
| 108 | VULKAN_DEVICE_FUNCTION(vkCmdSetDepthBias) |
| 109 | VULKAN_DEVICE_FUNCTION(vkCmdSetScissor) |
| 110 | VULKAN_DEVICE_FUNCTION(vkCmdSetStencilReference) |
| 111 | VULKAN_DEVICE_FUNCTION(vkCmdSetViewport) |
| 112 | VULKAN_DEVICE_FUNCTION(vkCreateBuffer) |
| 113 | VULKAN_DEVICE_FUNCTION(vkCreateCommandPool) |
| 114 | VULKAN_DEVICE_FUNCTION(vkCreateDescriptorPool) |
| 115 | VULKAN_DEVICE_FUNCTION(vkCreateDescriptorSetLayout) |
| 116 | VULKAN_DEVICE_FUNCTION(vkCreateFence) |
| 117 | VULKAN_DEVICE_FUNCTION(vkCreateFramebuffer) |
| 118 | VULKAN_DEVICE_FUNCTION(vkCreateComputePipelines) |
| 119 | VULKAN_DEVICE_FUNCTION(vkCreateGraphicsPipelines) |
| 120 | VULKAN_DEVICE_FUNCTION(vkCreateImage) |
| 121 | VULKAN_DEVICE_FUNCTION(vkCreateImageView) |
| 122 | VULKAN_DEVICE_FUNCTION(vkCreatePipelineCache) |
| 123 | VULKAN_DEVICE_FUNCTION(vkCreatePipelineLayout) |
| 124 | VULKAN_DEVICE_FUNCTION(vkCreateRenderPass) |
| 125 | VULKAN_DEVICE_FUNCTION(vkCreateSampler) |
| 126 | VULKAN_DEVICE_FUNCTION(vkCreateSemaphore) |
| 127 | VULKAN_DEVICE_FUNCTION(vkCreateShaderModule) |
| 128 | VULKAN_DEVICE_FUNCTION(vkDestroyBuffer) |
| 129 | VULKAN_DEVICE_FUNCTION(vkDestroyCommandPool) |
| 130 | VULKAN_DEVICE_FUNCTION(vkDestroyDescriptorPool) |
| 131 | VULKAN_DEVICE_FUNCTION(vkDestroyDescriptorSetLayout) |
| 132 | VULKAN_DEVICE_FUNCTION(vkDestroyDevice) |
| 133 | VULKAN_DEVICE_FUNCTION(vkDestroyFence) |
| 134 | VULKAN_DEVICE_FUNCTION(vkDestroyFramebuffer) |
| 135 | VULKAN_DEVICE_FUNCTION(vkDestroyImage) |
| 136 | VULKAN_DEVICE_FUNCTION(vkDestroyImageView) |
| 137 | VULKAN_DEVICE_FUNCTION(vkDestroyPipeline) |
| 138 | VULKAN_DEVICE_FUNCTION(vkDestroyPipelineCache) |
| 139 | VULKAN_DEVICE_FUNCTION(vkDestroyPipelineLayout) |
| 140 | VULKAN_DEVICE_FUNCTION(vkDestroyRenderPass) |
| 141 | VULKAN_DEVICE_FUNCTION(vkDestroySampler) |
| 142 | VULKAN_DEVICE_FUNCTION(vkDestroySemaphore) |
| 143 | VULKAN_DEVICE_FUNCTION(vkDestroyShaderModule) |
| 144 | VULKAN_DEVICE_FUNCTION(vkDeviceWaitIdle) |
| 145 | VULKAN_DEVICE_FUNCTION(vkEndCommandBuffer) |
| 146 | VULKAN_DEVICE_FUNCTION(vkFreeCommandBuffers) |
| 147 | VULKAN_DEVICE_FUNCTION(vkFreeMemory) |
| 148 | VULKAN_DEVICE_FUNCTION(vkGetDeviceQueue) |
| 149 | VULKAN_DEVICE_FUNCTION(vkGetPipelineCacheData) |
| 150 | VULKAN_DEVICE_FUNCTION(vkGetFenceStatus) |
| 151 | VULKAN_DEVICE_FUNCTION(vkGetBufferMemoryRequirements) |
| 152 | VULKAN_DEVICE_FUNCTION(vkGetImageMemoryRequirements) |
| 153 | VULKAN_DEVICE_FUNCTION(vkMapMemory) |
| 154 | VULKAN_DEVICE_FUNCTION(vkQueueSubmit) |
| 155 | VULKAN_DEVICE_FUNCTION(vkQueueWaitIdle) |
| 156 | VULKAN_DEVICE_FUNCTION(vkResetCommandBuffer) |
| 157 | VULKAN_DEVICE_FUNCTION(vkResetCommandPool) |
| 158 | VULKAN_DEVICE_FUNCTION(vkResetDescriptorPool) |
| 159 | VULKAN_DEVICE_FUNCTION(vkResetFences) |
| 160 | VULKAN_DEVICE_FUNCTION(vkUnmapMemory) |
| 161 | VULKAN_DEVICE_FUNCTION(vkUpdateDescriptorSets) |
| 162 | VULKAN_DEVICE_FUNCTION(vkWaitForFences) |
| 163 | |
| 164 | // VK_KHR_swapchain |
| 165 | VULKAN_DEVICE_FUNCTION(vkAcquireNextImageKHR) |
| 166 | VULKAN_DEVICE_FUNCTION(vkCreateSwapchainKHR) |
| 167 | VULKAN_DEVICE_FUNCTION(vkDestroySwapchainKHR) |
| 168 | VULKAN_DEVICE_FUNCTION(vkQueuePresentKHR) |
| 169 | VULKAN_DEVICE_FUNCTION(vkGetSwapchainImagesKHR) |
| 170 | |
| 171 | /* |
| 172 | * Redefine these every time you include this header! |
| 173 | */ |
| 174 | #undef VULKAN_GLOBAL_FUNCTION |
| 175 | #undef VULKAN_INSTANCE_FUNCTION |
| 176 | #undef VULKAN_DEVICE_FUNCTION |
| 177 |