1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 module derelict.vulkan.functions; 29 30 private { 31 import derelict.vulkan.vk; 32 } 33 34 __gshared { 35 PFN_vkAllocationFunction vkAllocationFunction; 36 PFN_vkReallocationFunction vkReallocationFunction; 37 PFN_vkFreeFunction vkFreeFunction; 38 PFN_vkInternalAllocationNotification vkInternalAllocationNotification; 39 PFN_vkInternalFreeNotification vkInternalFreeNotification; 40 PFN_vkVoidFunction vkVoidFunction; 41 PFN_vkCreateInstance vkCreateInstance; 42 PFN_vkDestroyInstance vkDestroyInstance; 43 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; 44 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; 45 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 46 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; 47 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 48 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 49 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 50 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; 51 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 52 PFN_vkCreateDevice vkCreateDevice; 53 PFN_vkDestroyDevice vkDestroyDevice; 54 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; 55 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; 56 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; 57 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; 58 PFN_vkGetDeviceQueue vkGetDeviceQueue; 59 PFN_vkQueueSubmit vkQueueSubmit; 60 PFN_vkQueueWaitIdle vkQueueWaitIdle; 61 PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 62 PFN_vkAllocateMemory vkAllocateMemory; 63 PFN_vkFreeMemory vkFreeMemory; 64 PFN_vkMapMemory vkMapMemory; 65 PFN_vkUnmapMemory vkUnmapMemory; 66 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 67 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 68 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 69 PFN_vkBindBufferMemory vkBindBufferMemory; 70 PFN_vkBindImageMemory vkBindImageMemory; 71 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 72 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 73 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 74 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; 75 PFN_vkQueueBindSparse vkQueueBindSparse; 76 PFN_vkCreateFence vkCreateFence; 77 PFN_vkDestroyFence vkDestroyFence; 78 PFN_vkResetFences vkResetFences; 79 PFN_vkGetFenceStatus vkGetFenceStatus; 80 PFN_vkWaitForFences vkWaitForFences; 81 PFN_vkCreateSemaphore vkCreateSemaphore; 82 PFN_vkDestroySemaphore vkDestroySemaphore; 83 PFN_vkCreateEvent vkCreateEvent; 84 PFN_vkDestroyEvent vkDestroyEvent; 85 PFN_vkGetEventStatus vkGetEventStatus; 86 PFN_vkSetEvent vkSetEvent; 87 PFN_vkResetEvent vkResetEvent; 88 PFN_vkCreateQueryPool vkCreateQueryPool; 89 PFN_vkDestroyQueryPool vkDestroyQueryPool; 90 PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 91 PFN_vkCreateBuffer vkCreateBuffer; 92 PFN_vkDestroyBuffer vkDestroyBuffer; 93 PFN_vkCreateBufferView vkCreateBufferView; 94 PFN_vkDestroyBufferView vkDestroyBufferView; 95 PFN_vkCreateImage vkCreateImage; 96 PFN_vkDestroyImage vkDestroyImage; 97 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 98 PFN_vkCreateImageView vkCreateImageView; 99 PFN_vkDestroyImageView vkDestroyImageView; 100 PFN_vkCreateShaderModule vkCreateShaderModule; 101 PFN_vkDestroyShaderModule vkDestroyShaderModule; 102 PFN_vkCreatePipelineCache vkCreatePipelineCache; 103 PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 104 PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 105 PFN_vkMergePipelineCaches vkMergePipelineCaches; 106 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 107 PFN_vkCreateComputePipelines vkCreateComputePipelines; 108 PFN_vkDestroyPipeline vkDestroyPipeline; 109 PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 110 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 111 PFN_vkCreateSampler vkCreateSampler; 112 PFN_vkDestroySampler vkDestroySampler; 113 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 114 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 115 PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 116 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 117 PFN_vkResetDescriptorPool vkResetDescriptorPool; 118 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 119 PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 120 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 121 PFN_vkCreateFramebuffer vkCreateFramebuffer; 122 PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 123 PFN_vkCreateRenderPass vkCreateRenderPass; 124 PFN_vkDestroyRenderPass vkDestroyRenderPass; 125 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 126 PFN_vkCreateCommandPool vkCreateCommandPool; 127 PFN_vkDestroyCommandPool vkDestroyCommandPool; 128 PFN_vkResetCommandPool vkResetCommandPool; 129 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 130 PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 131 PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 132 PFN_vkEndCommandBuffer vkEndCommandBuffer; 133 PFN_vkResetCommandBuffer vkResetCommandBuffer; 134 PFN_vkCmdBindPipeline vkCmdBindPipeline; 135 PFN_vkCmdSetViewport vkCmdSetViewport; 136 PFN_vkCmdSetScissor vkCmdSetScissor; 137 PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 138 PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 139 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 140 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 141 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 142 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 143 PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 144 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 145 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 146 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 147 PFN_vkCmdDraw vkCmdDraw; 148 PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 149 PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 150 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 151 PFN_vkCmdDispatch vkCmdDispatch; 152 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 153 PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 154 PFN_vkCmdCopyImage vkCmdCopyImage; 155 PFN_vkCmdBlitImage vkCmdBlitImage; 156 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 157 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 158 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 159 PFN_vkCmdFillBuffer vkCmdFillBuffer; 160 PFN_vkCmdClearColorImage vkCmdClearColorImage; 161 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 162 PFN_vkCmdClearAttachments vkCmdClearAttachments; 163 PFN_vkCmdResolveImage vkCmdResolveImage; 164 PFN_vkCmdSetEvent vkCmdSetEvent; 165 PFN_vkCmdResetEvent vkCmdResetEvent; 166 PFN_vkCmdWaitEvents vkCmdWaitEvents; 167 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 168 PFN_vkCmdBeginQuery vkCmdBeginQuery; 169 PFN_vkCmdEndQuery vkCmdEndQuery; 170 PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 171 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 172 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 173 PFN_vkCmdPushConstants vkCmdPushConstants; 174 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 175 PFN_vkCmdNextSubpass vkCmdNextSubpass; 176 PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 177 PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 178 179 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 180 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 181 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 182 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 183 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 184 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 185 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 186 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 187 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 188 PFN_vkQueuePresentKHR vkQueuePresentKHR; 189 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 190 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 191 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; 192 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 193 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; 194 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 195 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; 196 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 197 version (VK_USE_PLATFORM_XLIB_KHR) { 198 PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; 199 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; 200 } 201 version (VK_USE_PLATFORM_XCB_KHR) { 202 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; 203 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; 204 } 205 version (VK_USE_PLATFORM_WAYLAND_KHR) { 206 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; 207 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; 208 } 209 version (VK_USE_PLATFORM_MIR_KHR) { 210 PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR; 211 PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR; 212 } 213 version (VK_USE_PLATFORM_ANDROID_KHR) { 214 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; 215 } 216 version (VK_USE_PLATFORM_WIN32_KHR) { 217 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; 218 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; 219 } 220 PFN_vkDebugReportCallbackEXT vkDebugReportCallbackEXT; 221 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 222 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 223 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; 224 }