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 |