C instance creation
This commit is contained in:
@@ -6,6 +6,7 @@ gnReturnCode gnCreateInstance(gnInstance* instance, struct gnInstanceInfo_t info
|
||||
if (!gnIsAPISupported(info.renderingAPI)) return GN_UNSUPPORTED_RENDERING_API;
|
||||
instance->dynamicLib = gnLoadRenderingDLL(info.renderingAPI);
|
||||
if (instance->dynamicLib == NULL) return GN_UNABLE_TO_LOAD_DYNAMIC_LIBARRY;
|
||||
instance->functions = malloc(sizeof(struct gnFunctions_t));
|
||||
gnLoadFunctions(instance->dynamicLib, instance->functions);
|
||||
|
||||
return instance->functions->_gnCreateInstance(instance, info);
|
||||
|
@@ -18,7 +18,7 @@ gnRenderingAPI* gnGetSupportedRenderingAPIs(int* count) {
|
||||
struct gnDynamicLibrary_t* gnLoadDynamicLibrary(const gnString path) {
|
||||
struct gnDynamicLibrary_t* dll = malloc(sizeof(struct gnDynamicLibrary_t));
|
||||
dll->dllPtr = dlopen(gnToCString(gnCombineStrings(path, ".dylib")), RTLD_LAZY),
|
||||
dll->isValid = true
|
||||
dll->isValid = true;
|
||||
if (dll->dllPtr == NULL) dll->isValid = false;
|
||||
return dll;
|
||||
}
|
||||
|
@@ -4,7 +4,8 @@ typedef enum gnReturnCode_t {
|
||||
GN_SUCCESS,
|
||||
GN_UNKNOWN_RENDERINGAPI,
|
||||
GN_UNSUPPORTED_RENDERING_API,
|
||||
GN_UNABLE_TO_LOAD_DYNAMIC_LIBARRY
|
||||
GN_UNABLE_TO_LOAD_DYNAMIC_LIBARRY,
|
||||
GN_FAILED_CREATE_INSTANCE
|
||||
|
||||
// GN_UNKNOWN_ERROR,
|
||||
// GN_UNKNOWN_FRAMEBUFFER_ATTACHMENT,
|
||||
@@ -19,7 +20,6 @@ typedef enum gnReturnCode_t {
|
||||
// GN_FAILED_CREATE_PRESENTATION_QUEUE,
|
||||
// GN_FAILED_TO_CREATE_FRAMEBUFFER,
|
||||
// GN_FAILED_CREATE_RENDERPASS,
|
||||
// GN_FAILED_CREATE_INSTANCE,
|
||||
// GN_FAILED_TO_ATTACH_WINDOW,
|
||||
// GN_FAILED_TO_CREATE_IMAGE
|
||||
} gnReturnCode;
|
||||
|
Reference in New Issue
Block a user