diff --git a/projects/core/src/output_device/gryphn_physical_device.h b/projects/core/src/output_device/gryphn_physical_device.h index d24512c..61edb2e 100644 --- a/projects/core/src/output_device/gryphn_physical_device.h +++ b/projects/core/src/output_device/gryphn_physical_device.h @@ -3,9 +3,13 @@ #include "utils/gryphn_string.h" #include "gryphn_handles.h" -typedef enum gnDeviceType { - GN_DEDICATED_DEVICE, GN_INTEGRATED_DEVICE, GN_EXTERNAL_DEVICE -} gnDeviceType; +typedef enum gnPhysicalDeviceType { + GN_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, + GN_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, + GN_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, + GN_PHYSICAL_DEVICE_TYPE_FAKED_GPU, + GN_PHYSICAL_DEVICE_TYPE_CPU, +} gnPhysicalDeviceType; typedef enum gnMultisampleCountFlags { GN_SAMPLE_BIT_1 = 1 << 0, // 0x01 @@ -18,8 +22,10 @@ typedef enum gnMultisampleCountFlags { } gnMultisampleCountFlags; typedef struct gnPhysicalDeviceProperties { - gnString name; - gnDeviceType deviceType; + uint32_t driverVersion; + uint32_t deviceID; + gnString deviceName; + gnPhysicalDeviceType deviceType; } gnPhysicalDeviceProperties; typedef struct gnPhysicalDeviceFeatures { diff --git a/projects/loader/src/gryphn_instance_functions.h b/projects/loader/src/gryphn_instance_functions.h index 7d0d9b0..84c5522 100644 --- a/projects/loader/src/gryphn_instance_functions.h +++ b/projects/loader/src/gryphn_instance_functions.h @@ -9,6 +9,7 @@ typedef struct gnInstanceCreateInfo gnInstanceCreateInfo; typedef struct gnSurfaceDetails gnSurfaceDetails; typedef struct gnOutputDeviceInfo gnOutputDeviceInfo; typedef enum gnSuitableField gnSuitableField; +typedef struct gnPhysicalDeviceProperties gnPhysicalDeviceProperties; #ifdef GN_PLATFORM_LINUX #ifdef GN_WINDOW_X11 @@ -25,6 +26,8 @@ typedef gnBool (*PFN_gnIsInstanceSuitable)(gnInstanceHandle, gnSuitableField, gr typedef gnReturnCode (*PFN_gnInstanceQueryDevices)(gnInstanceHandle, uint32_t*, gnPhysicalDeviceHandle*, gryphnInstanceFunctionLayers*); typedef void (*PFN_gnDestroyInstance)(gnInstanceHandle, gryphnInstanceFunctionLayers*, gnAllocators*); +typedef gnPhysicalDeviceProperties (*PFN_gnQueryPhysicalDeviceProperties)(gnInstance, gnPhysicalDeviceHandle); + typedef struct gnInstanceFunctions { gnBool (*_gnPhysicalDeviceCanPresentToSurface)(gnPhysicalDevice device, gnWindowSurfaceHandle windowSurface);