aboutsummaryrefslogtreecommitdiffstats
path: root/include/vulkan-loader.hpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2021-01-10 19:51:03 +0100
committerladevieq <ladevie.quentin@gmail.com>2021-01-10 19:51:03 +0100
commit94c1b2d414055f9a4ea203fb210666aa769d0096 (patch)
tree5bc7e359ba63c1137f5aa276fee1219924e7a0f9 /include/vulkan-loader.hpp
parent78302e1982c1b7b727c95603611b19913f5c13d0 (diff)
Create xcb surface and swapchain
Diffstat (limited to 'include/vulkan-loader.hpp')
-rw-r--r--include/vulkan-loader.hpp52
1 files changed, 29 insertions, 23 deletions
diff --git a/include/vulkan-loader.hpp b/include/vulkan-loader.hpp
index 1691c6c..66542cf 100644
--- a/include/vulkan-loader.hpp
+++ b/include/vulkan-loader.hpp
@@ -1,11 +1,13 @@
#ifndef __VULKAN_LOADER_HPP_
#define __VULKAN_LOADER_HPP_
-#if defined(WINDOWS)
+#if defined(_WIN32) || defined(_WIN64)
#include <Windows.h>
#include <windowsx.h>
#define VK_USE_PLATFORM_WIN32_KHR
+#elif defined(__linux__)
+#define VK_USE_PLATFORM_XCB_KHR
#endif
#define VK_NO_PROTOTYPES
@@ -15,13 +17,32 @@
X(vkGetInstanceProcAddr) \
X(vkGetDeviceProcAddr)
+
#define VULKAN_APPLICATION_FUNCTIONS \
X(vkCreateInstance) \
X(vkEnumerateInstanceVersion) \
X(vkEnumerateInstanceExtensionProperties) \
X(vkEnumerateInstanceLayerProperties)
+
+#if defined(VK_USE_PLATFORM_WIN32_KHR)
+#define PLATFORM_VULKAN_INSTANCE_FUNCTIONS X(vkCreateWin32SurfaceKHR)
+#elif defined(VK_USE_PLATFORM_XCB_KHR)
+#define PLATFORM_VULKAN_INSTANCE_FUNCTIONS X(vkCreateXcbSurfaceKHR)
+#else
+#define PLATFORM_VULKAN_INSTANCE_FUNCTIONS
+#endif
+
+#define VULKAN_SURFACE_FUNCTIONS \
+ PLATFORM_VULKAN_INSTANCE_FUNCTIONS \
+ X(vkDestroySurfaceKHR) \
+ X(vkGetPhysicalDeviceSurfaceSupportKHR) \
+ X(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \
+ X(vkGetPhysicalDeviceSurfaceFormatsKHR) \
+ X(vkGetPhysicalDeviceSurfacePresentModesKHR)
+
#define VULKAN_INSTANCE_FUNCTIONS \
+ VULKAN_SURFACE_FUNCTIONS \
X(vkDestroyInstance) \
X(vkEnumeratePhysicalDevices) \
X(vkGetPhysicalDeviceProperties) \
@@ -33,22 +54,16 @@
X(vkCreateDebugUtilsMessengerEXT) \
X(vkDestroyDebugUtilsMessengerEXT)
-#if defined(VK_USE_PLATFORM_WIN32_KHR)
-#define VULKAN_SURFACE_FUNCTIONS \
- X(vkDestroySurfaceKHR) \
- X(vkGetPhysicalDeviceSurfaceSupportKHR) \
- X(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \
- X(vkGetPhysicalDeviceSurfaceFormatsKHR) \
- X(vkGetPhysicalDeviceSurfacePresentModesKHR)
-#endif
-#if defined(WINDOWS)
-#define PLATFORM_VULKAN_INSTANCE_FUNCTIONS X(vkCreateWin32SurfaceKHR)
-#else
-#define PLATFORM_VULKAN_INSTANCE_FUNCTIONS
-#endif
+#define VULKAN_SWAPCHAIN_FUNCTIONS \
+ X(vkCreateSwapchainKHR) \
+ X(vkGetSwapchainImagesKHR) \
+ X(vkAcquireNextImageKHR) \
+ X(vkDestroySwapchainKHR) \
+ X(vkQueuePresentKHR) \
#define VULKAN_DEVICE_FUNCTIONS \
+ VULKAN_SWAPCHAIN_FUNCTIONS \
X(vkGetDeviceQueue) \
X(vkDestroyDevice) \
X(vkDeviceWaitIdle) \
@@ -116,18 +131,10 @@
X(vkDestroyBuffer) \
X(vkDestroyRenderPass)
-// Depends on the swapchain extension
-// X(vkCreateSwapchainKHR) \
-// X(vkGetSwapchainImagesKHR) \
-// X(vkAcquireNextImageKHR) \
-// X(vkDestroySwapchainKHR) \
-// X(vkQueuePresentKHR) \
-
#define X(name) extern PFN_##name name;
VULKAN_EXPORTED_FUNCTIONS
VULKAN_APPLICATION_FUNCTIONS
VULKAN_INSTANCE_FUNCTIONS
- PLATFORM_VULKAN_INSTANCE_FUNCTIONS
VULKAN_DEVICE_FUNCTIONS
#undef X
@@ -139,7 +146,6 @@
#define X(name) void Load_##name(VkInstance _instance);
VULKAN_INSTANCE_FUNCTIONS
- PLATFORM_VULKAN_INSTANCE_FUNCTIONS
#undef X
#define X(name) void Load_##name(VkDevice _device);