metal surface creation

This commit is contained in:
Greg Wells
2025-05-25 21:56:06 -04:00
parent 09a400f075
commit f026653800
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
#pragma once
#include "core/window_surface/gryphn_surface.h"
typedef struct gnPlatformWindowSurface_t{
} gnPlatformWindowSurface;

View File

@@ -0,0 +1,23 @@
#include "metal_surface.h"
#include "core/window_surface/gryphn_surface_create_functions.h"
#import <AppKit/AppKit.h>
#import <Cocoa/Cocoa.h>
#import <QuartzCore/CAMetalLayer.h>
#import <QuartzCore/QuartzCore.h>
#import <Metal/Metal.h>
gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo) {
NSWindow* window = (__bridge NSWindow*)createInfo.window;
NSView* view = [window contentView];
CAMetalLayer* layer = [CAMetalLayer layer];
[layer setContentsScale:[window backingScaleFactor]];
[layer setFramebufferOnly:YES];
[view setLayer:layer];
[view setWantsLayer:YES];
windowSurface->windowSurface = malloc(sizeof(gnPlatformWindowSurface));
return GN_SUCCESS;
}