make some gryphn stuff happen (DOES NOT COMPILE)

This commit is contained in:
Gregory Wells
2025-06-24 13:04:33 -04:00
parent 78202825db
commit 1915166c82
21 changed files with 150 additions and 294 deletions

View File

@@ -1,24 +1,23 @@
#include "gryphn_surface.h"
#include "gryphn_platform_functions.h"
void gnDestroyWindowSurface(gnWindowSurfaceHandle windowSurface) {
windowSurface->instance->functions->_gnDestroyWindowSurface(windowSurface);
windowSurface->instance->instanceFunctions._gnDestroyWindowSurface(windowSurface);
}
struct gnSurfaceFormat_t* gnGetSupportedSurfaceFormats(
gnSurfaceFormat* gnGetSupportedSurfaceFormats(
gnWindowSurfaceHandle windowSurface,
struct gnPhysicalDevice_t device,
gnPhysicalDevice device,
uint32_t* formatCount
) {
gnSurfaceDetails surfaceDetails = windowSurface->instance->functions->_gnGetSurfaceDetails(windowSurface, device);
gnSurfaceDetails surfaceDetails = windowSurface->instance->instanceFunctions._gnGetSurfaceDetails(windowSurface, device);
*formatCount = surfaceDetails.formatCount;
return surfaceDetails.formats;
}
gnBool gnIsSurfaceFormatSupported(
gnWindowSurfaceHandle windowSurface,
struct gnPhysicalDevice_t device,
struct gnSurfaceFormat_t format
gnPhysicalDevice device,
gnSurfaceFormat format
) {
uint32_t formatCount = 0;
gnSurfaceFormat* formats = gnGetSupportedSurfaceFormats(windowSurface, device, &formatCount);
@@ -30,10 +29,10 @@ gnBool gnIsSurfaceFormatSupported(
return gnFalse;
}
struct gnSurfaceFormat_t gnGetPreferredSurfaceFormat(
gnSurfaceFormat gnGetPreferredSurfaceFormat(
gnWindowSurfaceHandle windowSurface,
struct gnPhysicalDevice_t device,
struct gnSurfaceFormat_t format
gnPhysicalDevice device,
gnSurfaceFormat format
) {
uint32_t formatCount = 0;
gnSurfaceFormat* formats = gnGetSupportedSurfaceFormats(windowSurface, device, &formatCount);
@@ -53,17 +52,17 @@ struct gnSurfaceFormat_t gnGetPreferredSurfaceFormat(
return formats[0];
}
uint32_t gnGetMinImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device) {
gnSurfaceDetails surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
uint32_t gnGetMinImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) {
gnSurfaceDetails surfaceDetails = surface->instance->instanceFunctions._gnGetSurfaceDetails(surface, device);
return surfaceDetails.minImageCount;
}
uint32_t gnGetMaxImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device) {
gnSurfaceDetails surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
uint32_t gnGetMaxImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) {
gnSurfaceDetails surfaceDetails = surface->instance->instanceFunctions._gnGetSurfaceDetails(surface, device);
return surfaceDetails.maxImageCount;
}
uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, struct gnPhysicalDevice_t device) {
gnSurfaceDetails surfaceDetails = surface->instance->functions->_gnGetSurfaceDetails(surface, device);
uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device) {
gnSurfaceDetails surfaceDetails = surface->instance->instanceFunctions._gnGetSurfaceDetails(surface, device);
uint32_t imageCount = surfaceDetails.minImageCount + 1;
if (surfaceDetails.maxImageCount > 0 && imageCount > surfaceDetails.maxImageCount) {
@@ -72,4 +71,4 @@ uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, struct gnPhysi
return imageCount;
}
gnSurfaceDetails gnGetSurfaceDetails(gnWindowSurfaceHandle surface, gnPhysicalDevice device) { return surface->instance->functions->_gnGetSurfaceDetails(surface, device); }
gnSurfaceDetails gnGetSurfaceDetails(gnWindowSurfaceHandle surface, gnPhysicalDevice device) { return surface->instance->instanceFunctions._gnGetSurfaceDetails(surface, device); }

View File

@@ -3,15 +3,16 @@
#include <utils/gryphn_image_format.h>
#include <instance/gryphn_instance.h>
#include "output_device/gryphn_physical_output_device.h"
#include "utils/math/gryphn_vec2.h"
typedef struct gnSurfaceFormat_t {
typedef struct gnSurfaceFormat {
gnImageFormat format;
gnColorSpace colorSpace;
} gnSurfaceFormat;
typedef struct gnSurfaceDetails {
uint32_t formatCount;
struct gnSurfaceFormat_t* formats;
gnSurfaceFormat* formats;
uint32_t minImageCount, maxImageCount;
gnUInt2 minImageSize, maxImageSize, currentSize;
@@ -27,27 +28,27 @@ struct gnWindowSurface_t {
void gnDestroyWindowSurface(gnWindowSurfaceHandle windowSurface);
struct gnSurfaceFormat_t* gnGetSupportedSurfaceFormats(
gnSurfaceFormat* gnGetSupportedSurfaceFormats(
gnWindowSurfaceHandle windowSurface,
struct gnPhysicalDevice_t device,
gnPhysicalDevice device,
uint32_t* formatCount
);
gnBool gnIsSurfaceFormatSupported(
gnWindowSurfaceHandle windowSurface,
struct gnPhysicalDevice_t device,
struct gnSurfaceFormat_t format
gnPhysicalDevice device,
gnSurfaceFormat format
);
// this function will give you you're preferred surface format
// unless its not supported then it will give you the first supported surface format
// at some point this function will attempt to give you the most simmilar surface format
struct gnSurfaceFormat_t gnGetPreferredSurfaceFormat(
gnSurfaceFormat gnGetPreferredSurfaceFormat(
gnWindowSurfaceHandle windowSurface,
struct gnPhysicalDevice_t device,
struct gnSurfaceFormat_t format
gnPhysicalDevice device,
gnSurfaceFormat format
);
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);
uint32_t gnGetMinImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device);
uint32_t gnGetMaxImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device);
uint32_t gnGetPreferredImageCount(gnWindowSurfaceHandle surface, gnPhysicalDevice device);
gnSurfaceDetails gnGetSurfaceDetails(gnWindowSurfaceHandle surface, gnPhysicalDevice device);

View File

@@ -1,19 +1,19 @@
#include "gryphn_surface_create_functions.h"
#include "gryphn_surface.h"
#include "instance/gryphn_instance.h"
#include "gryphn_platform_functions.h"
#ifdef GN_PLATFORM_LINUX
#ifdef GN_WINDOW_X11
gnReturnCode gnCreateX11WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, gnX11WindowSurfaceInfo createInfo) {
*windowSurface = malloc(sizeof(struct gnWindowSurface_t));
(*windowSurface)->instance = instance;
return instance->functions->_gnCreateX11WindowSurface(*windowSurface, instance, createInfo);
return instance->instanceFunctions._gnCreateX11WindowSurface(*windowSurface, instance, createInfo);
}
#endif
#ifdef GN_WINDOW_WAYLAND
gnReturnCode gnCreateWaylandWindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnWaylandWindowSurfaceInfo_t createInfo) {
*windowSurface = malloc(sizeof(struct gnWindowSurface_t));
return instance->functions->_gnCreateWaylandWindowSurface(windowSurface, instance, createInfo);
return instance->instanceFunctions._gnCreateWaylandWindowSurface(windowSurface, instance, createInfo);
}
#endif
#endif
@@ -22,7 +22,7 @@
#ifdef GN_PLATFORM_WIN32
gnReturnCode gnCreateWin32WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnWin32WindowSurfaceInfo_t createInfo) {
*windowSurface = malloc(sizeof(struct gnWindowSurface_t));
return instance->functions->_gnCreateWin32WindowSurface(windowSurface, instance, createInfo);
return instance->instanceFunctions._gnCreateWin32WindowSurface(windowSurface, instance, createInfo);
}
#endif
@@ -30,6 +30,6 @@
gnReturnCode gnCreateMacOSWindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo) {
*windowSurface = malloc(sizeof(struct gnWindowSurface_t));
(*windowSurface)->instance = instance;
return instance->functions->_gnCreateMacOSWindowSurface(*windowSurface, instance, createInfo);
return instance->instanceFunctions._gnCreateMacOSWindowSurface(*windowSurface, instance, createInfo);
}
#endif

