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