From d1bed5ec30272e9361180441e8ac3c11db7e5b40 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Wed, 28 Jun 2017 22:53:51 -0400 Subject: [PATCH] setup a file for a mac platform layer --- custom_4coder.so | Bin 0 -> 243188 bytes mac_4ed.c | 89 ++++++++++++++ mac_4ed.m | 311 +++++++++++++++++++++++++++++++++++++++++++++++ meta/build.cpp | 29 +++-- 4 files changed, 419 insertions(+), 10 deletions(-) create mode 100755 custom_4coder.so create mode 100644 mac_4ed.c create mode 100644 mac_4ed.m diff --git a/custom_4coder.so b/custom_4coder.so new file mode 100755 index 0000000000000000000000000000000000000000..da33a84afa20514a2cb6939fd82d740aac520180 GIT binary patch literal 243188 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

6Y8Dm^xe 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%0A-B|*!@;joPBqCND%&1-zkZ%$?H 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 +internal void* +osx_allocate(umem size){ + void *result = malloc(size); + return(result); +} + +internal void +osx_resize(int width, int height){ + osx.width = width; + osx.height = height; + // TODO +} + +internal void +osx_character_input(u32 code, OSX_Keyboard_Modifiers modifier_flags){ + // TODO +} + +internal void +osx_mouse(i32 mx, i32 my, u32 type){ + // TODO +} + +internal void +osx_mouse_wheel(float dx, float dy){ + // TODO +} + +internal void +osx_step(){ + // TODO +} + +internal void +osx_init(){ + // TODO +} + +// BOTTOM + diff --git a/mac_4ed.m b/mac_4ed.m new file mode 100644 index 00000000..c909d7f1 --- /dev/null +++ b/mac_4ed.m @@ -0,0 +1,311 @@ +/* + * Mr. 4th Dimention - Allen Webster + * + * 06.28.2017 + * + * Mac Objective C layer for 4coder + * + */ + +// TOP + +#include "mac_4ed.c" + +#undef internal +#undef global + +#import +#import +#import +#import +#import + +static void +osx_post_to_clipboard(char *str){ + NSPasteboard *board = [NSPasteboard generalPasteboard]; + NSString *utf8_type = @"public.utf8-plain-text"; + NSArray *typesArray = [NSArray arrayWithObjects: utf8_type, nil]; + [board declareTypes:typesArray owner:nil]; + NSString *paste_string = [NSString stringWithUTF8String:str]; + [board setString:paste_string forType:utf8_type]; + osx.just_posted_to_clipboard = true; +} + +// +// Entry point, OpenGL window setup. +// + +@interface AppDelegate : NSObject +@end + +@interface My4coderView : NSOpenGLView{ + @public + CVDisplayLinkRef displayLink; +} + +- (CVReturn)getFrameForTime:(const CVTimeStamp*)time; +@end + +#define DISPLINK_SIG(n) CVReturn n(CVDisplayLinkRef link, const CVTimeStamp *now, const CVTimeStamp *output, CVOptionFlags flags_in, CVOptionFlags *flags_out, void *context) +static DISPLINK_SIG(osx_display_link); + +@implementation My4coderView +- (void)keyDown:(NSEvent *)event{ + NSString *real = [event charactersIgnoringModifiers]; + NSString *with_mods = [event characters]; + b32 is_dead_key = false; + if (real && !with_mods){ + is_dead_key = true; + } + + OSX_Keyboard_Modifiers mods = {0}; + NSEventModifierFlags flags = [NSEvent modifierFlags]; + mods.shift = ((flags & NSEventModifierFlagShift) != 0); + mods.command = ((flags & NSEventModifierFlagCommand) != 0); + mods.control = ((flags & NSEventModifierFlagControl) != 0); + mods.option = ((flags & NSEventModifierFlagOption) != 0); + + u32 length = real.length; + for (u32 i = 0; i < length; ++i){ + unichar c = [real characterAtIndex:i]; + osx_character_input(c, mods); + } +} + +- (void)mouseDown:(NSEvent*)event{ + NSPoint m = [event locationInWindow]; + osx_mouse(m.x, m.y, MouseType_Press); +} + +- (void)mouseDragged:(NSEvent*)event{ + NSPoint m = [event locationInWindow]; + osx_mouse(m.x, m.y, MouseType_Move); +} + +- (void)mouseMoved:(NSEvent*)event{ + NSPoint m = [event locationInWindow]; + osx_mouse(m.x, m.y, MouseType_Move); +} + +- (void)mouseUp:(NSEvent*)event{ + NSPoint m = [event locationInWindow]; + osx_mouse(m.x, m.y, MouseType_Release); +} + +- (void)scrollWheel:(NSEvent*)event{ + float dx = event.scrollingDeltaX; + float dy = event.scrollingDeltaY; + osx_mouse_wheel(dx, dy); +} + +- (CVReturn)getFrameForTime:(const CVTimeStamp*)time{ + @autoreleasepool + { + if (osx.running){ + NSPasteboard *board = [NSPasteboard generalPasteboard]; + if (board.changeCount != osx.prev_clipboard_change_count){ + if (!osx.just_posted_to_clipboard){ + NSString *utf8_type = @"public.utf8-plain-text"; + NSArray *array = [NSArray arrayWithObjects: utf8_type, nil]; + NSString *has_string = [board availableTypeFromArray:array]; + if (has_string != nil){ + NSData *data = [board dataForType: utf8_type]; + if (data != nil){ + u32 copy_length = data.length; + if (copy_length > 0){ + // TODO(allen): Grow clipboard memory if needed. + if (copy_length+1 < osx.clipboard_max){ + osx.clipboard_size = copy_length; + [data getBytes: osx.clipboard_data length: copy_length]; + ((char*)osx.clipboard_data)[copy_length] = 0; + osx.has_clipboard_item = true; + } + } + } + } + } + else{ + osx.just_posted_to_clipboard = false; + } + osx.prev_clipboard_change_count = board.changeCount; + } + + CGLLockContext([[self openGLContext] CGLContextObj]); + [[self openGLContext] makeCurrentContext]; + osx_step(); + [[self openGLContext] flushBuffer]; + CGLUnlockContext([[self openGLContext] CGLContextObj]); + } + } + return kCVReturnSuccess; +} + +- (void)reshape +{ + [super reshape]; + + NSRect rect = [self bounds]; + osx_resize(rect.size.width, rect.size.height); +} + +- (void)init_gl +{ + if(osx.running) + { + return; + } + + [self setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + + NSOpenGLPixelFormatAttribute attrs[] = { + NSOpenGLPFAOpenGLProfile, + //NSOpenGLProfileVersion3_2Core, + NSOpenGLProfileVersionLegacy, + NSOpenGLPFAColorSize, + 24, + NSOpenGLPFAAlphaSize, + 8, + NSOpenGLPFAAccelerated, + NSOpenGLPFADoubleBuffer, + 0 + }; + + NSOpenGLPixelFormat* format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs]; + if(format == nil) + { + fprintf(stderr, "Error creating OpenGLPixelFormat\n"); + exit(1); + } + + NSOpenGLContext* context = [[NSOpenGLContext alloc] initWithFormat:format shareContext:nil]; + + [self setPixelFormat:format]; + [self setOpenGLContext:context]; + + [context makeCurrentContext]; + + osx.running = true; +} + +- (id)init +{ + self = [super init]; + if(self == nil) + { + return nil; + } + + [self init_gl]; + return self; +} + +- (void)awakeFromNib +{ + [self init_gl]; +} + +- (void)prepareOpenGL +{ + [super prepareOpenGL]; + + [[self openGLContext] makeCurrentContext]; + + GLint swapInt = 1; + [[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; + + CVReturn cvreturn = CVDisplayLinkCreateWithActiveCGDisplays(&displayLink); + cvreturn = CVDisplayLinkSetOutputCallback(displayLink, &osx_display_link, (__bridge void*)(self)); + + CGLContextObj cglContext = [[self openGLContext] CGLContextObj]; + CGLPixelFormatObj cglPixelFormat = [[self pixelFormat] CGLPixelFormatObj]; + cvreturn = CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(displayLink, cglContext, cglPixelFormat); + + CVDisplayLinkStart(displayLink); +} + +- (void)dealloc +{ + [super dealloc]; + + CVDisplayLinkStop(displayLink); + CVDisplayLinkRelease(displayLink); +} + +- (BOOL)acceptsFirstResponder +{ + return YES; +} + +- (BOOL)becomeFirstResponder +{ + return YES; +} + +- (BOOL)resignFirstResponder +{ + return YES; +} +@end + +static +DISPLINK_SIG(osx_display_link){ + My4coderView* view = (__bridge My4coderView*)context; + CVReturn result = [view getFrameForTime:output]; + return result; +} + +@implementation AppDelegate +- (void)applicationDidFinishLaunching:(id)sender +{ +} +- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication*)sender +{ + return YES; +} +- (void)applicationWillTerminate:(NSApplication*)sender +{ +} +@end + +int +main(int argc, char **argv){ + memset(&osx, 0, sizeof(osx)); + + umem clipboard_size = MB(4); + osx.clipboard_data = osx_allocate(clipboard_size); + osx.clipboard_max = clipboard_size; + + osx_init(); + + @autoreleasepool{ + NSApplication *app = [NSApplication sharedApplication]; + [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; + + [app setDelegate:[[AppDelegate alloc] init]]; + NSRect screenRect = [[NSScreen mainScreen] frame]; + float w = 800.f; + float h = 600.f; + NSRect frame = NSMakeRect((screenRect.size.width - w) * 0.5, (screenRect.size.height - h) * 0.5, w, h); + + u32 flags = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask; + NSWindow* window = [[NSWindow alloc] initWithContentRect:frame styleMask:flags backing:NSBackingStoreBuffered defer:NO]; + + [window setAcceptsMouseMovedEvents:YES]; + + My4coderView* view = [[My4coderView alloc] init]; + [view setFrame:[[window contentView] bounds]]; + [view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + + [[window contentView] addSubview:view]; + [window setMinSize:NSMakeSize(100, 100)]; + [window setTitle:@WINDOW_TITLE]; + [window makeKeyAndOrderFront:nil]; + + [NSApp run]; + } + + return(0); +} + +// BOTTOM + diff --git a/meta/build.cpp b/meta/build.cpp index 2b405803..505763d4 100644 --- a/meta/build.cpp +++ b/meta/build.cpp @@ -245,12 +245,24 @@ build_cl(u32 flags, char *code_path, char *code_file, char *out_path, char *out_ popdir(temp); } - -#define GCC_OPTS \ -"-Wno-write-strings -Wno-comment -Wno-switch " \ -"-Wno-null-dereference " \ -"-D_GNU_SOURCE -fPIC " \ +#if defined(IS_LINUX) +# define GCC_OPTS \ +"-Wno-write-strings " \ +"-D_GNU_SOURCE -fPIC " \ "-fno-threadsafe-statics -pthread" +#define GCC_LIBS \ +"-L/usr/local/lib -lX11 -lpthread -lm -lrt " \ +"-lGL -ldl -lXfixes -lfreetype -lfontconfig" +#elif defined(IS_MAC) +# define GCC_OPTS \ +"-Wno-write-strings -Wno-deprecated-declarations " \ +"-Wno-comment -Wno-switch -Wno-null-dereference " +#define GCC_LIBS \ +"-framework Cocoa -framework QuartzCore " \ +"-framework OpenGL -framework IOKit" +#else +# error gcc options not set for this platform +#endif #define GCC_X86 "-m32" @@ -260,10 +272,6 @@ build_cl(u32 flags, char *code_path, char *code_file, char *out_path, char *out_ #define GCC_SITE_INCLUDES "-I../../foreign -I../../code" -#define GCC_LIBS \ -"-L/usr/local/lib -lX11 -lpthread -lm -lrt " \ -"-lGL -ldl -lXfixes -lfreetype -lfontconfig" - static void build_gcc(u32 flags, char *code_path, char *code_file, char *out_path, char *out_file, char *exports){ Build_Line line; @@ -330,12 +338,13 @@ build_gcc(u32 flags, char *code_path, char *code_file, char *out_path, char *out } build_ap(line, "-I\"%s\"", code_path); - build_ap(line, "\"%s/%s\"", code_path, code_file); if (flags & LIBS){ build_ap(line, GCC_LIBS); } + build_ap(line, "\"%s/%s\"", code_path, code_file); + swap_ptr(&line.build_options, &line.build_options_prev); Temp_Dir temp = pushdir(out_path);