destroy device lifecycle
This commit is contained in:
@@ -9,3 +9,9 @@ gnReturnCode gnCreateDevice(gnInstance instance, gnDeviceCreateInfo* createInfo,
|
||||
*device = newDevice;
|
||||
return instance->dispatchTable.createDevice(instance, createInfo, newDevice);
|
||||
}
|
||||
|
||||
gnReturnCode gnDestroyDevice(gnDevice* device) {
|
||||
gnReturnCode returnCode = (*device)->dispatchTable.destroyDevice(*device);
|
||||
*device = NULL;
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
@@ -13,3 +13,4 @@ typedef struct gnDevice_t {
|
||||
} gnDevice_t;
|
||||
|
||||
gnReturnCode gnCreateDevice(gnInstance instance, gnDeviceCreateInfo* createInfo, gnDevice* device);
|
||||
gnReturnCode gnDestroyDevice(gnDevice* device);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#pragma once
|
||||
#include "gryphn_handle.h"
|
||||
|
||||
typedef gnReturnCode (*PFN_gnDestroyDevice)(gnDevice);
|
||||
|
||||
typedef struct gnDeviceDispatchTable {
|
||||
|
||||
PFN_gnDestroyDevice destroyDevice;
|
||||
} gnDeviceDispatchTable;
|
||||
|
||||
@@ -57,6 +57,12 @@ gnReturnCode metalGetPhysicalDeviceProperties(gnPhysicalDevice device, gnPhysica
|
||||
}
|
||||
|
||||
gnReturnCode metalCreateDevice(gnInstance instance, gnDeviceCreateInfo* createInfo, gnDevice device) {
|
||||
device->dispatchTable.destroyDevice = metalDestroyDevice;
|
||||
device->internalData = createInfo->physicalDevice->internalData;
|
||||
return GN_SUCCESS;
|
||||
}
|
||||
|
||||
gnReturnCode metalDestroyDevice(gnDevice device) {
|
||||
// [device->internalData release];
|
||||
return GN_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -8,3 +8,4 @@
|
||||
gnReturnCode metalEnumeratePhysicalDevices(gnInstance instance, uint32_t* deviceCount, gnPhysicalDevice* devices);
|
||||
gnReturnCode metalGetPhysicalDeviceProperties(gnPhysicalDevice device, gnPhysicalDeviceProperties* properties);
|
||||
gnReturnCode metalCreateDevice(gnInstance instance, gnDeviceCreateInfo* createInfo, gnDevice device);
|
||||
gnReturnCode metalDestroyDevice(gnDevice device);
|
||||
|
||||
Reference in New Issue
Block a user