essentially finish the loader rewrite
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "core/gryphn_return_code.h"
|
||||
#include "utils/gryphn_bool.h"
|
||||
#include "gryphn_handles.h"
|
||||
#include "gryphn_loader_helpers.h"
|
||||
|
||||
typedef struct gnInstanceCreateInfo gnInstanceCreateInfo;
|
||||
typedef struct gnSurfaceDetails gnSurfaceDetails;
|
||||
@@ -18,9 +19,13 @@ typedef struct gnOutputDeviceInfo gnOutputDeviceInfo;
|
||||
typedef struct gnMacOSWindowSurfaceInfo gnMacOSWindowSurfaceInfo;
|
||||
#endif
|
||||
|
||||
typedef struct gryphnFunctionLayer gryphnFunctionLayer;
|
||||
typedef gnReturnCode (*PFN_gnCreateInstance)(gnInstanceHandle instance, gnInstanceCreateInfo* info, gryphnFunctionLayer* next);
|
||||
typedef gnReturnCode (*PFN_gnDestroyInstance)(gnInstanceHandle instance, gryphnFunctionLayer* next);
|
||||
typedef struct PFN_gnCreateInstance_layer PFN_gnCreateInstance_layer;
|
||||
typedef gnReturnCode (*PFN_gnCreateInstance)(gnInstanceHandle instance, gnInstanceCreateInfo* info, PFN_gnCreateInstance_layer* next);
|
||||
gryphnFunctionLayer(PFN_gnCreateInstance);
|
||||
|
||||
typedef struct PFN_gnDestroyInstance_layer PFN_gnDestroyInstance_layer;
|
||||
typedef void (*PFN_gnDestroyInstance)(gnInstanceHandle instance, PFN_gnDestroyInstance_layer* next);
|
||||
gryphnFunctionLayer(PFN_gnDestroyInstance);
|
||||
|
||||
typedef struct gnInstanceFunctions {
|
||||
gnPhysicalDevice* (*_gnGetPhysicalDevices)(gnInstanceHandle instance, uint32_t* count);
|
||||
|
@@ -14,8 +14,8 @@ typedef struct gryphnFunctionLayer {
|
||||
} gryphnFunctionLayer;
|
||||
|
||||
typedef struct gryphnInstanceFunctionLayers {
|
||||
gryphnFunctionLayer createInstance; // PFN_gnCreateInstance
|
||||
gryphnFunctionLayer destroyInstance; // PFN_gnDestroyInstance
|
||||
PFN_gnCreateInstance_layer createInstance;
|
||||
PFN_gnDestroyInstance_layer destroyInstance;
|
||||
} gryphnInstanceFunctionLayers;
|
||||
gryphnInstanceFunctionLayers gryphnLoadAPILayer(gnRenderingAPI api);
|
||||
|
||||
|
6
projects/loader/src/gryphn_loader_helpers.h
Normal file
6
projects/loader/src/gryphn_loader_helpers.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#define gryphnFunctionLayer(function) typedef struct function##_layer { \
|
||||
function func;\
|
||||
struct function##_layer* next; \
|
||||
} function##_layer;\
|
Reference in New Issue
Block a user