From ed781c1d636f1e60019cd98f3ebf1969e0c8b7a8 Mon Sep 17 00:00:00 2001 From: Greg Wells Date: Tue, 3 Jun 2025 13:23:28 -0400 Subject: [PATCH] Turn instance into a handle --- .../metal/src/core/debugger/metal_debugger.m | 2 +- .../src/core/devices/metal_output_device.m | 2 +- .../src/core/devices/metal_physical_device.m | 2 +- .../metal/src/core/instance/metal_instance.m | 4 ++-- .../metal/src/core/surface/metal_surface.m | 2 +- .../vulkan/src/debugger/vulkan_debugger.c | 2 +- .../vulkan/src/instance/vulkan_instance.c | 6 +++--- .../src/output_device/vulkan_output_device.c | 2 +- .../src/output_device/vulkan_physical_device.c | 2 +- .../vulkan/src/vulkan_surface/vulkan_surface.c | 6 +++--- .../vulkan/src/vulkan_surface/vulkan_surface.m | 2 +- src/core/debugger/gryphn_debugger.h | 2 +- src/core/gryphn_platform_functions.h | 18 +++++++++--------- src/core/instance/gryphn_instance.c | 12 +++++++----- src/core/instance/gryphn_instance.h | 14 ++++++++------ src/core/output_device/gryphn_output_device.c | 2 +- src/core/output_device/gryphn_output_device.h | 4 ++-- .../gryphn_physical_output_device.c | 2 +- .../gryphn_physical_output_device.h | 4 ++-- src/core/window_surface/gryphn_surface.h | 2 +- .../gryphn_surface_create_functions.c | 8 ++++---- .../gryphn_surface_create_functions.h | 8 ++++---- 22 files changed, 56 insertions(+), 52 deletions(-) diff --git a/rendering_api/metal/src/core/debugger/metal_debugger.m b/rendering_api/metal/src/core/debugger/metal_debugger.m index 1a7a43d..77dc534 100644 --- a/rendering_api/metal/src/core/debugger/metal_debugger.m +++ b/rendering_api/metal/src/core/debugger/metal_debugger.m @@ -1,7 +1,7 @@ #include // these do nothing because I am too lazy to write a debugger for metal at this point in time -gnReturnCode gnCreateDebuggerFn(gnDebugger* debugger, gnInstance* instance, const struct gnDebuggerInfo_t info) { +gnReturnCode gnCreateDebuggerFn(gnDebugger* debugger, gnInstanceHandle instance, const struct gnDebuggerInfo_t info) { return GN_SUCCESS; } void gnDestroyDebuggerFn(gnDebugger* instance) { diff --git a/rendering_api/metal/src/core/devices/metal_output_device.m b/rendering_api/metal/src/core/devices/metal_output_device.m index cd83810..eb1f207 100644 --- a/rendering_api/metal/src/core/devices/metal_output_device.m +++ b/rendering_api/metal/src/core/devices/metal_output_device.m @@ -5,7 +5,7 @@ #include "core/instance/gryphn_instance.h" #include -gnReturnCode gnCreateOutputDeviceFn(gnOutputDevice* outputDevice, gnInstance* instance, struct gnOutputDeviceInfo_t deviceInfo) { +gnReturnCode gnCreateOutputDeviceFn(gnOutputDevice* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo) { outputDevice->outputDevice = malloc(sizeof(gnPlatformOutputDevice)); outputDevice->outputDevice->device = deviceInfo.physicalDevice.physicalDevice->device.retain; outputDevice->outputDevice->queueCount = deviceInfo.queueInfoCount; diff --git a/rendering_api/metal/src/core/devices/metal_physical_device.m b/rendering_api/metal/src/core/devices/metal_physical_device.m index d108d88..4cf8640 100644 --- a/rendering_api/metal/src/core/devices/metal_physical_device.m +++ b/rendering_api/metal/src/core/devices/metal_physical_device.m @@ -3,7 +3,7 @@ #include "metal_output_devices.h" #include "core/window_surface/gryphn_surface.h" -gnPhysicalDevice* gnGetPhysicalDevicesFn(gnInstance* instance, uint32_t* deviceCount) { +gnPhysicalDevice* gnGetPhysicalDevicesFn(gnInstanceHandle instance, uint32_t* deviceCount) { NSArray *devices = MTLCopyAllDevices(); *deviceCount = [devices count]; gnPhysicalDevice* devicesList = (gnPhysicalDevice*)malloc(sizeof(gnPhysicalDevice) * *deviceCount); diff --git a/rendering_api/metal/src/core/instance/metal_instance.m b/rendering_api/metal/src/core/instance/metal_instance.m index 69e0e5e..ba801fd 100644 --- a/rendering_api/metal/src/core/instance/metal_instance.m +++ b/rendering_api/metal/src/core/instance/metal_instance.m @@ -4,11 +4,11 @@ // #include "bridge/metal_bridge.h" -gnReturnCode gnCreateInstanceFn(gnInstance* instance, gnInstanceInfo instanceInfo) { +gnReturnCode gnCreateInstanceFn(gnInstanceHandle instance, gnInstanceInfo instanceInfo) { if (instance->instance == NULL) instance->instance = malloc(sizeof(gnPlatformInstance)); return GN_SUCCESS; } -void gnDestroyInstanceFn(gnInstance* instance) { +void gnDestroyInstanceFn(gnInstanceHandle instance) { free(instance->instance); } diff --git a/rendering_api/metal/src/core/surface/metal_surface.m b/rendering_api/metal/src/core/surface/metal_surface.m index 7359230..477e024 100644 --- a/rendering_api/metal/src/core/surface/metal_surface.m +++ b/rendering_api/metal/src/core/surface/metal_surface.m @@ -8,7 +8,7 @@ #import #import -gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { +gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { windowSurface->windowSurface = malloc(sizeof(gnPlatformWindowSurface)); windowSurface->windowSurface->layer = createInfo.layer; return GN_SUCCESS; diff --git a/rendering_api/vulkan/src/debugger/vulkan_debugger.c b/rendering_api/vulkan/src/debugger/vulkan_debugger.c index e6e37d2..dbef784 100644 --- a/rendering_api/vulkan/src/debugger/vulkan_debugger.c +++ b/rendering_api/vulkan/src/debugger/vulkan_debugger.c @@ -90,7 +90,7 @@ void vk_destroyDebugUtilsMessengerEXT(VkInstance instance, VkDebugUtilsMessenger } } -gnReturnCode gnCreateDebuggerFn(gnDebugger* debugger, gnInstance* instance, const struct gnDebuggerInfo_t info) { +gnReturnCode gnCreateDebuggerFn(gnDebugger* debugger, gnInstanceHandle instance, const struct gnDebuggerInfo_t info) { debugger->debugger = malloc(sizeof(gnPlatformDebugger)); if (instance->valid == gnFalse) { diff --git a/rendering_api/vulkan/src/instance/vulkan_instance.c b/rendering_api/vulkan/src/instance/vulkan_instance.c index a9dbd0e..4551f3f 100644 --- a/rendering_api/vulkan/src/instance/vulkan_instance.c +++ b/rendering_api/vulkan/src/instance/vulkan_instance.c @@ -29,7 +29,7 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL vk_debuggerDebugCallback( case VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT: type = GN_DEBUG_MESSAGE_PERFORMANCE; break; } - gnInstance* instance = (gnInstance*)pUserData; + gnInstanceHandle instance = (gnInstanceHandle)pUserData; if (instance->debugger) { instance->debugger->info.callback( @@ -53,7 +53,7 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL vk_debuggerDebugCallback( return VK_FALSE; } -gnReturnCode gnCreateInstanceFn(gnInstance* instance, gnInstanceInfo instanceInfo) { +gnReturnCode gnCreateInstanceFn(gnInstanceHandle instance, gnInstanceInfo instanceInfo) { instance->instance = malloc(sizeof(gnPlatformInstance)); #ifdef GN_PLATFORM_LINUX @@ -127,7 +127,7 @@ gnReturnCode gnCreateInstanceFn(gnInstance* instance, gnInstanceInfo instanceInf return GN_SUCCESS; } -void gnDestroyInstanceFn(gnInstance* instance) { +void gnDestroyInstanceFn(gnInstanceHandle instance) { instance->valid = gnFalse; vkDestroyInstance(instance->instance->vk_instance, NULL); } diff --git a/rendering_api/vulkan/src/output_device/vulkan_output_device.c b/rendering_api/vulkan/src/output_device/vulkan_output_device.c index eecda24..cdd5012 100644 --- a/rendering_api/vulkan/src/output_device/vulkan_output_device.c +++ b/rendering_api/vulkan/src/output_device/vulkan_output_device.c @@ -5,7 +5,7 @@ #include -gnReturnCode gnCreateOutputDeviceFn(gnOutputDevice* outputDevice, gnInstance* instance, struct gnOutputDeviceInfo_t deviceInfo) { +gnReturnCode gnCreateOutputDeviceFn(gnOutputDevice* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo) { outputDevice->outputDevice = malloc(sizeof(gnPlatformOutputDevice)); VkDeviceQueueCreateInfo* queueCreateInfos = malloc(sizeof(VkDeviceQueueCreateInfo) * deviceInfo.queueInfoCount); diff --git a/rendering_api/vulkan/src/output_device/vulkan_physical_device.c b/rendering_api/vulkan/src/output_device/vulkan_physical_device.c index bd01dc2..0802ec7 100644 --- a/rendering_api/vulkan/src/output_device/vulkan_physical_device.c +++ b/rendering_api/vulkan/src/output_device/vulkan_physical_device.c @@ -3,7 +3,7 @@ #include #include -gnPhysicalDevice* gnGetPhysicalDevicesFn(gnInstance* instance, uint32_t* deviceCount) { +gnPhysicalDevice* gnGetPhysicalDevicesFn(gnInstanceHandle instance, uint32_t* deviceCount) { vkEnumeratePhysicalDevices(instance->instance->vk_instance, deviceCount, NULL); if (deviceCount == 0) return NULL; diff --git a/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.c b/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.c index 8b1d838..af35b46 100644 --- a/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.c +++ b/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.c @@ -7,7 +7,7 @@ #ifdef GN_WINDOW_X11 #include #include -gnReturnCode gnCreateX11WindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnX11WindowSurfaceInfo_t createInfo) { +gnReturnCode gnCreateX11WindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo) { windowSurface->windowSurface = malloc(sizeof(struct gnPlatformWindowSurface_t)); VkXlibSurfaceCreateInfoKHR info = {}; info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR; @@ -23,7 +23,7 @@ gnReturnCode gnCreateX11WindowSurfaceFn(struct gnWindowSurface_t* windowSurface, #ifdef GN_WINFDOW_WAYLAND #include -gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWaylandWindowSurfaceInfo_t createInfo) { +gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWaylandWindowSurfaceInfo_t createInfo) { windowSurface->windowSurface = malloc(sizeof(struct gnPlatformWindowSurface_t)); VkWaylandSurfaceCreateInfoKHR info = {}; info.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR; @@ -40,7 +40,7 @@ gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurfac #ifdef GN_PLATFORM_WINDOWS #include "vulkan/vulkan_win32.h" -gnReturnCode gnCreateWin32WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWin32WindowSurfaceInfo_t createInfo) { +gnReturnCode gnCreateWin32WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWin32WindowSurfaceInfo_t createInfo) { windowSurface->windowSurface = malloc(sizeof(struct gnPlatformWindowSurface_t)); VkWin32SurfaceCreateInfoKHR info = {}; info.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; diff --git a/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.m b/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.m index fc85764..b7ecf67 100644 --- a/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.m +++ b/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.m @@ -11,7 +11,7 @@ #include "vulkan/vulkan_metal.h" -gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { +gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { windowSurface->windowSurface = malloc(sizeof(gnPlatformWindowSurface)); VkMetalSurfaceCreateInfoEXT surfaceCreateInfo = {}; surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT; diff --git a/src/core/debugger/gryphn_debugger.h b/src/core/debugger/gryphn_debugger.h index f55d51d..90e00c7 100644 --- a/src/core/debugger/gryphn_debugger.h +++ b/src/core/debugger/gryphn_debugger.h @@ -47,7 +47,7 @@ typedef struct gnDebuggerInfo_t { typedef struct gnDebugger_t { struct gnPlatformDebugger_t* debugger; struct gnDebuggerInfo_t info; - gnInstance* instance; + gnInstanceHandle instance; } gnDebugger; gnReturnCode gnCreateDebugger(gnDebugger* debugger, const struct gnDebuggerInfo_t info); diff --git a/src/core/gryphn_platform_functions.h b/src/core/gryphn_platform_functions.h index 95782a8..c887338 100644 --- a/src/core/gryphn_platform_functions.h +++ b/src/core/gryphn_platform_functions.h @@ -20,37 +20,37 @@ #include "core/present/gryphn_present.h" typedef struct gnFunctions_t { - gnReturnCode (*_gnCreateInstance)(gnInstance* instance, struct gnInstanceInfo_t info); - void (*_gnDestroyInstance)(gnInstance* instance); + gnReturnCode (*_gnCreateInstance)(gnInstanceHandle instance, struct gnInstanceInfo_t info); + void (*_gnDestroyInstance)(gnInstanceHandle instance); - gnReturnCode (*_gnCreateDebugger)(gnDebugger* debugger, gnInstance* instance, const struct gnDebuggerInfo_t info); + gnReturnCode (*_gnCreateDebugger)(gnDebugger* debugger, gnInstanceHandle instance, const struct gnDebuggerInfo_t info); void (*_gnDestroyDebugger)(gnDebugger* debugger); - gnPhysicalDevice* (*_gnGetPhysicalDevices)(gnInstance* instance, uint32_t* count); + gnPhysicalDevice* (*_gnGetPhysicalDevices)(gnInstanceHandle instance, uint32_t* count); gnBool (*_gnQueueCanPresentToSurface)(const struct gnPhysicalDevice_t device, uint32_t queueIndex, const struct gnWindowSurface_t windowSurface); - gnReturnCode (*_gnCreateOutputDevoce)(gnOutputDevice* device, gnInstance* instance, struct gnOutputDeviceInfo_t deviceInfo); + gnReturnCode (*_gnCreateOutputDevoce)(gnOutputDevice* device, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo); void (*_gnDestroyOutputDevice)(gnOutputDevice* device); #ifdef GN_PLATFORM_LINUX #ifdef GN_WINDOW_X11 - gnReturnCode (*_gnCreateX11WindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnX11WindowSurfaceInfo_t createInfo); + gnReturnCode (*_gnCreateX11WindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo); #endif #ifdef GN_WINDOW_WAYLAND - gnReturnCode (*_gnCreateWaylandWindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWaylandWindowSurfaceInfo_t createInfo); + gnReturnCode (*_gnCreateWaylandWindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWaylandWindowSurfaceInfo_t createInfo); #endif #endif #ifdef GN_PLATFORM_WIN32 - gnReturnCode (*_gnCreateWin32WindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWin32WindowSurfaceInfo_t createInfo); + gnReturnCode (*_gnCreateWin32WindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWin32WindowSurfaceInfo_t createInfo); #endif #ifdef GN_PLATFORM_MACOS - gnReturnCode (*_gnCreateMacOSWindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo); + gnReturnCode (*_gnCreateMacOSWindowSurface)(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo); #endif void (*_gnDestroyWindowSurface)(struct gnWindowSurface_t* windowSurface); diff --git a/src/core/instance/gryphn_instance.c b/src/core/instance/gryphn_instance.c index e1af06a..f3154a7 100644 --- a/src/core/instance/gryphn_instance.c +++ b/src/core/instance/gryphn_instance.c @@ -3,7 +3,10 @@ #include #include "core/debugger/gryphn_debugger.h" -gnReturnCode gnCreateInstance(gnInstance* instance, struct gnInstanceInfo_t info) { +gnReturnCode gnCreateInstance(gnInstanceHandle* instanceHandlePtr, struct gnInstanceInfo_t info) { + *instanceHandlePtr = malloc(sizeof(struct gnInstance_t)); + gnInstanceHandle instance = *instanceHandlePtr; + if (!gnIsAPISupported(info.renderingAPI)) return GN_UNSUPPORTED_RENDERING_API; instance->loadDeviceFunctions = gnFalse; instance->debugger = NULL; @@ -13,8 +16,7 @@ gnReturnCode gnCreateInstance(gnInstance* instance, struct gnInstanceInfo_t info gnLoadFunctions(instance->dynamicLib, instance->functions); return instance->functions->_gnCreateInstance(instance, info); } - -void gnInstanceAttachDebugger(gnInstance *instance, struct gnDebugger_t *debugger) { +void gnInstanceAttachDebugger(gnInstanceHandle instance, struct gnDebugger_t *debugger) { if (instance->debugger != NULL) { gnDebuggerSetErrorMessage(debugger, (gnMessageData){ .message = gnCreateString("Debugger already attached to instance") @@ -31,13 +33,13 @@ void gnInstanceAttachDebugger(gnInstance *instance, struct gnDebugger_t *debugge } #include "stdio.h" -void gnDestroyInstance(gnInstance* instance) { +void gnDestroyInstance(gnInstanceHandle instance) { if (instance->debugger) { instance->functions->_gnDestroyDebugger(instance->debugger); } instance->functions->_gnDestroyInstance(instance); } -void gnInstanceReleaseDebugger(gnInstance* instance) { +void gnInstanceReleaseDebugger(gnInstanceHandle instance) { instance->debugger = NULL; } diff --git a/src/core/instance/gryphn_instance.h b/src/core/instance/gryphn_instance.h index 5f73195..6e77981 100644 --- a/src/core/instance/gryphn_instance.h +++ b/src/core/instance/gryphn_instance.h @@ -17,7 +17,7 @@ typedef struct gnInstanceInfo_t { gnRenderingAPI renderingAPI; } gnInstanceInfo; -typedef struct gnInstance_t { +struct gnInstance_t { struct gnPlatformInstance_t* instance; gnBool valid, loadDeviceFunctions, @@ -30,9 +30,11 @@ typedef struct gnInstance_t { struct gnCommandFunctions_t* commandFunctions; struct gnDebugger_t* debugger; -} gnInstance; +} gnInstance_t; -gnReturnCode gnCreateInstance(gnInstance* instance, struct gnInstanceInfo_t info); -void gnInstanceAttachDebugger(gnInstance* istance, struct gnDebugger_t* debugger); -void gnInstanceReleaseDebugger(gnInstance* instance); -void gnDestroyInstance(gnInstance* instance); +typedef struct gnInstance_t* gnInstanceHandle; + +gnReturnCode gnCreateInstance(gnInstanceHandle* instance, struct gnInstanceInfo_t info); +void gnInstanceAttachDebugger(gnInstanceHandle istance, struct gnDebugger_t* debugger); +void gnInstanceReleaseDebugger(gnInstanceHandle instance); +void gnDestroyInstance(gnInstanceHandle instance); diff --git a/src/core/output_device/gryphn_output_device.c b/src/core/output_device/gryphn_output_device.c index 6626511..65530c3 100644 --- a/src/core/output_device/gryphn_output_device.c +++ b/src/core/output_device/gryphn_output_device.c @@ -3,7 +3,7 @@ #include "core/gryphn_platform_functions.h" #include "core/instance/init/gryphn_init.h" -gnReturnCode gnCreateOutputDevice(gnOutputDevice* outputDevice, gnInstance* instance, struct gnOutputDeviceInfo_t deviceInfo) { +gnReturnCode gnCreateOutputDevice(gnOutputDevice* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo) { if (instance->loadDeviceFunctions == gnFalse) { instance->deviceFunctions = malloc(sizeof(struct gnDeviceFunctions_t)); gnLoadDeviceFunctions(instance->dynamicLib, instance->deviceFunctions); diff --git a/src/core/output_device/gryphn_output_device.h b/src/core/output_device/gryphn_output_device.h index a5873b3..a33e7b0 100644 --- a/src/core/output_device/gryphn_output_device.h +++ b/src/core/output_device/gryphn_output_device.h @@ -21,10 +21,10 @@ typedef struct gnOutputDevice_t { struct gnPlatformOutputDevice_t* outputDevice; struct gnDeviceFunctions_t* deviceFunctions; struct gnOutputDeviceInfo_t deviceInfo; - gnInstance* instance; + gnInstanceHandle instance; gnPhysicalDevice physicalDevice; } gnOutputDevice; -gnReturnCode gnCreateOutputDevice(gnOutputDevice* outputDevice, gnInstance* instance, struct gnOutputDeviceInfo_t deviceInfo); +gnReturnCode gnCreateOutputDevice(gnOutputDevice* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo); void gnWaitForDevice(gnOutputDevice* device); void gnDestroyOutputDevice(gnOutputDevice* device); diff --git a/src/core/output_device/gryphn_physical_output_device.c b/src/core/output_device/gryphn_physical_output_device.c index 9fac67d..1103ef9 100644 --- a/src/core/output_device/gryphn_physical_output_device.c +++ b/src/core/output_device/gryphn_physical_output_device.c @@ -3,7 +3,7 @@ #include "core/window_surface/gryphn_surface.h" #include "stdio.h" -gnPhysicalDevice* gnGetPhyscialDevices(gnInstance* instance, uint32_t* count) { +gnPhysicalDevice* gnGetPhyscialDevices(gnInstanceHandle instance, uint32_t* count) { gnPhysicalDevice* devices = instance->functions->_gnGetPhysicalDevices(instance, count); for (int i = 0; i < *count; i++) { devices[i].instance = instance; diff --git a/src/core/output_device/gryphn_physical_output_device.h b/src/core/output_device/gryphn_physical_output_device.h index c92147a..0630aef 100644 --- a/src/core/output_device/gryphn_physical_output_device.h +++ b/src/core/output_device/gryphn_physical_output_device.h @@ -40,10 +40,10 @@ typedef struct gnPhysicalDevice_t { struct gnPhysicalDeviceFeatures_t features; struct gnPhysicalDeviceQueueProperties_t queueProperties; - gnInstance* instance; + gnInstanceHandle instance; } gnPhysicalDevice; -gnPhysicalDevice* gnGetPhyscialDevices(gnInstance* instance, uint32_t* count); +gnPhysicalDevice* gnGetPhyscialDevices(gnInstanceHandle instance, uint32_t* count); gnBool gnQueueCanPresentToSurface(const struct gnPhysicalDevice_t device, uint32_t queueIndex, const struct gnWindowSurface_t windowSurface); gnBool gnHasGraphicsQueue(const struct gnPhysicalDevice_t device); diff --git a/src/core/window_surface/gryphn_surface.h b/src/core/window_surface/gryphn_surface.h index 279a023..25c1ad7 100644 --- a/src/core/window_surface/gryphn_surface.h +++ b/src/core/window_surface/gryphn_surface.h @@ -20,7 +20,7 @@ typedef struct gnSurfaceDetails_t { typedef struct gnWindowSurface_t { struct gnPlatformWindowSurface_t* windowSurface; - gnInstance* instance; + gnInstanceHandle instance; } gnWindowSurface; void gnDestroyWindowSurface(struct gnWindowSurface_t* windowSurface); struct gnSurfaceFormat_t* gnGetSupportedSurfaceFormats( diff --git a/src/core/window_surface/gryphn_surface_create_functions.c b/src/core/window_surface/gryphn_surface_create_functions.c index 3ce6176..12ded4c 100644 --- a/src/core/window_surface/gryphn_surface_create_functions.c +++ b/src/core/window_surface/gryphn_surface_create_functions.c @@ -4,12 +4,12 @@ #ifdef GN_PLATFORM_LINUX #ifdef GN_WINDOW_X11 - gnReturnCode gnCreateX11WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnX11WindowSurfaceInfo_t createInfo) { + gnReturnCode gnCreateX11WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo) { return instance->functions->_gnCreateX11WindowSurface(windowSurface, instance, createInfo); } #endif #ifdef GN_WINDOW_WAYLAND - gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWaylandWindowSurfaceInfo_t createInfo) { + gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWaylandWindowSurfaceInfo_t createInfo) { return instance->functions->_gnCreateWaylandWindowSurface(windowSurface, instance, createInfo); } #endif @@ -17,13 +17,13 @@ #ifdef GN_PLATFORM_WIN32 - gnReturnCode gnCreateWin32WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWin32WindowSurfaceInfo_t createInfo) { + gnReturnCode gnCreateWin32WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWin32WindowSurfaceInfo_t createInfo) { return instance->functions->_gnCreateWin32WindowSurface(windowSurface, instance, createInfo); } #endif #ifdef GN_PLATFORM_MACOS - gnReturnCode gnCreateMacOSWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { + gnReturnCode gnCreateMacOSWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { windowSurface->instance = instance; return instance->functions->_gnCreateMacOSWindowSurface(windowSurface, instance, createInfo); } diff --git a/src/core/window_surface/gryphn_surface_create_functions.h b/src/core/window_surface/gryphn_surface_create_functions.h index 5b8542f..de093e3 100644 --- a/src/core/window_surface/gryphn_surface_create_functions.h +++ b/src/core/window_surface/gryphn_surface_create_functions.h @@ -8,7 +8,7 @@ Window* window; } gnX11WindowSurfaceCreateInfo; - gnReturnCode gnCreateX11WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnX11WindowSurfaceInfo_t createInfo); + gnReturnCode gnCreateX11WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo); #endif #ifdef GN_WINDOW_WAYLAND typedef struct gnWaylandWindowSurfaceInfo_t { @@ -16,7 +16,7 @@ wl_surface* surface; } gnWaylandWindowSurfaceInfo; - gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWaylandWindowSurfaceInfo_t createInfo); + gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWaylandWindowSurfaceInfo_t createInfo); #endif #endif @@ -27,7 +27,7 @@ HINSTANCE* instance; } gnWin32WindowSurfaceInfo; - gnReturnCode gnCreateWin32WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWin32WindowSurfaceInfo_t createInfo); + gnReturnCode gnCreateWin32WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnWin32WindowSurfaceInfo_t createInfo); #endif #ifdef GN_PLATFORM_MACOS @@ -35,5 +35,5 @@ CAMetalLayer* layer; } gnMacOSWindowSurfaceInfo; - gnReturnCode gnCreateMacOSWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo); + gnReturnCode gnCreateMacOSWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo); #endif