continue instance functions redo

This commit is contained in:
Gregory Wells
2025-08-03 09:55:29 -04:00
parent 77b52b5d2d
commit da20b01638
6 changed files with 57 additions and 29 deletions

View File

@@ -4,10 +4,15 @@
#include <output_device/vulkan_output_devices.h>
#include <vulkan_surface/vulkan_surface.h>
gryphnInstanceFunctionLayers loadVulkanAPILayer() {
return (gryphnInstanceFunctionLayers) {
.createInstance = {vulkanCreateInstance, NULL},
.destroyInstance = {vulkanDestroyInstance, NULL}
};
}
gnInstanceFunctions loadVulkanInstanceFunctions() {
return (gnInstanceFunctions){
.createInstance = (PFN_gnCreateInstance)createVulkanInstance,
.destroyInstance = (PFN_gnDestroyInstance)destroyVulkanInstance,
._gnGetPhysicalDevices = getPhysicalDevices,
._gnPhysicalDeviceCanPresentToSurface = deviceCanPresentToSurface,

View File

@@ -35,7 +35,7 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL vk_debuggerDebugCallback(
return VK_TRUE;
}
gnReturnCode createVulkanInstance(gnInstanceHandle instance, gnInstanceCreateInfo* instanceInfo, PFN_gnCreateInstance* next) {
gnReturnCode vulkanCreateInstance(gnInstanceHandle instance, gnInstanceCreateInfo* instanceInfo, gryphnFunctionLayer* next) {
instance->instance = malloc(sizeof(gnPlatformInstance));
vkStringArrayList extensions = vkStringArrayListCreate();
@@ -101,6 +101,6 @@ gnReturnCode createVulkanInstance(gnInstanceHandle instance, gnInstanceCreateInf
return VkResultToGnReturnCode(vkCreateInstance(&createInfo, NULL, &instance->instance->vk_instance));
}
void destroyVulkanInstance(gnInstanceHandle instance, PFN_gnDestroyInstance* next) {
void vulkanDestroyInstance(gnInstanceHandle instance, gryphnFunctionLayer* next) {
vkDestroyInstance(instance->instance->vk_instance, NULL);
}

View File

@@ -14,8 +14,8 @@ typedef struct gnPlatformInstance_t {
vkUserData userData;
} gnPlatformInstance;
gnReturnCode createVulkanInstance(gnInstanceHandle instance, gnInstanceCreateInfo* instanceInfo, PFN_gnCreateInstance* next);
void destroyVulkanInstance(gnInstanceHandle instance, PFN_gnDestroyInstance* next);
gnReturnCode vulkanCreateInstance(gnInstanceHandle instance, gnInstanceCreateInfo* instanceInfo, gryphnFunctionLayer* next);
void vulkanDestroyInstance(gnInstanceHandle instance, gryphnFunctionLayer* next);
typedef const char* vkString;
GN_ARRAY_LIST(vkString);