device present to surface checks
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
#include "gryphn_physical_output_device.h"
|
||||
#include "core/gryphn_platform_functions.h"
|
||||
#include "core/window_surface/gryphn_surface.h"
|
||||
#include "stdio.h"
|
||||
|
||||
gnPhysicalDevice* gnGetPhyscialDevices(gnInstance* instance, uint32_t* count) {
|
||||
gnPhysicalDevice* devices = instance->functions->_gnGetPhysicalDevices(instance, count);
|
||||
@@ -8,3 +10,18 @@ gnPhysicalDevice* gnGetPhyscialDevices(gnInstance* instance, uint32_t* count) {
|
||||
}
|
||||
return devices;
|
||||
}
|
||||
|
||||
gnBool gnQueueCanPresentToSurface(const struct gnPhysicalDevice_t device, uint32_t queueIndex, const struct gnWindowSurface_t windowSurface) {
|
||||
if (queueIndex >= device.queueProperties.queueCount) {
|
||||
device.instance->debugger->info.callback(
|
||||
GN_MESSAGE_ERROR,
|
||||
GN_DEBUG_MESSAGE_VALIDATION,
|
||||
(gnMessageData){
|
||||
.message = gnCreateString("gnQueueCanPresentToSurface queue index passed in is large then queueProperties.queueCount")
|
||||
},
|
||||
NULL
|
||||
);
|
||||
return gnFalse;
|
||||
}
|
||||
return device.instance->functions->_gnQueueCanPresentToSurface(device, queueIndex, windowSurface);
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#include "core/instance/gryphn_instance.h"
|
||||
|
||||
struct gnPlatformPhysicalDevice_t;
|
||||
struct gnWindowSurface_t;
|
||||
|
||||
typedef struct gnPhysicalDeviceProperties_t {
|
||||
gnString name;
|
||||
@@ -38,3 +39,4 @@ typedef struct gnPhysicalDevice_t {
|
||||
} gnPhysicalDevice;
|
||||
|
||||
gnPhysicalDevice* gnGetPhyscialDevices(gnInstance* instance, uint32_t* count);
|
||||
gnBool gnQueueCanPresentToSurface(const struct gnPhysicalDevice_t device, uint32_t queueIndex, const struct gnWindowSurface_t windowSurface);
|
||||
|
Reference in New Issue
Block a user