some stuffs

This commit is contained in:
Gregory Wells
2025-06-14 12:14:18 -04:00
parent b0822f6f57
commit a91332f1e3
7 changed files with 54 additions and 39 deletions

View File

@@ -54,7 +54,7 @@ typedef struct gnFunctions_t {
#endif
void (*_gnDestroyWindowSurface)(gnWindowSurfaceHandle windowSurface);
struct gnSurfaceDetails_t (*_gnGetSurfaceDetails)(gnWindowSurfaceHandle windowSurface, struct gnPhysicalDevice_t device);
gnSurfaceDetails (*_gnGetSurfaceDetails)(gnWindowSurfaceHandle windowSurface, struct gnPhysicalDevice_t device);
} gnFunctions;
#include "core/presentation_queue/gryphn_presentation_queue.h"

View File

@@ -10,7 +10,7 @@ struct gnSurfaceFormat_t* gnGetSupportedSurfaceFormats(
struct gnPhysicalDevice_t device,
uint32_t* formatCount
) {
struct gnSurfaceDetails_t surfaceDetails = windowSurface->instance->functions->_gnGetSurfaceDetails(windowSurface, device);
gnSurfaceDetails surfaceDetails = windowSurface->instance->functions->_gnGetSurfaceDetails(windowSurface, device);
*formatCount = surfaceDetails.formatCount;
return surfaceDetails.formats;
}
@@ -54,16 +54,16 @@ struct gnSurfaceFormat_t gnGetPreferredSurfaceFormat(
}
uint32_t gnGetMinImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device) {
struct gnSurfaceDetails_t surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
gnSurfaceDetails surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
return surfaceDetails.minImageCount;
}
uint32_t gnGetMaxImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device) {
struct gnSurfaceDetails_t surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
gnSurfaceDetails surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
return surfaceDetails.maxImageCount;
}
uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device) {
struct gnSurfaceDetails_t surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
gnSurfaceDetails surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
uint32_t imageCount = surfaceDetails.minImageCount + 1;
if (surfaceDetails.maxImageCount > 0 && imageCount > surfaceDetails.maxImageCount) {
@@ -71,3 +71,5 @@ uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, struct gnPhysi
}
return imageCount;
}
gnSurfaceDetails gnGetSurfaceDetails(gnWindowSurfaceHandle surface, gnPhysicalDevice device) { return surface->instance->functions->_gnGetSurfaceDetails(surface, device); }

View File

@@ -9,12 +9,13 @@ typedef struct gnSurfaceFormat_t {
gnColorSpace colorSpace;
} gnSurfaceFormat;
typedef struct gnSurfaceDetails_t {
typedef struct gnSurfaceDetails {
uint32_t formatCount;
struct gnSurfaceFormat_t* formats;
uint32_t minImageCount, maxImageCount;
} gnSufaceDetails;
gnUInt2 minImageSize, maxImageSize, currentSize;
} gnSurfaceDetails;
#ifdef GN_REVEAL_IMPL
struct gnWindowSurface_t {
@@ -47,3 +48,6 @@ struct gnSurfaceFormat_t gnGetPreferredSurfaceFormat(
uint32_t gnGetMinImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device);
uint32_t gnGetMaxImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device);
uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device);
gnSurfaceDetails gnGetSurfaceDetails(gnWindowSurfaceHandle surface, gnPhysicalDevice device);