55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
internal void Bootstrap_Main_Thread_Context () {
|
|
// 0. Setup general purpose allocator
|
|
GPAllocator_Initialize_Allocation_Tracker();
|
|
// 1. Setup arena table
|
|
initialize_arena_table();
|
|
// 2. Setup thread local context
|
|
ExpandableArena* arena_ex = expandable_arena_new(Arena_Reserve::Size_64M, 16);
|
|
|
|
thread_local_context = New<Thread_Context>(get_allocator(arena_ex));
|
|
thread_local_context->temp = expandable_arena_new(Arena_Reserve::Size_2M, 16);
|
|
thread_local_context->arena = arena_ex;
|
|
thread_local_context->allocator = get_allocator(arena_ex);
|
|
thread_local_context->thread_idx = 0;
|
|
thread_local_context->thread_name = "Main Thread";
|
|
// thread_local_context->logger = init_logger();
|
|
|
|
}
|
|
|
|
// #include "lib/Base/Arena_Array.h"
|
|
void run_arena_array_tests () {
|
|
{ push_arena(thread_local_context->temp);
|
|
push_alignment(thread_local_context->temp, 1);
|
|
auto_reset(thread_local_context->temp);
|
|
auto something = New<Thread_Context>();
|
|
auto something2 = New<Array<s64>>();
|
|
auto something3 = internal_alloc(5000);
|
|
}
|
|
|
|
{ push_allocator(GPAllocator());
|
|
auto something = New<Thread_Context>();
|
|
auto something2 = New<Array<s64>>();
|
|
}
|
|
|
|
// { auto na = arena_array_new<s64>(64000, Arena_Reserve::Size_64G);
|
|
// array_add(...)
|
|
// }
|
|
}
|
|
|
|
internal void Main_Entry_Point (int argc, WCHAR **argv) {
|
|
run_arena_array_tests();
|
|
|
|
// Worker_Info* info = (Worker_Info*)GPAllocator_New(sizeof(Worker_Info), 64);
|
|
|
|
debug_break();
|
|
printf("sizeof(Array): %zd\n", sizeof(Array<f32>));
|
|
printf("sizeof(Arena): %zd\n", sizeof(Arena));
|
|
printf("sizeof(Worker_Info): %zd\n", sizeof(Thread));
|
|
printf("sizeof(Worker_Info): %zd\n", sizeof(Worker_Info));
|
|
|
|
// #TODO:
|
|
// [ ] Launch second thread
|
|
// [ ] Setup Mouse and Keyboard Inputs
|
|
// OS_Create_Window();
|
|
}
|