1
- // Copyright 2016 Intel Corporation All Rights Reserved
2
- //
3
- // Intel makes no representations about the suitability of this software for any purpose.
4
- // THIS SOFTWARE IS PROVIDED ""AS IS."" INTEL SPECIFICALLY DISCLAIMS ALL WARRANTIES,
5
- // EXPRESS OR IMPLIED, AND ALL LIABILITY, INCLUDING CONSEQUENTIAL AND OTHER INDIRECT DAMAGES,
6
- // FOR THE USE OF THIS SOFTWARE, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PROPRIETARY
7
- // RIGHTS, AND INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
8
- // Intel does not assume any responsibility for any errors which may appear in this software
9
- // nor any responsibility to update it.
10
-
11
- // ************************************************************ //
12
- // Exported functions //
13
- // //
14
- // These functions are always exposed by vulkan libraries. //
15
- // ************************************************************ //
16
-
17
- #if !defined(VK_EXPORTED_FUNCTION)
18
- #define VK_EXPORTED_FUNCTION ( fun )
19
- #endif
20
-
21
- VK_EXPORTED_FUNCTION ( vkGetInstanceProcAddr )
22
-
23
- #undef VK_EXPORTED_FUNCTION
24
-
25
-
26
- // ************************************************************ //
27
- // Global level functions //
28
- // //
29
- // They allow checking what instance extensions are available //
30
- // and allow creation of a Vulkan Instance. //
31
- // ************************************************************ //
32
-
33
- #if !defined(VK_GLOBAL_LEVEL_FUNCTION)
34
- #define VK_GLOBAL_LEVEL_FUNCTION ( fun )
35
- #endif
36
-
37
- // Tutorial 01
38
- VK_GLOBAL_LEVEL_FUNCTION ( vkCreateInstance )
39
-
40
- // Tutorial 02
41
- VK_GLOBAL_LEVEL_FUNCTION( vkEnumerateInstanceExtensionProperties )
42
-
43
- #undef VK_GLOBAL_LEVEL_FUNCTION
44
-
45
-
46
- // ************************************************************ //
47
- // Instance level functions //
48
- // //
49
- // These functions allow for device queries and creation. //
50
- // They help choose which device is well suited for our needs. //
51
- // ************************************************************ //
52
-
53
- #if !defined(VK_INSTANCE_LEVEL_FUNCTION)
54
- #define VK_INSTANCE_LEVEL_FUNCTION ( fun )
55
- #endif
56
-
57
- // Tutorial 01
58
- VK_INSTANCE_LEVEL_FUNCTION ( vkEnumeratePhysicalDevices )
59
- VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceProperties )
60
- VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceFeatures )
61
- VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceQueueFamilyProperties )
62
- VK_INSTANCE_LEVEL_FUNCTION( vkCreateDevice )
63
- VK_INSTANCE_LEVEL_FUNCTION( vkGetDeviceProcAddr )
64
- VK_INSTANCE_LEVEL_FUNCTION( vkDestroyInstance )
65
-
66
- // Tutorial 02
67
- VK_INSTANCE_LEVEL_FUNCTION( vkEnumerateDeviceExtensionProperties )
68
- #if defined(USE_SWAPCHAIN_EXTENSIONS)
69
- VK_INSTANCE_LEVEL_FUNCTION ( vkGetPhysicalDeviceSurfaceSupportKHR )
70
- VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceSurfaceCapabilitiesKHR )
71
- VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceSurfaceFormatsKHR )
72
- VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceSurfacePresentModesKHR )
73
- VK_INSTANCE_LEVEL_FUNCTION( vkDestroySurfaceKHR )
74
- #if defined(VK_USE_PLATFORM_WIN32_KHR)
75
- VK_INSTANCE_LEVEL_FUNCTION ( vkCreateWin32SurfaceKHR )
76
- #elif defined(VK_USE_PLATFORM_XCB_KHR)
77
- VK_INSTANCE_LEVEL_FUNCTION ( vkCreateXcbSurfaceKHR )
78
- #elif defined(VK_USE_PLATFORM_XLIB_KHR)
79
- VK_INSTANCE_LEVEL_FUNCTION ( vkCreateXlibSurfaceKHR )
80
- #endif
81
- #endif
82
-
83
- // Tutorial 04
84
- VK_INSTANCE_LEVEL_FUNCTION ( vkGetPhysicalDeviceMemoryProperties )
85
-
86
- #undef VK_INSTANCE_LEVEL_FUNCTION
87
-
88
-
89
- // ************************************************************ //
90
- // Device level functions //
91
- // //
92
- // These functions are used mainly for drawing //
93
- // ************************************************************ //
94
-
95
- #if !defined(VK_DEVICE_LEVEL_FUNCTION)
96
- #define VK_DEVICE_LEVEL_FUNCTION ( fun )
97
- #endif
98
-
99
- // Tutorial 01
100
- VK_DEVICE_LEVEL_FUNCTION ( vkGetDeviceQueue )
101
- VK_DEVICE_LEVEL_FUNCTION( vkDeviceWaitIdle )
102
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyDevice )
103
-
104
- // Tutorial 02
105
- VK_DEVICE_LEVEL_FUNCTION( vkCreateSemaphore )
106
- VK_DEVICE_LEVEL_FUNCTION( vkCreateCommandPool )
107
- VK_DEVICE_LEVEL_FUNCTION( vkAllocateCommandBuffers )
108
- VK_DEVICE_LEVEL_FUNCTION( vkBeginCommandBuffer )
109
- VK_DEVICE_LEVEL_FUNCTION( vkCmdPipelineBarrier )
110
- VK_DEVICE_LEVEL_FUNCTION( vkCmdClearColorImage )
111
- VK_DEVICE_LEVEL_FUNCTION( vkEndCommandBuffer )
112
- VK_DEVICE_LEVEL_FUNCTION( vkQueueSubmit )
113
- VK_DEVICE_LEVEL_FUNCTION( vkFreeCommandBuffers )
114
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyCommandPool )
115
- VK_DEVICE_LEVEL_FUNCTION( vkDestroySemaphore )
116
- #if defined(USE_SWAPCHAIN_EXTENSIONS)
117
- VK_DEVICE_LEVEL_FUNCTION ( vkCreateSwapchainKHR )
118
- VK_DEVICE_LEVEL_FUNCTION( vkGetSwapchainImagesKHR )
119
- VK_DEVICE_LEVEL_FUNCTION( vkAcquireNextImageKHR )
120
- VK_DEVICE_LEVEL_FUNCTION( vkQueuePresentKHR )
121
- VK_DEVICE_LEVEL_FUNCTION( vkDestroySwapchainKHR )
122
- #endif
123
-
124
- // Tutorial 03
125
- VK_DEVICE_LEVEL_FUNCTION ( vkCreateImageView )
126
- VK_DEVICE_LEVEL_FUNCTION( vkCreateRenderPass )
127
- VK_DEVICE_LEVEL_FUNCTION( vkCreateFramebuffer )
128
- VK_DEVICE_LEVEL_FUNCTION( vkCreateShaderModule )
129
- VK_DEVICE_LEVEL_FUNCTION( vkCreatePipelineLayout )
130
- VK_DEVICE_LEVEL_FUNCTION( vkCreateGraphicsPipelines )
131
- VK_DEVICE_LEVEL_FUNCTION( vkCmdBeginRenderPass )
132
- VK_DEVICE_LEVEL_FUNCTION( vkCmdBindPipeline )
133
- VK_DEVICE_LEVEL_FUNCTION( vkCmdDraw )
134
- VK_DEVICE_LEVEL_FUNCTION( vkCmdEndRenderPass )
135
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyShaderModule )
136
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyPipelineLayout )
137
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyPipeline )
138
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyRenderPass )
139
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyFramebuffer )
140
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyImageView )
141
-
142
- // Tutorial 04
143
- VK_DEVICE_LEVEL_FUNCTION( vkCreateFence )
144
- VK_DEVICE_LEVEL_FUNCTION( vkCreateBuffer )
145
- VK_DEVICE_LEVEL_FUNCTION( vkGetBufferMemoryRequirements )
146
- VK_DEVICE_LEVEL_FUNCTION( vkAllocateMemory )
147
- VK_DEVICE_LEVEL_FUNCTION( vkBindBufferMemory )
148
- VK_DEVICE_LEVEL_FUNCTION( vkMapMemory )
149
- VK_DEVICE_LEVEL_FUNCTION( vkFlushMappedMemoryRanges )
150
- VK_DEVICE_LEVEL_FUNCTION( vkUnmapMemory )
151
- VK_DEVICE_LEVEL_FUNCTION( vkCmdSetViewport )
152
- VK_DEVICE_LEVEL_FUNCTION( vkCmdSetScissor )
153
- VK_DEVICE_LEVEL_FUNCTION( vkCmdBindVertexBuffers )
154
- VK_DEVICE_LEVEL_FUNCTION( vkWaitForFences )
155
- VK_DEVICE_LEVEL_FUNCTION( vkResetFences )
156
- VK_DEVICE_LEVEL_FUNCTION( vkFreeMemory )
157
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyBuffer )
158
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyFence )
159
-
160
- // Tutorial 05
161
- VK_DEVICE_LEVEL_FUNCTION( vkCmdCopyBuffer )
162
-
163
- // Tutorial 06
164
- VK_DEVICE_LEVEL_FUNCTION( vkCreateImage )
165
- VK_DEVICE_LEVEL_FUNCTION( vkGetImageMemoryRequirements )
166
- VK_DEVICE_LEVEL_FUNCTION( vkBindImageMemory )
167
- VK_DEVICE_LEVEL_FUNCTION( vkCreateSampler )
168
- VK_DEVICE_LEVEL_FUNCTION( vkCmdCopyBufferToImage )
169
- VK_DEVICE_LEVEL_FUNCTION( vkCreateDescriptorSetLayout )
170
- VK_DEVICE_LEVEL_FUNCTION( vkCreateDescriptorPool )
171
- VK_DEVICE_LEVEL_FUNCTION( vkAllocateDescriptorSets )
172
- VK_DEVICE_LEVEL_FUNCTION( vkUpdateDescriptorSets )
173
- VK_DEVICE_LEVEL_FUNCTION( vkCmdBindDescriptorSets )
174
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyDescriptorPool )
175
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyDescriptorSetLayout )
176
- VK_DEVICE_LEVEL_FUNCTION( vkDestroySampler )
177
- VK_DEVICE_LEVEL_FUNCTION( vkDestroyImage )
178
-
1
+ // ///////////////////////////////////////////////////////////////////////////////////////////
2
+ // Copyright 2017 Intel Corporation
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.
5
+ // ///////////////////////////////////////////////////////////////////////////////////////////
6
+
7
+ // ************************************************************ //
8
+ // Exported functions //
9
+ // //
10
+ // These functions are always exposed by vulkan libraries. //
11
+ // ************************************************************ //
12
+
13
+ #if !defined(VK_EXPORTED_FUNCTION)
14
+ #define VK_EXPORTED_FUNCTION ( fun )
15
+ #endif
16
+
17
+ VK_EXPORTED_FUNCTION ( vkGetInstanceProcAddr )
18
+
19
+ #undef VK_EXPORTED_FUNCTION
20
+
21
+
22
+ // ************************************************************ //
23
+ // Global level functions //
24
+ // //
25
+ // They allow checking what instance extensions are available //
26
+ // and allow creation of a Vulkan Instance. //
27
+ // ************************************************************ //
28
+
29
+ #if !defined(VK_GLOBAL_LEVEL_FUNCTION)
30
+ #define VK_GLOBAL_LEVEL_FUNCTION ( fun )
31
+ #endif
32
+
33
+ // Tutorial 01
34
+ VK_GLOBAL_LEVEL_FUNCTION ( vkCreateInstance )
35
+
36
+ // Tutorial 02
37
+ VK_GLOBAL_LEVEL_FUNCTION( vkEnumerateInstanceExtensionProperties )
38
+
39
+ #undef VK_GLOBAL_LEVEL_FUNCTION
40
+
41
+
42
+ // ************************************************************ //
43
+ // Instance level functions //
44
+ // //
45
+ // These functions allow for device queries and creation. //
46
+ // They help choose which device is well suited for our needs. //
47
+ // ************************************************************ //
48
+
49
+ #if !defined(VK_INSTANCE_LEVEL_FUNCTION)
50
+ #define VK_INSTANCE_LEVEL_FUNCTION ( fun )
51
+ #endif
52
+
53
+ // Tutorial 01
54
+ VK_INSTANCE_LEVEL_FUNCTION ( vkEnumeratePhysicalDevices )
55
+ VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceProperties )
56
+ VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceFeatures )
57
+ VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceQueueFamilyProperties )
58
+ VK_INSTANCE_LEVEL_FUNCTION( vkCreateDevice )
59
+ VK_INSTANCE_LEVEL_FUNCTION( vkGetDeviceProcAddr )
60
+ VK_INSTANCE_LEVEL_FUNCTION( vkDestroyInstance )
61
+
62
+ // Tutorial 02
63
+ VK_INSTANCE_LEVEL_FUNCTION( vkEnumerateDeviceExtensionProperties )
64
+ #if defined(USE_SWAPCHAIN_EXTENSIONS)
65
+ VK_INSTANCE_LEVEL_FUNCTION ( vkGetPhysicalDeviceSurfaceSupportKHR )
66
+ VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceSurfaceCapabilitiesKHR )
67
+ VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceSurfaceFormatsKHR )
68
+ VK_INSTANCE_LEVEL_FUNCTION( vkGetPhysicalDeviceSurfacePresentModesKHR )
69
+ VK_INSTANCE_LEVEL_FUNCTION( vkDestroySurfaceKHR )
70
+ #if defined(VK_USE_PLATFORM_WIN32_KHR)
71
+ VK_INSTANCE_LEVEL_FUNCTION ( vkCreateWin32SurfaceKHR )
72
+ #elif defined(VK_USE_PLATFORM_XCB_KHR)
73
+ VK_INSTANCE_LEVEL_FUNCTION ( vkCreateXcbSurfaceKHR )
74
+ #elif defined(VK_USE_PLATFORM_XLIB_KHR)
75
+ VK_INSTANCE_LEVEL_FUNCTION ( vkCreateXlibSurfaceKHR )
76
+ #endif
77
+ #endif
78
+
79
+ // Tutorial 04
80
+ VK_INSTANCE_LEVEL_FUNCTION ( vkGetPhysicalDeviceMemoryProperties )
81
+
82
+ #undef VK_INSTANCE_LEVEL_FUNCTION
83
+
84
+
85
+ // ************************************************************ //
86
+ // Device level functions //
87
+ // //
88
+ // These functions are used mainly for drawing //
89
+ // ************************************************************ //
90
+
91
+ #if !defined(VK_DEVICE_LEVEL_FUNCTION)
92
+ #define VK_DEVICE_LEVEL_FUNCTION ( fun )
93
+ #endif
94
+
95
+ // Tutorial 01
96
+ VK_DEVICE_LEVEL_FUNCTION ( vkGetDeviceQueue )
97
+ VK_DEVICE_LEVEL_FUNCTION( vkDeviceWaitIdle )
98
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyDevice )
99
+
100
+ // Tutorial 02
101
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateSemaphore )
102
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateCommandPool )
103
+ VK_DEVICE_LEVEL_FUNCTION( vkAllocateCommandBuffers )
104
+ VK_DEVICE_LEVEL_FUNCTION( vkBeginCommandBuffer )
105
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdPipelineBarrier )
106
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdClearColorImage )
107
+ VK_DEVICE_LEVEL_FUNCTION( vkEndCommandBuffer )
108
+ VK_DEVICE_LEVEL_FUNCTION( vkQueueSubmit )
109
+ VK_DEVICE_LEVEL_FUNCTION( vkFreeCommandBuffers )
110
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyCommandPool )
111
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroySemaphore )
112
+ #if defined(USE_SWAPCHAIN_EXTENSIONS)
113
+ VK_DEVICE_LEVEL_FUNCTION ( vkCreateSwapchainKHR )
114
+ VK_DEVICE_LEVEL_FUNCTION( vkGetSwapchainImagesKHR )
115
+ VK_DEVICE_LEVEL_FUNCTION( vkAcquireNextImageKHR )
116
+ VK_DEVICE_LEVEL_FUNCTION( vkQueuePresentKHR )
117
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroySwapchainKHR )
118
+ #endif
119
+
120
+ // Tutorial 03
121
+ VK_DEVICE_LEVEL_FUNCTION ( vkCreateImageView )
122
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateRenderPass )
123
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateFramebuffer )
124
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateShaderModule )
125
+ VK_DEVICE_LEVEL_FUNCTION( vkCreatePipelineLayout )
126
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateGraphicsPipelines )
127
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdBeginRenderPass )
128
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdBindPipeline )
129
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdDraw )
130
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdEndRenderPass )
131
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyShaderModule )
132
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyPipelineLayout )
133
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyPipeline )
134
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyRenderPass )
135
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyFramebuffer )
136
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyImageView )
137
+
138
+ // Tutorial 04
139
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateFence )
140
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateBuffer )
141
+ VK_DEVICE_LEVEL_FUNCTION( vkGetBufferMemoryRequirements )
142
+ VK_DEVICE_LEVEL_FUNCTION( vkAllocateMemory )
143
+ VK_DEVICE_LEVEL_FUNCTION( vkBindBufferMemory )
144
+ VK_DEVICE_LEVEL_FUNCTION( vkMapMemory )
145
+ VK_DEVICE_LEVEL_FUNCTION( vkFlushMappedMemoryRanges )
146
+ VK_DEVICE_LEVEL_FUNCTION( vkUnmapMemory )
147
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdSetViewport )
148
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdSetScissor )
149
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdBindVertexBuffers )
150
+ VK_DEVICE_LEVEL_FUNCTION( vkWaitForFences )
151
+ VK_DEVICE_LEVEL_FUNCTION( vkResetFences )
152
+ VK_DEVICE_LEVEL_FUNCTION( vkFreeMemory )
153
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyBuffer )
154
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyFence )
155
+
156
+ // Tutorial 05
157
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdCopyBuffer )
158
+
159
+ // Tutorial 06
160
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateImage )
161
+ VK_DEVICE_LEVEL_FUNCTION( vkGetImageMemoryRequirements )
162
+ VK_DEVICE_LEVEL_FUNCTION( vkBindImageMemory )
163
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateSampler )
164
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdCopyBufferToImage )
165
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateDescriptorSetLayout )
166
+ VK_DEVICE_LEVEL_FUNCTION( vkCreateDescriptorPool )
167
+ VK_DEVICE_LEVEL_FUNCTION( vkAllocateDescriptorSets )
168
+ VK_DEVICE_LEVEL_FUNCTION( vkUpdateDescriptorSets )
169
+ VK_DEVICE_LEVEL_FUNCTION( vkCmdBindDescriptorSets )
170
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyDescriptorPool )
171
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyDescriptorSetLayout )
172
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroySampler )
173
+ VK_DEVICE_LEVEL_FUNCTION( vkDestroyImage )
174
+
179
175
#undef VK_DEVICE_LEVEL_FUNCTION
0 commit comments