#include #include #include #include #include #include #include #include #include "../linux/lumenarium_linux_memory.h" #include "../../core/lumenarium_core.h" #include "../lumenarium_os.h" #include "../../lumenarium_first.c" #undef internal #undef external #include #include #include #include #include #include #include #include #define linux_err_print(sub_proc) linux_err_print_((char*)__FUNCTION__, (char*)(sub_proc), errno) void linux_err_print_(char* proc, char* sub_proc, s32 errsv) { printf("Error: %s:%s - %d\n\t%s\n\n", proc, sub_proc, errsv, strerror(errsv)); } #define OS_FILE_HANDLE_TYPE s32 #define OS_FILE_MAX_PATH PATH_MAX #define OS_FILE_INVALID_HANDLE -1 #define OS_SOCKET_TYPE s32 #define OS_SOCKET_INVALID_HANDLE -1 #include "../shared/lumenarium_shared_file_tracker.h" #include "../shared/lumenarium_shared_file_async_work_on_job.h" #include "../shared/lumenarium_shared_network.h" #include "../linux/lumenarium_linux_file.h" #include "../linux/lumenarium_linux_time.h" #include "../osx/lumenarium_osx_network.h" #include "../osx/lumenarium_osx_thread.h" int main (int arg_count, char** args) { // INIT APPLICATION Editor_Desc ed_desc = { }; App_State* state = lumenarium_init(&ed_desc); time_t t = time(NULL); struct tm* lt = localtime(&t); // lt.tm_sec, tm_min, tm_hour, tm_mday, etc. printf("Local Time: %s\n", asctime(lt)); bool running = true; Ticks ticks_start = os_get_ticks(); while (has_flag(state->flags, AppState_IsRunning)) { lumenarium_frame_prepare(state); lumenarium_frame(state); lumenarium_env_validate(); Ticks ticks_end = os_get_ticks(); usleep((1.f / 30.f) * 1000000); // r64 seconds_elapsed = (r64)(ticks_end.value - ticks_start.value) / (r64)1e+9; // //get_seconds_elapsed(ticks_start, ticks_end, os_get_ticks_per_second()); // while (seconds_elapsed < state->target_seconds_per_frame) // { // printf("Sleeping\n"); // u32 sleep_time = (u32)(1000000.0f * (state->target_seconds_per_frame - seconds_elapsed)); // ticks_end = os_get_ticks(); // seconds_elapsed = (r64)(ticks_end.value - ticks_start.value) / (r64)1e+9; //get_seconds_elapsed(ticks_start, ticks_end, os_get_ticks_per_second()); // } ticks_start = ticks_end; } lumenarium_cleanup(state); return 0; }