ref: 8eb4e29b1041507e5824ac719be6a8a4c0f72f6c
dir: /external/SDL2/test/testnativecocoa.m/
#include "testnative.h" #ifdef TEST_NATIVE_COCOA #include <Cocoa/Cocoa.h> 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 = (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask); 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