api_gen.h revision 0c2032490b80178ec823bf22a7f5d08398851cc3
1/*
2 * Copyright 2016 The Android Open Source Project
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// WARNING: This file is generated. See ../README.md for instructions.
18
19#ifndef LIBVULKAN_API_GEN_H
20#define LIBVULKAN_API_GEN_H
21
22#include <vulkan/vulkan.h>
23
24namespace vulkan {
25namespace api {
26
27struct InstanceDispatchTable {
28    // clang-format off
29    PFN_vkDestroyInstance DestroyInstance;
30    PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
31    PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
32    PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
33    PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties;
34    PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties;
35    PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
36    PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties;
37    PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties;
38    PFN_vkCreateDevice CreateDevice;
39    PFN_vkEnumerateDeviceLayerProperties EnumerateDeviceLayerProperties;
40    PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
41    PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties;
42    PFN_vkDestroySurfaceKHR DestroySurfaceKHR;
43    PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR;
44    PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR;
45    PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
46    PFN_vkGetPhysicalDeviceSurfacePresentModesKHR GetPhysicalDeviceSurfacePresentModesKHR;
47    PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR;
48    // clang-format on
49};
50
51struct DeviceDispatchTable {
52    // clang-format off
53    PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
54    PFN_vkDestroyDevice DestroyDevice;
55    PFN_vkGetDeviceQueue GetDeviceQueue;
56    PFN_vkQueueSubmit QueueSubmit;
57    PFN_vkQueueWaitIdle QueueWaitIdle;
58    PFN_vkDeviceWaitIdle DeviceWaitIdle;
59    PFN_vkAllocateMemory AllocateMemory;
60    PFN_vkFreeMemory FreeMemory;
61    PFN_vkMapMemory MapMemory;
62    PFN_vkUnmapMemory UnmapMemory;
63    PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges;
64    PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges;
65    PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment;
66    PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements;
67    PFN_vkBindBufferMemory BindBufferMemory;
68    PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements;
69    PFN_vkBindImageMemory BindImageMemory;
70    PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements;
71    PFN_vkQueueBindSparse QueueBindSparse;
72    PFN_vkCreateFence CreateFence;
73    PFN_vkDestroyFence DestroyFence;
74    PFN_vkResetFences ResetFences;
75    PFN_vkGetFenceStatus GetFenceStatus;
76    PFN_vkWaitForFences WaitForFences;
77    PFN_vkCreateSemaphore CreateSemaphore;
78    PFN_vkDestroySemaphore DestroySemaphore;
79    PFN_vkCreateEvent CreateEvent;
80    PFN_vkDestroyEvent DestroyEvent;
81    PFN_vkGetEventStatus GetEventStatus;
82    PFN_vkSetEvent SetEvent;
83    PFN_vkResetEvent ResetEvent;
84    PFN_vkCreateQueryPool CreateQueryPool;
85    PFN_vkDestroyQueryPool DestroyQueryPool;
86    PFN_vkGetQueryPoolResults GetQueryPoolResults;
87    PFN_vkCreateBuffer CreateBuffer;
88    PFN_vkDestroyBuffer DestroyBuffer;
89    PFN_vkCreateBufferView CreateBufferView;
90    PFN_vkDestroyBufferView DestroyBufferView;
91    PFN_vkCreateImage CreateImage;
92    PFN_vkDestroyImage DestroyImage;
93    PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout;
94    PFN_vkCreateImageView CreateImageView;
95    PFN_vkDestroyImageView DestroyImageView;
96    PFN_vkCreateShaderModule CreateShaderModule;
97    PFN_vkDestroyShaderModule DestroyShaderModule;
98    PFN_vkCreatePipelineCache CreatePipelineCache;
99    PFN_vkDestroyPipelineCache DestroyPipelineCache;
100    PFN_vkGetPipelineCacheData GetPipelineCacheData;
101    PFN_vkMergePipelineCaches MergePipelineCaches;
102    PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines;
103    PFN_vkCreateComputePipelines CreateComputePipelines;
104    PFN_vkDestroyPipeline DestroyPipeline;
105    PFN_vkCreatePipelineLayout CreatePipelineLayout;
106    PFN_vkDestroyPipelineLayout DestroyPipelineLayout;
107    PFN_vkCreateSampler CreateSampler;
108    PFN_vkDestroySampler DestroySampler;
109    PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
110    PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout;
111    PFN_vkCreateDescriptorPool CreateDescriptorPool;
112    PFN_vkDestroyDescriptorPool DestroyDescriptorPool;
113    PFN_vkResetDescriptorPool ResetDescriptorPool;
114    PFN_vkAllocateDescriptorSets AllocateDescriptorSets;
115    PFN_vkFreeDescriptorSets FreeDescriptorSets;
116    PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
117    PFN_vkCreateFramebuffer CreateFramebuffer;
118    PFN_vkDestroyFramebuffer DestroyFramebuffer;
119    PFN_vkCreateRenderPass CreateRenderPass;
120    PFN_vkDestroyRenderPass DestroyRenderPass;
121    PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity;
122    PFN_vkCreateCommandPool CreateCommandPool;
123    PFN_vkDestroyCommandPool DestroyCommandPool;
124    PFN_vkResetCommandPool ResetCommandPool;
125    PFN_vkAllocateCommandBuffers AllocateCommandBuffers;
126    PFN_vkFreeCommandBuffers FreeCommandBuffers;
127    PFN_vkBeginCommandBuffer BeginCommandBuffer;
128    PFN_vkEndCommandBuffer EndCommandBuffer;
129    PFN_vkResetCommandBuffer ResetCommandBuffer;
130    PFN_vkCmdBindPipeline CmdBindPipeline;
131    PFN_vkCmdSetViewport CmdSetViewport;
132    PFN_vkCmdSetScissor CmdSetScissor;
133    PFN_vkCmdSetLineWidth CmdSetLineWidth;
134    PFN_vkCmdSetDepthBias CmdSetDepthBias;
135    PFN_vkCmdSetBlendConstants CmdSetBlendConstants;
136    PFN_vkCmdSetDepthBounds CmdSetDepthBounds;
137    PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask;
138    PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask;
139    PFN_vkCmdSetStencilReference CmdSetStencilReference;
140    PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
141    PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer;
142    PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers;
143    PFN_vkCmdDraw CmdDraw;
144    PFN_vkCmdDrawIndexed CmdDrawIndexed;
145    PFN_vkCmdDrawIndirect CmdDrawIndirect;
146    PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect;
147    PFN_vkCmdDispatch CmdDispatch;
148    PFN_vkCmdDispatchIndirect CmdDispatchIndirect;
149    PFN_vkCmdCopyBuffer CmdCopyBuffer;
150    PFN_vkCmdCopyImage CmdCopyImage;
151    PFN_vkCmdBlitImage CmdBlitImage;
152    PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage;
153    PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer;
154    PFN_vkCmdUpdateBuffer CmdUpdateBuffer;
155    PFN_vkCmdFillBuffer CmdFillBuffer;
156    PFN_vkCmdClearColorImage CmdClearColorImage;
157    PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage;
158    PFN_vkCmdClearAttachments CmdClearAttachments;
159    PFN_vkCmdResolveImage CmdResolveImage;
160    PFN_vkCmdSetEvent CmdSetEvent;
161    PFN_vkCmdResetEvent CmdResetEvent;
162    PFN_vkCmdWaitEvents CmdWaitEvents;
163    PFN_vkCmdPipelineBarrier CmdPipelineBarrier;
164    PFN_vkCmdBeginQuery CmdBeginQuery;
165    PFN_vkCmdEndQuery CmdEndQuery;
166    PFN_vkCmdResetQueryPool CmdResetQueryPool;
167    PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
168    PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
169    PFN_vkCmdPushConstants CmdPushConstants;
170    PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
171    PFN_vkCmdNextSubpass CmdNextSubpass;
172    PFN_vkCmdEndRenderPass CmdEndRenderPass;
173    PFN_vkCmdExecuteCommands CmdExecuteCommands;
174    PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
175    PFN_vkDestroySwapchainKHR DestroySwapchainKHR;
176    PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
177    PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
178    PFN_vkQueuePresentKHR QueuePresentKHR;
179    // clang-format on
180};
181
182bool InitDispatchTable(VkInstance instance, PFN_vkGetInstanceProcAddr get_proc);
183bool InitDispatchTable(VkDevice dev, PFN_vkGetDeviceProcAddr get_proc);
184
185}  // namespace api
186}  // namespace vulkan
187
188#endif  // LIBVULKAN_API_GEN_H
189