fix surface creation

This commit is contained in:
Gregory Wells
2025-08-03 10:19:42 -04:00
parent 74dc644cb6
commit 8a0ed5e7be
5 changed files with 11 additions and 7 deletions

Submodule depends/Dispatcher deleted from c08c8f94ef

View File

@@ -1,5 +1,6 @@
#pragma once #pragma once
#include "window_surface/gryphn_surface.h" #include "window_surface/gryphn_surface.h"
#include "window_surface/gryphn_surface_create_functions.h"
#import <QuartzCore/QuartzCore.h> #import <QuartzCore/QuartzCore.h>
typedef struct gnPlatformWindowSurface_t { typedef struct gnPlatformWindowSurface_t {

View File

@@ -1,5 +1,6 @@
#pragma once #pragma once
#include <window_surface/gryphn_surface.h> #include <window_surface/gryphn_surface.h>
#include <window_surface/gryphn_surface_create_functions.h>
#include <vulkan/vulkan.h> #include <vulkan/vulkan.h>
typedef struct gnPlatformWindowSurface_t { typedef struct gnPlatformWindowSurface_t {

View File

@@ -1,4 +1,5 @@
#include "gryphn_surface.h" #include "gryphn_surface.h"
#include "loader/src/gryphn_instance_functions.h"
void gnDestroyWindowSurface(gnWindowSurfaceHandle windowSurface) { void gnDestroyWindowSurface(gnWindowSurfaceHandle windowSurface) {
windowSurface->instance->callingLayer->instanceFunctions._gnDestroyWindowSurface(windowSurface); windowSurface->instance->callingLayer->instanceFunctions._gnDestroyWindowSurface(windowSurface);
@@ -9,7 +10,7 @@ gnSurfaceFormat* gnGetSupportedSurfaceFormats(
gnPhysicalDevice device, gnPhysicalDevice device,
uint32_t* formatCount uint32_t* formatCount
) { ) {
gnSurfaceDetails surfaceDetails = windowSurface->instance->callingLayer->instanceFunctions._gnGetSurfaceDetails(windowSurface, device); gnSurfaceDetails surfaceDetails = gnGetSurfaceDetails(windowSurface, device);
*formatCount = surfaceDetails.formatCount; *formatCount = surfaceDetails.formatCount;
return surfaceDetails.formats; return surfaceDetails.formats;
} }
@@ -53,17 +54,16 @@ gnSurfaceFormat gnGetPreferredSurfaceFormat(
} }
uint32_t gnGetMinImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) { uint32_t gnGetMinImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) {
gnSurfaceDetails surfaceDetails = surface->instance->callingLayer->instanceFunctions._gnGetSurfaceDetails(surface, device); gnSurfaceDetails surfaceDetails = gnGetSurfaceDetails(surface, device);
return surfaceDetails.minImageCount; return surfaceDetails.minImageCount;
} }
uint32_t gnGetMaxImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) { uint32_t gnGetMaxImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) {
gnSurfaceDetails surfaceDetails = surface->instance->callingLayer->instanceFunctions._gnGetSurfaceDetails(surface, device); gnSurfaceDetails surfaceDetails = gnGetSurfaceDetails(surface, device);
return surfaceDetails.maxImageCount; return surfaceDetails.maxImageCount;
} }
uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) { uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) {
gnSurfaceDetails surfaceDetails = surface->instance->callingLayer->instanceFunctions._gnGetSurfaceDetails(surface, device); gnSurfaceDetails surfaceDetails = gnGetSurfaceDetails(surface, device);
uint32_t imageCount = surfaceDetails.minImageCount + 1; uint32_t imageCount = surfaceDetails.minImageCount + 1;
if (surfaceDetails.maxImageCount > 0 && imageCount > surfaceDetails.maxImageCount) { if (surfaceDetails.maxImageCount > 0 && imageCount > surfaceDetails.maxImageCount) {
imageCount = surfaceDetails.maxImageCount; imageCount = surfaceDetails.maxImageCount;
@@ -71,4 +71,6 @@ uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevi
return imageCount; return imageCount;
} }
gnSurfaceDetails gnGetSurfaceDetails(gnWindowSurfaceHandle surface, gnPhysicalDevice device) { return surface->instance->callingLayer->instanceFunctions._gnGetSurfaceDetails(surface, device); } gnSurfaceDetails gnGetSurfaceDetails(gnWindowSurfaceHandle surface, gnPhysicalDevice device) {
return surface->instance->callingLayer->instanceFunctions._gnGetSurfaceDetails(surface, device);
}

View File

@@ -1,6 +1,7 @@
#include "gryphn_surface_create_functions.h" #include "gryphn_surface_create_functions.h"
#include "gryphn_surface.h" #include "gryphn_surface.h"
#include "instance/gryphn_instance.h" #include "instance/gryphn_instance.h"
#include "loader/src/gryphn_instance_functions.h"
#ifdef GN_PLATFORM_LINUX #ifdef GN_PLATFORM_LINUX
#ifdef GN_WINDOW_X11 #ifdef GN_WINDOW_X11