get stuff working on macos

This commit is contained in:
Greg Wells
2025-06-24 22:32:55 -04:00
parent cc31fd7d5c
commit f791b01705
12 changed files with 84 additions and 138 deletions

View File

@@ -21,17 +21,17 @@ gnInstanceFunctions loadVulkanInstanceFunctions(loaderInfo info) {
._gnCreateX11WindowSurface = createX11WindowSurface,
#endif
#ifdef GN_WINDOW_WAYLAND
._gnCreateWaylandWindowSurface
._gnCreateWaylandWindowSurface,
#endif
#endif
#ifdef GN_PLATFORM_WIN32
._gnCreateWin32WindowSurface
._gnCreateWin32WindowSurface,
#endif
#ifdef GN_PLATFORM_MACOS
._gnCreateMacOSWindowSurface
._gnCreateMacOSWindowSurface = createMacOSWindowSurface,
#endif
._gnDestroyWindowSurface = destroyWindowSurface,

View File

@@ -42,6 +42,7 @@ gnReturnCode createUniformPool(gnUniformPool pool, gnDeviceHandle device) {
gnUniform* allocateUniforms(gnUniformPool pool, gnUniformAllocationInfo allocInfo) {
gnBool fixedAllocation = !pool->device->outputDevice->enabledOversizedDescriptorPools;
if (fixedAllocation) {
VkGryphnUniformPool newPool = {
.pool = VK_NULL_HANDLE,
@@ -61,8 +62,8 @@ gnUniform* allocateUniforms(gnUniformPool pool, gnUniformAllocationInfo allocInf
for (int i = 0; i < allocInfo.setCount; i++) {
for (int c = 0; c < allocInfo.sets[i].uniformBindingCount; c++) {
if (allocInfo.sets[i].uniformBindings[i].type == GN_UNIFORM_BUFFER_DESCRIPTOR) uniformBufferSize.descriptorCount++;
if (allocInfo.sets[i].uniformBindings[i].type == GN_IMAGE_DESCRIPTOR) imageSize.descriptorCount++;
if (allocInfo.sets[i].uniformBindings[c].type == GN_UNIFORM_BUFFER_DESCRIPTOR) uniformBufferSize.descriptorCount++;
if (allocInfo.sets[i].uniformBindings[c].type == GN_IMAGE_DESCRIPTOR) imageSize.descriptorCount++;
}
}

View File

@@ -14,6 +14,9 @@ VkColorSpaceKHR vkGryphnColorSpaceToVulkanColorSpace(gnColorSpace colorSpace);
gnReturnCode createX11WindowSurface(gnWindowSurfaceHandle windowSurface, gnInstanceHandle instance, gnX11WindowSurfaceInfo createInfo);
#endif
#endif
#ifdef GN_PLATFORM_MACOS
gnReturnCode createMacOSWindowSurface(gnWindowSurfaceHandle windowSurface, gnInstanceHandle instance, gnMacOSWindowSurfaceInfo createInfo);
#endif
gnSurfaceDetails getSurfaceDetails(gnWindowSurfaceHandle windowSurface, gnPhysicalDevice device);
void destroyWindowSurface(gnWindowSurface windowSurface);

View File

@@ -1,6 +1,6 @@
#ifdef GN_PLATFORM_MACOS
#include "vulkan_surface.h"
#include "core/window_surface/gryphn_surface_create_functions.h"
#include "window_surface/gryphn_surface_create_functions.h"
#include "../instance/vulkan_instance.h"
#include <AppKit/AppKit.h>
#include <vulkan/vulkan_metal.h>
@@ -11,7 +11,7 @@
#include "vulkan/vulkan_metal.h"
gnReturnCode gnCreateMacOSWindowSurfaceFn(gnWindowSurfaceHandle windowSurface, gnInstanceHandle instance, struct gnMacOSWindowSurfaceInfo_t createInfo) {
gnReturnCode createMacOSWindowSurface(gnWindowSurfaceHandle windowSurface, gnInstanceHandle instance, gnMacOSWindowSurfaceInfo createInfo) {
windowSurface->windowSurface = malloc(sizeof(gnPlatformWindowSurface));
VkMetalSurfaceCreateInfoEXT surfaceCreateInfo = {};
surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;