device handles
This commit is contained in:
@@ -3,23 +3,26 @@
|
||||
#include "core/gryphn_platform_functions.h"
|
||||
#include "core/instance/init/gryphn_init.h"
|
||||
|
||||
gnReturnCode gnCreateOutputDevice(gnOutputDevice* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo) {
|
||||
gnReturnCode gnCreateOutputDevice(gnOutputDeviceHandle* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo) {
|
||||
*outputDevice = malloc(sizeof(struct gnOutputDevice_t));
|
||||
|
||||
if (instance->loadDeviceFunctions == gnFalse) {
|
||||
instance->deviceFunctions = malloc(sizeof(struct gnDeviceFunctions_t));
|
||||
gnLoadDeviceFunctions(instance->dynamicLib, instance->deviceFunctions);
|
||||
instance->loadDeviceFunctions = gnTrue;
|
||||
}
|
||||
|
||||
outputDevice->deviceFunctions = instance->deviceFunctions;
|
||||
(*outputDevice)->deviceFunctions = instance->deviceFunctions;
|
||||
|
||||
outputDevice->instance = instance;
|
||||
outputDevice->physicalDevice = deviceInfo.physicalDevice;
|
||||
outputDevice->deviceInfo = deviceInfo;
|
||||
return instance->functions->_gnCreateOutputDevoce(outputDevice, instance, deviceInfo);
|
||||
(*outputDevice)->instance = instance;
|
||||
(*outputDevice)->physicalDevice = deviceInfo.physicalDevice;
|
||||
(*outputDevice)->deviceInfo = deviceInfo;
|
||||
return instance->functions->_gnCreateOutputDevoce(*outputDevice, instance, deviceInfo);
|
||||
}
|
||||
void gnWaitForDevice(gnOutputDevice *device) {
|
||||
void gnWaitForDevice(gnOutputDeviceHandle device) {
|
||||
device->deviceFunctions->_gnWaitForDevice(device);
|
||||
}
|
||||
void gnDestroyOutputDevice(gnOutputDevice* device) {
|
||||
void gnDestroyOutputDevice(gnOutputDeviceHandle device) {
|
||||
device->instance->functions->_gnDestroyOutputDevice(device);
|
||||
free(device);
|
||||
}
|
||||
|
@@ -17,14 +17,18 @@ typedef struct gnOutputDeviceInfo_t {
|
||||
struct gnPhysicalDevice_t physicalDevice;
|
||||
} gnOutputDeviceInfo;
|
||||
|
||||
typedef struct gnOutputDevice_t {
|
||||
#ifdef GN_REVEAL_IMPL
|
||||
struct gnOutputDevice_t {
|
||||
struct gnPlatformOutputDevice_t* outputDevice;
|
||||
struct gnDeviceFunctions_t* deviceFunctions;
|
||||
struct gnOutputDeviceInfo_t deviceInfo;
|
||||
gnInstanceHandle instance;
|
||||
gnPhysicalDevice physicalDevice;
|
||||
} gnOutputDevice;
|
||||
};
|
||||
#endif
|
||||
typedef struct gnOutputDevice_t* gnOutputDeviceHandle;
|
||||
typedef gnOutputDeviceHandle gnOutputDevice;
|
||||
|
||||
gnReturnCode gnCreateOutputDevice(gnOutputDevice* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo);
|
||||
void gnWaitForDevice(gnOutputDevice* device);
|
||||
void gnDestroyOutputDevice(gnOutputDevice* device);
|
||||
gnReturnCode gnCreateOutputDevice(gnOutputDeviceHandle* outputDevice, gnInstanceHandle instance, struct gnOutputDeviceInfo_t deviceInfo);
|
||||
void gnWaitForDevice(gnOutputDeviceHandle device);
|
||||
void gnDestroyOutputDevice(gnOutputDeviceHandle device);
|
||||
|
Reference in New Issue
Block a user