From 02f963a4bab95b3a328b6a792c9a7e027ade0e26 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Mon, 13 Jan 2025 22:03:10 +0100 Subject: implement display --- src/main.mm | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'src/main.mm') diff --git a/src/main.mm b/src/main.mm index a526e66..5207e62 100644 --- a/src/main.mm +++ b/src/main.mm @@ -1,36 +1,48 @@ +#import "scene.hh" + #import -#import "view-controller.hh" +#import int main(int argc, char** argv) { NSApplication* app = [NSApplication sharedApplication]; [app setActivationPolicy:NSApplicationActivationPolicyRegular]; - NSMenuItem *quitItem = [[NSMenuItem alloc] init]; + NSMenuItem* quitItem = [[NSMenuItem alloc] init]; [quitItem setTitle:@"Quit NES"]; [quitItem setKeyEquivalent:@"q"]; [quitItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand]; [quitItem setTarget:app]; [quitItem setAction:@selector(terminate:)]; - NSMenu *menu = [[NSMenu alloc] init]; + NSMenu* menu = [[NSMenu alloc] init]; [menu addItem:quitItem]; - NSMenuItem *item = [[NSMenuItem alloc] init]; + NSMenuItem* item = [[NSMenuItem alloc] init]; [item setSubmenu:menu]; - NSMenu *mainMenu = [[NSMenu alloc] init]; + NSMenu* mainMenu = [[NSMenu alloc] init]; [mainMenu addItem:item]; [app setMainMenu:mainMenu]; - NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0., 0., 640., 480.) + Scene* scene = [[Scene alloc] init]; + CGSize minSize = [scene size]; + + + SKView* view = [[SKView alloc] init]; + [view setIgnoresSiblingOrder:YES]; + [view setShowsFPS:YES]; + [view presentScene:scene]; + + NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0., 0., minSize.width * 2, minSize.height * 2) styleMask:(NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowMiniaturizeButton | NSWindowStyleMaskResizable) backing:NSBackingStoreBuffered defer:false]; [window setTitle:@"NES"]; - [window setContentViewController:[[ViewController alloc] init]]; - [window setContentSize:NSMakeSize(640., 480.)]; + [window setContentAspectRatio:minSize]; + [window setContentMinSize:minSize]; + [window setContentView:view]; [window makeKeyAndOrderFront:nil]; [app activateIgnoringOtherApps:YES]; -- cgit v1.3.1