From e32231c0a0acb9109343f18576f2ebb563416ad0 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Tue, 1 Oct 2019 16:50:56 -0700 Subject: [PATCH] Cleaning up dependencies in platform layer --- opengl/4ed_opengl_render.cpp | 2 +- platform_all/4ed_shared_init_logic.cpp | 12 ++++++++- platform_all/4ed_system_shared.cpp | 23 +--------------- platform_all/4ed_system_shared.h | 16 +----------- platform_win32/win32_4ed.cpp | 36 +++++++++----------------- platform_win32/win32_4ed_functions.cpp | 8 ++---- platform_win32/win32_utf8.h | 20 +++++++------- 7 files changed, 38 insertions(+), 79 deletions(-) diff --git a/opengl/4ed_opengl_render.cpp b/opengl/4ed_opengl_render.cpp index e6cf59b7..e520479a 100644 --- a/opengl/4ed_opengl_render.cpp +++ b/opengl/4ed_opengl_render.cpp @@ -168,7 +168,7 @@ gl__make_program(char *header, char *vertex, char *fragment){ #define GLOffset(S,m) ((void*)(OffsetOfMember(S,m))) internal void -gl_render(Render_Target *t, Arena *scratch){ +gl_render(Render_Target *t){ Font_Set *font_set = (Font_Set*)t->font_set; local_persist b32 first_opengl_call = true; diff --git a/platform_all/4ed_shared_init_logic.cpp b/platform_all/4ed_shared_init_logic.cpp index b82ee4b3..a1b267eb 100644 --- a/platform_all/4ed_shared_init_logic.cpp +++ b/platform_all/4ed_shared_init_logic.cpp @@ -97,7 +97,17 @@ read_command_line(Thread_Context *tctx, i32 argc, char **argv){ char **files = 0; i32 *file_count = 0; void *result = app.read_command_line(tctx, &sysfunc, curdir, &plat_settings, &files, &file_count, argc, argv); - sysshared_filter_real_files(scratch, files, file_count); + { + i32 end = *file_count; + i32 i = 0, j = 0; + for (; i < end; ++i){ + if (system_file_can_be_made(scratch, (u8*)files[i])){ + files[j] = files[i]; + ++j; + } + } + *file_count = j; + } return(result); } diff --git a/platform_all/4ed_system_shared.cpp b/platform_all/4ed_system_shared.cpp index 36bd8910..5464660b 100644 --- a/platform_all/4ed_system_shared.cpp +++ b/platform_all/4ed_system_shared.cpp @@ -12,32 +12,11 @@ #if !defined(FCODER_SYSTEM_SHARED_CPP) #define FCODER_SYSTEM_SHARED_CPP -// -// Standard implementation of file system stuff based on the file track layer. -// - -internal void -init_shared_vars(){ - shared_vars.font_scratch = make_arena_system(&sysfunc); - shared_vars.pixel_scratch = make_arena_system(&sysfunc); -} - // // General shared pieces // -internal void -sysshared_filter_real_files(Arena *scratch, char **files, i32 *file_count){ - i32 end = *file_count; - i32 i = 0, j = 0; - for (; i < end; ++i){ - if (system_file_can_be_made(scratch, (u8*)files[i])){ - files[j] = files[i]; - ++j; - } - } - *file_count = j; -} +#error Remove this file #endif diff --git a/platform_all/4ed_system_shared.h b/platform_all/4ed_system_shared.h index acc64717..46958474 100644 --- a/platform_all/4ed_system_shared.h +++ b/platform_all/4ed_system_shared.h @@ -17,21 +17,7 @@ #if !defined(FRED_SYSTEM_SHARED_H) #define FRED_SYSTEM_SHARED_H -struct File_Data{ - char *data; - u32 size; - b32 got_file; -}; -global File_Data null_file_data = {}; - -#define Sys_File_Can_Be_Made_Sig(name) b32 name(Arena *scratch, u8 *filename) -internal Sys_File_Can_Be_Made_Sig(system_file_can_be_made); - -struct Shared_Vars{ - Arena font_scratch; - Arena pixel_scratch; -}; -global Shared_Vars shared_vars; +#error Remove this file #endif diff --git a/platform_win32/win32_4ed.cpp b/platform_win32/win32_4ed.cpp index e587fd0d..dba659be 100644 --- a/platform_win32/win32_4ed.cpp +++ b/platform_win32/win32_4ed.cpp @@ -48,6 +48,7 @@ #include #define function static +#include "win32_utf8.h" #include "win32_gl.h" ////////////////////////////// @@ -62,10 +63,6 @@ win32_output_error_string(Arena *scratch, i32 error_string_type); ////////////////////////////// -#include "win32_utf8.h" - -#include "4ed_system_shared.h" - #define WM_4coder_ANIMATE (WM_USER + 0) struct Control_Keys{ @@ -324,8 +321,6 @@ Sys_Is_Fullscreen_Sig(system_is_fullscreen){ return(result); } -#include "4ed_system_shared.cpp" - // // Clipboard // @@ -1529,13 +1524,18 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS InitializeCriticalSection(&win32vars.thread_launch_mutex); InitializeConditionVariable(&win32vars.thread_launch_cv); - // - // HACK(allen): - // Previously zipped stuff is here, it should be zipped in the new pattern now. - // + SetProcessDPIAware(); - init_shared_vars(); + { + HDC dc = GetDC(0); + i32 x_dpi = GetDeviceCaps(dc, LOGPIXELSX); + i32 y_dpi = GetDeviceCaps(dc, LOGPIXELSY); + i32 max_dpi = max(x_dpi, y_dpi); + win32vars.screen_scale_factor = ((f32)max_dpi)/96.f; + ReleaseDC(0, dc); + } + // TODO(allen): load_app_code(win32vars.tctx); win32vars.log_string = app.get_logger(&sysfunc); void *base_ptr = read_command_line(win32vars.tctx, argc, argv); @@ -1550,18 +1550,6 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS custom_api.get_bindings = get_bindings; #endif - SetProcessDPIAware(); - - { - HDC dc = GetDC(0); - i32 x_dpi = GetDeviceCaps(dc, LOGPIXELSX); - i32 y_dpi = GetDeviceCaps(dc, LOGPIXELSY); - i32 max_dpi = max(x_dpi, y_dpi); - win32vars.screen_scale_factor = ((f32)max_dpi)/96.f; - ReleaseDC(0, dc); - } - - // // Window and GL Initialization // @@ -1903,7 +1891,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS // NOTE(allen): render HDC hdc = GetDC(win32vars.window_handle); - gl_render(&target, &shared_vars.pixel_scratch); + gl_render(&target); SwapBuffers(hdc); ReleaseDC(win32vars.window_handle, hdc); diff --git a/platform_win32/win32_4ed_functions.cpp b/platform_win32/win32_4ed_functions.cpp index 8a88423d..2fafa2d2 100644 --- a/platform_win32/win32_4ed_functions.cpp +++ b/platform_win32/win32_4ed_functions.cpp @@ -9,12 +9,8 @@ // TOP -// -// Shared system functions (system_shared.h) -// - -internal -Sys_File_Can_Be_Made_Sig(system_file_can_be_made){ +internal b32 +system_file_can_be_made(Arena *scratch, u8 *filename){ HANDLE file = CreateFile_utf8(scratch, filename, FILE_APPEND_DATA, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); b32 result = false; if (file != INVALID_HANDLE_VALUE){ diff --git a/platform_win32/win32_utf8.h b/platform_win32/win32_utf8.h index f5dcd879..0ec1a7ca 100644 --- a/platform_win32/win32_utf8.h +++ b/platform_win32/win32_utf8.h @@ -12,34 +12,34 @@ #if !defined(FRED_WIN32_UTF8_H) #define FRED_WIN32_UTF8_H -internal HANDLE +function HANDLE CreateFile_utf8(Arena *scratch, u8 *name, DWORD access, DWORD share, LPSECURITY_ATTRIBUTES security, DWORD creation, DWORD flags, HANDLE template_file); -internal DWORD +function DWORD GetFinalPathNameByHandle_utf8(Arena *scratch, HANDLE file, u8 *file_path_out, DWORD path_max, DWORD flags); -internal HANDLE +function HANDLE FindFirstFile_utf8(Arena *scratch, u8 *name, LPWIN32_FIND_DATA find_data); -internal DWORD +function DWORD GetFileAttributes_utf8(Arena *scratch, u8 *name); -internal DWORD +function DWORD GetModuleFileName_utf8(Arena *scratch, HMODULE module, u8 *file_out, DWORD max); -internal BOOL +function BOOL CreateProcess_utf8(Arena *scratch, u8 *app_name, u8 *command, LPSECURITY_ATTRIBUTES security, LPSECURITY_ATTRIBUTES thread, BOOL inherit_handles, DWORD creation, LPVOID environment, u8 *curdir, LPSTARTUPINFO startup, LPPROCESS_INFORMATION process); -internal DWORD +function DWORD GetCurrentDirectory_utf8(Arena *scratch, DWORD max, u8 *buffer); -internal int +function int MessageBox_utf8(Arena *scratch, HWND owner, u8 *text, u8 *caption, UINT type); -internal BOOL +function BOOL SetWindowText_utf8(Arena *scratch, HWND window, u8 *string); -internal BOOL +function BOOL GetFileAttributesEx_utf8String(Arena *scratch, String_Const_u8 file_name, GET_FILEEX_INFO_LEVELS info_level_id, LPVOID file_info); #endif