diff test/testnativecocoa.m @ 3057:089a77aebb7d

Added test program for SDL_CreateWindowFrom() Make sure OpenGL library is loaded before working with OpenGL windows, even those created with SDL_CreateWindowFrom()
author Sam Lantinga <slouken@libsdl.org>
date Mon, 09 Feb 2009 05:32:12 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/testnativecocoa.m	Mon Feb 09 05:32:12 2009 +0000
@@ -0,0 +1,51 @@
+
+#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