View File

@@ -17,29 +17,29 @@
gnReturnCode gnCreateX11WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, gnX11WindowSurfaceInfo createInfo);
#endif
#ifdef GN_WINDOW_WAYLAND
typedef struct gnWaylandWindowSurfaceInfo_t {
typedef struct gnWaylandWindowSurfaceInfo {
wl_display* display;
wl_surface* surface;
} gnWaylandWindowSurfaceInfo;
gnReturnCode gnCreateWaylandWindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnWaylandWindowSurfaceInfo_t createInfo);
gnReturnCode gnCreateWaylandWindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnWaylandWindowSurfaceInfo createInfo);
#endif
#endif
#ifdef GN_PLATFORM_WIN32
typedef struct gnWin32WindowSurfaceInfo_t {
typedef struct gnWin32WindowSurfaceInfo {
HWND* window;
HINSTANCE* instance;
} gnWin32WindowSurfaceInfo;
gnReturnCode gnCreateWin32WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnWin32WindowSurfaceInfo_t createInfo);
gnReturnCode gnCreateWin32WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnWin32WindowSurfaceInfo createInfo);
#endif
#ifdef GN_PLATFORM_MACOS
typedef struct gnMacOSWindowSurfaceInfo_t {
typedef struct gnMacOSWindowSurfaceInfo {
CAMetalLayer* layer;
} gnMacOSWindowSurfaceInfo;
gnReturnCode gnCreateMacOSWindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo);
gnReturnCode gnCreateMacOSWindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo createInfo);
#endif