Added a c++ platform layer file.
parent
18dd91197f
commit
54f5e72aa5
|
@ -0,0 +1 @@
|
||||||
|
/* Mac C++ layer for 4coder */
|
|
@ -1,5 +1,36 @@
|
||||||
|
/* Mac Objective C layer for 4coder */
|
||||||
|
|
||||||
#include <Cocoa/Cocoa.h>
|
#include <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
#define FPS 60
|
||||||
|
#define frame_useconds (1000000 / FPS)
|
||||||
|
|
||||||
|
#include "4coder_base_types.h"
|
||||||
|
#include "4coder_version.h"
|
||||||
|
#include "4coder_events.h"
|
||||||
|
|
||||||
|
#include "4coder_system_types.h"
|
||||||
|
#define STATIC_LINK_API
|
||||||
|
#include "generated/system_api.h"
|
||||||
|
|
||||||
|
#include "generated/system_api.cpp"
|
||||||
|
|
||||||
|
#include "4coder_base_types.cpp"
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
|
#define SLASH '\\'
|
||||||
|
#define DLL "dll"
|
||||||
|
|
||||||
|
#include "4coder_hash_functions.cpp"
|
||||||
|
#include "4coder_system_allocator.cpp"
|
||||||
|
#include "4coder_codepoint_map.cpp"
|
||||||
|
|
||||||
|
#include "4ed_mem.cpp"
|
||||||
|
#include "4ed_font_set.cpp"
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
@interface App_Delegate : NSObject<NSApplicationDelegate, NSWindowDelegate>
|
@interface App_Delegate : NSObject<NSApplicationDelegate, NSWindowDelegate>
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@ -19,7 +50,7 @@
|
||||||
return frame_size;
|
return frame_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)windowWillClose:(id)sender {
|
- (void)windowWillClose:(id)sender{
|
||||||
// global_running = false;
|
// global_running = false;
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
@ -27,7 +58,7 @@
|
||||||
int
|
int
|
||||||
main(int arg_count, char **args){
|
main(int arg_count, char **args){
|
||||||
@autoreleasepool{
|
@autoreleasepool{
|
||||||
// NOTE(yuval): NSApplication & Delegate Creation
|
// NOTE(yuval): Create NSApplication & Delegate
|
||||||
NSApplication* app = [NSApplication sharedApplication];
|
NSApplication* app = [NSApplication sharedApplication];
|
||||||
[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
|
[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
|
||||||
|
|
||||||
|
@ -36,7 +67,7 @@ main(int arg_count, char **args){
|
||||||
|
|
||||||
[NSApp finishLaunching];
|
[NSApp finishLaunching];
|
||||||
|
|
||||||
#if 0
|
// NOTE(yuval): Context Setup
|
||||||
Thread_Context _tctx = {};
|
Thread_Context _tctx = {};
|
||||||
thread_ctx_init(&_tctx, ThreadKind_Main,
|
thread_ctx_init(&_tctx, ThreadKind_Main,
|
||||||
get_base_allocator_system(),
|
get_base_allocator_system(),
|
||||||
|
@ -45,11 +76,23 @@ main(int arg_count, char **args){
|
||||||
block_zero_struct(&global_mac_vars);
|
block_zero_struct(&global_mac_vars);
|
||||||
global_mac_vars.tctx = &_tctx;
|
global_mac_vars.tctx = &_tctx;
|
||||||
|
|
||||||
|
API_VTable_system system_vtable = {};
|
||||||
|
system_api_fill_vtable(&system_vtable);
|
||||||
|
|
||||||
|
API_VTable_graphics graphics_vtable = {};
|
||||||
|
graphics_api_fill_vtable(&graphics_vtable);
|
||||||
|
|
||||||
|
API_VTable_font font_vtable = {};
|
||||||
|
font_api_fill_vtable(&font_vtable);
|
||||||
|
|
||||||
|
// NOTE(yuval): Memory
|
||||||
|
global_mac_vars.frame_arena = reserve_arena(global_mac_vars.tctx);
|
||||||
|
global_target.arean = make_arena_system(KB(256));
|
||||||
|
|
||||||
// NOTE(yuval): Application Core Update
|
// NOTE(yuval): Application Core Update
|
||||||
Application_Step_Result result = {};
|
Application_Step_Result result = {};
|
||||||
if (app.step != 0){
|
if (app.step != 0){
|
||||||
result = app.step(mac_vars.tctx, &target, base_ptr, &input);
|
result = app.step(mac_vars.tctx, &target, base_ptr, &input);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue