test/testnativecocoa.m
author David Ludwig <dludwig@pobox.com>
Wed, 25 Dec 2013 21:39:48 -0500
changeset 8563 c0e68f3b6bbb
parent 3057 089a77aebb7d
permissions -rw-r--r--
WinRT: compiled the d3d11 renderer's shaders into SDL itself

Previously, the shaders would get compiled separately, the output of which would need to be packaged into the app. This change should make SDL's dll be the only binary needed to include SDL in a WinRT app.
     1 
     2 #include "testnative.h"
     3 
     4 #ifdef TEST_NATIVE_COCOA
     5 
     6 #include <Cocoa/Cocoa.h>
     7 
     8 static void *CreateWindowCocoa(int w, int h);
     9 static void DestroyWindowCocoa(void *window);
    10 
    11 NativeWindowFactory CocoaWindowFactory = {
    12     "cocoa",
    13     CreateWindowCocoa,
    14     DestroyWindowCocoa
    15 };
    16 
    17 static void *CreateWindowCocoa(int w, int h)
    18 {
    19     NSAutoreleasePool *pool;
    20     NSWindow *nswindow;
    21     NSRect rect;
    22     unsigned int style;
    23 
    24     pool = [[NSAutoreleasePool alloc] init];
    25 
    26     rect.origin.x = 0;
    27     rect.origin.y = 0;
    28     rect.size.width = w;
    29     rect.size.height = h;
    30     rect.origin.y = CGDisplayPixelsHigh(kCGDirectMainDisplay) - rect.origin.y - rect.size.height;
    31 
    32     style = (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask);
    33 
    34     nswindow = [[NSWindow alloc] initWithContentRect:rect styleMask:style backing:NSBackingStoreBuffered defer:FALSE];
    35     [nswindow makeKeyAndOrderFront:nil];
    36 
    37     [pool release];
    38 
    39     return nswindow;
    40 }
    41 
    42 static void DestroyWindowCocoa(void *window)
    43 {
    44     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    45     NSWindow *nswindow = (NSWindow *)window;
    46 
    47     [nswindow close];
    48     [pool release];
    49 }
    50 
    51 #endif