From 6aaedb813fa11ba0679c3051bc2eb28646b9506c Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 30 Aug 2025 16:53:58 -0700 Subject: Update to SDL3 --- src/contrib/SDL-3.2.20/test/testnativecocoa.m | 58 +++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/contrib/SDL-3.2.20/test/testnativecocoa.m (limited to 'src/contrib/SDL-3.2.20/test/testnativecocoa.m') diff --git a/src/contrib/SDL-3.2.20/test/testnativecocoa.m b/src/contrib/SDL-3.2.20/test/testnativecocoa.m new file mode 100644 index 0000000..e895072 --- /dev/null +++ b/src/contrib/SDL-3.2.20/test/testnativecocoa.m @@ -0,0 +1,58 @@ + +#include "testnative.h" + +#ifdef TEST_NATIVE_COCOA + +#include +#include + +#ifndef MAC_OS_X_VERSION_10_12 +static const unsigned int NSWindowStyleMaskTitled = NSTitledWindowMask; +static const unsigned int NSWindowStyleMaskMiniaturizable = NSMiniaturizableWindowMask; +static const unsigned int NSWindowStyleMaskClosable = NSClosableWindowMask; +#endif + +static void *CreateWindowCocoa(int w, int h); +static void DestroyWindowCocoa(void *window); + +NativeWindowFactory CocoaWindowFactory = { + "cocoa", + CreateWindowCocoa, + DestroyWindowCocoa +}; + +static void *CreateWindowCocoa(int w, int h) +{ + NSAutoreleasePool *pool; + NSWindow *nswindow; + NSRect rect; + unsigned int style; + + pool = [[NSAutoreleasePool alloc] init]; + + rect.origin.x = 0; + rect.origin.y = 0; + rect.size.width = w; + rect.size.height = h; + rect.origin.y = CGDisplayPixelsHigh(kCGDirectMainDisplay) - rect.origin.y - rect.size.height; + + style = (NSWindowStyleMaskTitled|NSWindowStyleMaskClosable|NSWindowStyleMaskMiniaturizable); + + nswindow = [[NSWindow alloc] initWithContentRect:rect styleMask:style backing:NSBackingStoreBuffered defer:FALSE]; + [nswindow makeKeyAndOrderFront:nil]; + + [pool release]; + + return nswindow; +} + +static void DestroyWindowCocoa(void *window) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSWindow *nswindow = (NSWindow *)window; + + [nswindow close]; + [pool release]; +} + +#endif -- cgit v1.2.3