 |
Plasma Engine
2.0
|
Loading...
Searching...
No Matches
3#include <RendererFoundation/RendererFoundationDLL.h>
5#if PL_ENABLED(PL_PLATFORM_WINDOWS)
7# include <Foundation/Basics/Platform/Win/IncludeWindows.h>
10#if PL_ENABLED(PL_PLATFORM_WINDOWS)
11# define VK_USE_PLATFORM_WIN32_KHR
12#elif PL_ENABLED(PL_PLATFORM_LINUX)
13# define VK_USE_PLATFORM_XCB_KHR
14#elif PL_ENABLED(PL_PLATFORM_ANDROID)
15# define VK_USE_PLATFORM_ANDROID_KHR
18#define VULKAN_HPP_NO_NODISCARD_WARNINGS
19#include <vulkan/vulkan.hpp>
21#if PL_ENABLED(PL_PLATFORM_ANDROID)
22# include <vulkan/vulkan_android.h>
23#elif PL_ENABLED(PL_PLATFORM_WINDOWS)
24# include <vulkan/vulkan_win32.h>
28#if PL_ENABLED(PL_COMPILE_ENGINE_AS_DLL)
29# ifdef BUILDSYSTEM_BUILDING_RENDERERVULKAN_LIB
30# define PL_RENDERERVULKAN_DLL PL_DECL_EXPORT
32# define PL_RENDERERVULKAN_DLL PL_DECL_IMPORT
35# define PL_RENDERERVULKAN_DLL
41#define PL_GAL_VULKAN_RELEASE(vulkanObj) \
44 if ((vulkanObj) != nullptr) \
46 (vulkanObj)->Release(); \
47 (vulkanObj) = nullptr; \
51#define VK_ASSERT_DEBUG(code) \
55 PL_ASSERT_DEBUG(static_cast<vk::Result>(s) == vk::Result::eSuccess, "Vukan call '{0}' failed with: {1} in {2}:{3}", \
56 PL_PP_STRINGIFY(code), vk::to_string(static_cast<vk::Result>(s)).data(), PL_SOURCE_FILE, PL_SOURCE_LINE); \
59#define VK_ASSERT_DEV(code) \
63 PL_ASSERT_DEV(static_cast<vk::Result>(s) == vk::Result::eSuccess, "Vukan call '{0}' failed with: {1} in {2}:{3}", \
64 PL_PP_STRINGIFY(code), vk::to_string(static_cast<vk::Result>(s)).data(), PL_SOURCE_FILE, PL_SOURCE_LINE); \
67#define VK_LOG_ERROR(code) \
71 if (static_cast<vk::Result>(s) != vk::Result::eSuccess) \
73 plLog::Error("Vukan call '{0}' failed with: {1} in {2}:{3}", PL_PP_STRINGIFY(code), vk::to_string(static_cast<vk::Result>(s)).data(), PL_SOURCE_FILE, PL_SOURCE_LINE); \
77#define VK_SUCCEED_OR_RETURN_LOG(code) \
81 if (static_cast<vk::Result>(s) != vk::Result::eSuccess) \
83 plLog::Error("Vukan call '{0}' failed with: {1} in {2}:{3}", PL_PP_STRINGIFY(code), vk::to_string(static_cast<vk::Result>(s)).data(), PL_SOURCE_FILE, PL_SOURCE_LINE); \
88#define VK_SUCCEED_OR_RETURN_PL_FAILURE(code) \
92 if (static_cast<vk::Result>(s) != vk::Result::eSuccess) \
94 plLog::Error("Vukan call '{0}' failed with: {1} in {2}:{3}", PL_PP_STRINGIFY(code), vk::to_string(static_cast<vk::Result>(s)).data(), PL_SOURCE_FILE, PL_SOURCE_LINE); \