diff --git a/include/Nazara/VulkanRenderer/Wrapper/Device.hpp b/include/Nazara/VulkanRenderer/Wrapper/Device.hpp index 4516bf7f5..a6fe18e51 100644 --- a/include/Nazara/VulkanRenderer/Wrapper/Device.hpp +++ b/include/Nazara/VulkanRenderer/Wrapper/Device.hpp @@ -72,20 +72,9 @@ namespace Nz // Vulkan functions #define NAZARA_VULKANRENDERER_DEVICE_FUNCTION(func) PFN_##func func = nullptr; #define NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION(func, ...) NAZARA_VULKANRENDERER_DEVICE_FUNCTION(func) -#define NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN(ext) -#define NAZARA_VULKANRENDERER_DEVICE_EXT_END() -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(ext) -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_END() #include -#undef NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION -#undef NAZARA_VULKANRENDERER_DEVICE_FUNCTION -#undef NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_DEVICE_EXT_END -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END - struct QueueInfo { QueueFamilyInfo* familyInfo; diff --git a/include/Nazara/VulkanRenderer/Wrapper/DeviceFunctions.hpp b/include/Nazara/VulkanRenderer/Wrapper/DeviceFunctions.hpp index 8c68aa569..6444e2124 100644 --- a/include/Nazara/VulkanRenderer/Wrapper/DeviceFunctions.hpp +++ b/include/Nazara/VulkanRenderer/Wrapper/DeviceFunctions.hpp @@ -2,6 +2,26 @@ // This file is part of the "Nazara Engine - Vulkan Renderer" // For conditions of distribution and use, see copyright notice in Config.hpp +#if !defined(NAZARA_VULKANRENDERER_DEVICE_FUNCTION) || !defined(NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION) +#error You must define NAZARA_VULKANRENDERER_DEVICE_FUNCTION and NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION before including this file +#endif + +#ifndef NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN +#define NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN(ext) +#endif + +#ifndef NAZARA_VULKANRENDERER_DEVICE_EXT_END +#define NAZARA_VULKANRENDERER_DEVICE_EXT_END() +#endif + +#ifndef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN +#define NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(ext) +#endif + +#ifndef NAZARA_VULKANRENDERER_INSTANCE_EXT_END +#define NAZARA_VULKANRENDERER_INSTANCE_EXT_END() +#endif + // Vulkan core NAZARA_VULKANRENDERER_DEVICE_FUNCTION(vkAllocateCommandBuffers) NAZARA_VULKANRENDERER_DEVICE_FUNCTION(vkAllocateDescriptorSets) @@ -155,3 +175,10 @@ NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(VK_EXT_debug_utils) NAZARA_VULKANRENDERER_DEVICE_FUNCTION(vkSetDebugUtilsObjectNameEXT) NAZARA_VULKANRENDERER_DEVICE_FUNCTION(vkSetDebugUtilsObjectTagEXT) NAZARA_VULKANRENDERER_INSTANCE_EXT_END() + +#undef NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION +#undef NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN +#undef NAZARA_VULKANRENDERER_DEVICE_EXT_END +#undef NAZARA_VULKANRENDERER_DEVICE_FUNCTION +#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN +#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END diff --git a/include/Nazara/VulkanRenderer/Wrapper/GlobalFunctions.hpp b/include/Nazara/VulkanRenderer/Wrapper/GlobalFunctions.hpp index a1ee8a8dc..c050aa280 100644 --- a/include/Nazara/VulkanRenderer/Wrapper/GlobalFunctions.hpp +++ b/include/Nazara/VulkanRenderer/Wrapper/GlobalFunctions.hpp @@ -2,8 +2,15 @@ // This file is part of the "Nazara Engine - Vulkan Renderer" // For conditions of distribution and use, see copyright notice in Config.hpp +#if !defined(NAZARA_VULKANRENDERER_GLOBAL_FUNCTION) || !defined(NAZARA_VULKANRENDERER_GLOBAL_FUNCTION_OPT) +#error You must define NAZARA_VULKANRENDERER_GLOBAL_FUNCTION and NAZARA_VULKANRENDERER_GLOBAL_FUNCTION_OPT before including this file +#endif + // Vulkan core NAZARA_VULKANRENDERER_GLOBAL_FUNCTION(vkCreateInstance) NAZARA_VULKANRENDERER_GLOBAL_FUNCTION(vkEnumerateInstanceExtensionProperties) NAZARA_VULKANRENDERER_GLOBAL_FUNCTION(vkEnumerateInstanceLayerProperties) NAZARA_VULKANRENDERER_GLOBAL_FUNCTION_OPT(vkEnumerateInstanceVersion) + +#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION +#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION_OPT diff --git a/include/Nazara/VulkanRenderer/Wrapper/Instance.hpp b/include/Nazara/VulkanRenderer/Wrapper/Instance.hpp index 18e25307c..7b67d5c98 100644 --- a/include/Nazara/VulkanRenderer/Wrapper/Instance.hpp +++ b/include/Nazara/VulkanRenderer/Wrapper/Instance.hpp @@ -86,18 +86,11 @@ namespace Nz inline operator VkInstance(); // Vulkan functions -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(ext) -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_END() #define NAZARA_VULKANRENDERER_INSTANCE_FUNCTION(func) PFN_##func func; #define NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION(func, ...) NAZARA_VULKANRENDERER_INSTANCE_FUNCTION(func) #include -#undef NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END -#undef NAZARA_VULKANRENDERER_INSTANCE_FUNCTION - private: void DestroyInstance(); void ResetPointers(); diff --git a/include/Nazara/VulkanRenderer/Wrapper/InstanceFunctions.hpp b/include/Nazara/VulkanRenderer/Wrapper/InstanceFunctions.hpp index d25dc48b7..821723387 100644 --- a/include/Nazara/VulkanRenderer/Wrapper/InstanceFunctions.hpp +++ b/include/Nazara/VulkanRenderer/Wrapper/InstanceFunctions.hpp @@ -2,6 +2,18 @@ // This file is part of the "Nazara Engine - Vulkan Renderer" // For conditions of distribution and use, see copyright notice in Config.hpp +#if !defined(NAZARA_VULKANRENDERER_INSTANCE_FUNCTION) || !defined(NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION) +#error You must define NAZARA_VULKANRENDERER_INSTANCE_FUNCTION and NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION before including this file +#endif + +#ifndef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN +#define NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(ext) +#endif + +#ifndef NAZARA_VULKANRENDERER_INSTANCE_EXT_END +#define NAZARA_VULKANRENDERER_INSTANCE_EXT_END() +#endif + // Vulkan core NAZARA_VULKANRENDERER_INSTANCE_FUNCTION(vkCreateDevice) NAZARA_VULKANRENDERER_INSTANCE_FUNCTION(vkDestroyInstance) @@ -82,3 +94,8 @@ NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(VK_KHR_win32_surface) NAZARA_VULKANRENDERER_INSTANCE_FUNCTION(vkGetPhysicalDeviceWin32PresentationSupportKHR) NAZARA_VULKANRENDERER_INSTANCE_EXT_END() #endif + +#undef NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION +#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN +#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END +#undef NAZARA_VULKANRENDERER_INSTANCE_FUNCTION diff --git a/include/Nazara/VulkanRenderer/Wrapper/Loader.hpp b/include/Nazara/VulkanRenderer/Wrapper/Loader.hpp index cd60a750a..bdd5e4f45 100644 --- a/include/Nazara/VulkanRenderer/Wrapper/Loader.hpp +++ b/include/Nazara/VulkanRenderer/Wrapper/Loader.hpp @@ -39,9 +39,6 @@ namespace Nz #include -#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION_OPT -#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION - private: static DynLib s_vulkanLib; static VkResult s_lastErrorCode; diff --git a/src/Nazara/VulkanRenderer/Wrapper/Device.cpp b/src/Nazara/VulkanRenderer/Wrapper/Device.cpp index 7d9d5f874..c095a8d9a 100644 --- a/src/Nazara/VulkanRenderer/Wrapper/Device.cpp +++ b/src/Nazara/VulkanRenderer/Wrapper/Device.cpp @@ -92,13 +92,6 @@ namespace Nz func = reinterpret_cast(GetProcAddr(#func #suffix)); #include - -#undef NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION -#undef NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_DEVICE_EXT_END -#undef NAZARA_VULKANRENDERER_DEVICE_FUNCTION -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END } catch (const std::exception& e) { @@ -265,19 +258,8 @@ namespace Nz // Reset functions pointers #define NAZARA_VULKANRENDERER_DEVICE_FUNCTION(func) func = nullptr; #define NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION(func, ...) NAZARA_VULKANRENDERER_DEVICE_FUNCTION(func) -#define NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN(ext) -#define NAZARA_VULKANRENDERER_DEVICE_EXT_END() -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(ext) -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_END() #include - -#undef NAZARA_VULKANRENDERER_DEVICE_CORE_EXT_FUNCTION -#undef NAZARA_VULKANRENDERER_DEVICE_FUNCTION -#undef NAZARA_VULKANRENDERER_DEVICE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_DEVICE_EXT_END -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END } void Device::WaitAndDestroyDevice() diff --git a/src/Nazara/VulkanRenderer/Wrapper/Instance.cpp b/src/Nazara/VulkanRenderer/Wrapper/Instance.cpp index f30416e34..e15812528 100644 --- a/src/Nazara/VulkanRenderer/Wrapper/Instance.cpp +++ b/src/Nazara/VulkanRenderer/Wrapper/Instance.cpp @@ -118,11 +118,6 @@ namespace Nz func = reinterpret_cast(GetProcAddr(#func #suffix)); #include - -#undef NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END -#undef NAZARA_VULKANRENDERER_INSTANCE_FUNCTION } catch (const std::exception& e) { @@ -246,17 +241,10 @@ namespace Nz assert(m_instance != VK_NULL_HANDLE); m_instance = VK_NULL_HANDLE; -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN(ext) -#define NAZARA_VULKANRENDERER_INSTANCE_EXT_END() #define NAZARA_VULKANRENDERER_INSTANCE_FUNCTION(func) func = nullptr; #define NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION(func, ...) NAZARA_VULKANRENDERER_INSTANCE_FUNCTION(func) #include - -#undef NAZARA_VULKANRENDERER_INSTANCE_CORE_EXT_FUNCTION -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_BEGIN -#undef NAZARA_VULKANRENDERER_INSTANCE_EXT_END -#undef NAZARA_VULKANRENDERER_INSTANCE_FUNCTION } } } diff --git a/src/Nazara/VulkanRenderer/Wrapper/Loader.cpp b/src/Nazara/VulkanRenderer/Wrapper/Loader.cpp index 89a6843de..e0937675a 100644 --- a/src/Nazara/VulkanRenderer/Wrapper/Loader.cpp +++ b/src/Nazara/VulkanRenderer/Wrapper/Loader.cpp @@ -106,8 +106,6 @@ namespace Nz #include -#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION_OPT -#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION } catch (const std::exception& e) { @@ -127,9 +125,6 @@ namespace Nz #include -#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION_OPT -#undef NAZARA_VULKANRENDERER_GLOBAL_FUNCTION - DynLib Loader::s_vulkanLib; VkResult Loader::s_lastErrorCode;