6#define VK_USE_PLATFORM_WIN32_KHR
8#define VK_USE_PLATFORM_XLIB_KHR
13#pragma comment(lib, "C:\\VulkanSDK\\1.0.46.0\\Lib\\vulkan-1.lib")
15#define VK_NO_PROTOTYPES
19#define COGS_DEFINE_FUNCTION(function) PFN_##function function
20#define COGS_DECLARE_FUNCTION(function) extern PFN_##function function
22#define COGS_FUNCTION_HEADER
23#include "FunctionsVK.h"
24#undef COGS_FUNCTION_HEADER
26extern HMODULE gModuleHandle;
29inline void assign(T & t,
const char * name)
31 t = (T)::GetProcAddress(gModuleHandle, name);
35inline void instanceAssign(T & t, VkInstance instance,
const char * name)
37 t = (T)vkGetInstanceProcAddr(instance, name);
41inline void deviceAssign(T & t, VkDevice device,
const char * name)
43 t = (T)vkGetDeviceProcAddr(device, name);
46#define LOAD_FUNCTION(x) assign(x, #x);
47#define LOAD_INSTANCE_FUNCTION(x) vkGetInstanceProcAddr ? instanceAssign(x, instance, #x) : LOAD_FUNCTION(x);
48#define LOAD_DEVICE_FUNCTION(x) vkGetDeviceProcAddr ? deviceAssign(x, device, #x) : LOAD_INSTANCE_FUNCTION(x);
51#include "../Base/ResourceMap.h"
53#include "Foundation/Logging/Logger.h"
57inline const char * getResultStr(VkResult result)
61 return VK_STR(VK_SUCCESS);
62 case VK_ERROR_DEVICE_LOST:
63 return VK_STR(VK_ERROR_DEVICE_LOST);
65 return "UNKOWN_ERROR";
69#define VK_FAILED(result) result != VK_SUCCESS
70#define VK_LOG_ERROR(result, str) LOG_ERROR(logger, "%s Result: %s", str, ::getResultStr(result))
73void loaderInitInstance(VkInstance instance);
74void loaderInitDevice(VkInstance instance, VkDevice device);
80 bool setImageLayout(VkCommandBuffer commandBuffer,
82 VkImageAspectFlags aspectMask,
83 VkImageLayout oldLayout,
84 VkImageLayout newLayout,
85 VkImageSubresourceRange range = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 });
87 bool setImageLayout(VkCommandBuffer commandBuffer,
89 VkImageAspectFlags aspectMask,
90 VkImageLayout newLayout,
91 VkImageSubresourceRange range = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 });
94extern HMODULE gModuleHandle;
Contains all Cogs related functionality.