Edit

kc3-lang/SDL/test/testnativecocoa.m

Branch :

  • Show log

    Commit

  • Author : David Ludwig
    Date : 2014-12-03 10:55:23
    Hash : 70438be2
    Message : WinRT: fixed bug whereby SDL would override an app's default orientation WinRT apps can set a default, preferred orientation via a .appxmanifest file. SDL was overriding this on app startup, and making the app use all possible orientations (landscape and portrait). Thanks to Eric Wing for the heads up on this!

  • 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