From 067ffdef586038a04f16f4dfcf93673e3e694d8d Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Fri, 16 Jun 2017 16:57:02 -0400 Subject: [PATCH] Fixed windows startup crash; new themes system --- 4coder_API/version.h | 2 +- 4ed.cpp | 295 ------------------------------ themes/theme-4coder.4coder | 2 +- themes/theme-handmade-hero.4coder | 2 +- themes/theme-hjortshoej.4coder | 39 ++++ themes/theme-stb-dark.4coder | 38 ++++ themes/theme-stb.4coder | 38 ++++ themes/theme-strange.4coder | 39 ++++ themes/theme-twilight.4coder | 38 ++++ win32_4ed.cpp | 59 +++--- 10 files changed, 228 insertions(+), 324 deletions(-) create mode 100644 themes/theme-hjortshoej.4coder create mode 100644 themes/theme-stb-dark.4coder create mode 100644 themes/theme-stb.4coder create mode 100644 themes/theme-strange.4coder create mode 100644 themes/theme-twilight.4coder diff --git a/4coder_API/version.h b/4coder_API/version.h index 75a7434a..a4acc604 100644 --- a/4coder_API/version.h +++ b/4coder_API/version.h @@ -1,6 +1,6 @@ #define MAJOR 4 #define MINOR 0 -#define PATCH 20 +#define PATCH 21 // string #define VN__(a,b,c) #a"."#b"."#c diff --git a/4ed.cpp b/4ed.cpp index f10c10c9..df5f075b 100644 --- a/4ed.cpp +++ b/4ed.cpp @@ -629,301 +629,6 @@ app_hardcode_styles(Models *models){ style->main.file_info_style = file_info_style; ++style; - ///////////////// - style_set_name(style, make_lit_string("Handmade Hero")); - - style->main.back_color = 0xFF161616; - style->main.margin_color = 0xFF262626; - style->main.margin_hover_color = 0xFF333333; - style->main.margin_active_color = 0xFF404040; - style->main.list_item_color = style->main.margin_color; - style->main.list_item_hover_color = style->main.margin_hover_color; - style->main.list_item_active_color = style->main.margin_active_color; - style->main.cursor_color = 0xFF40FF40; - style->main.at_cursor_color = style->main.back_color; - style->main.mark_color = 0xFF808080; - style->main.highlight_color = 0xFF703419; - style->main.at_highlight_color = 0xFFCDAA7D; - style->main.default_color = 0xFFA08563; - style->main.comment_color = 0xFF7D7D7D; - style->main.keyword_color = 0xFFCD950C; - style->main.str_constant_color = 0xFF6B8E23; - style->main.char_constant_color = style->main.str_constant_color; - style->main.int_constant_color = style->main.str_constant_color; - style->main.float_constant_color = style->main.str_constant_color; - style->main.bool_constant_color = style->main.str_constant_color; - style->main.include_color = 0xFF6B8E23; - style->main.preproc_color = 0xFFDAB98F; - style->main.special_character_color = 0xFFFF0000; - style->main.ghost_character_color = color_blend(style->main.default_color, 0.5f, style->main.back_color); - - style->main.paste_color = 0xFFFFBB00; - style->main.undo_color = 0xFF80005D; - - style->main.highlight_junk_color = 0xFF3A0000; - style->main.highlight_white_color = 0xFF003A3A; - - file_info_style.bar_color = 0xFFCACACA; - file_info_style.bar_active_color = 0xFFA8A8A8; - file_info_style.base_color = 0xFF000000; - file_info_style.pop1_color = 0xFF03CF0C; - file_info_style.pop2_color = 0xFFFF0000; - style->main.file_info_style = file_info_style; - - ++style; - - ///////////////// - style_set_name(style, make_lit_string("Twilight")); - - style->main.back_color = 0xFF090D12; - style->main.margin_color = 0xFF1A2634; - style->main.margin_hover_color = 0xFF2D415B; - style->main.margin_active_color = 0xFF405D82; - style->main.list_item_color = style->main.margin_color; - style->main.list_item_hover_color = style->main.margin_hover_color; - style->main.list_item_active_color = style->main.margin_active_color; - style->main.cursor_color = 0xFFEEE800; - style->main.at_cursor_color = style->main.back_color; - style->main.mark_color = 0xFF8BA8CC; - style->main.highlight_color = 0xFF037A7B; - style->main.at_highlight_color = 0xFFFEB56C; - style->main.default_color = 0xFFB7C19E; - style->main.comment_color = 0xFF20ECF0; - style->main.keyword_color = 0xFFD86909; - style->main.str_constant_color = 0xFFC4EA5D; - style->main.char_constant_color = style->main.str_constant_color; - style->main.int_constant_color = style->main.str_constant_color; - style->main.float_constant_color = style->main.str_constant_color; - style->main.bool_constant_color = style->main.str_constant_color; - style->main.include_color = style->main.str_constant_color; - style->main.preproc_color = style->main.default_color; - style->main.special_character_color = 0xFFFF0000; - style->main.ghost_character_color = color_blend(0xFFFFFFFF, 0.75f, style->main.back_color); - - style->main.paste_color = 0xFFDDEE00; - style->main.undo_color = 0xFF00DDEE; - - style->main.highlight_junk_color = 0xff3a0000; - style->main.highlight_white_color = 0xFF151F2A; - - file_info_style.bar_color = 0xFF315E68; - file_info_style.bar_active_color = 0xFF0F3C46; - file_info_style.base_color = 0xFF000000; - file_info_style.pop1_color = 0xFF1BFF0C; - file_info_style.pop2_color = 0xFFFF200D; - style->main.file_info_style = file_info_style; - ++style; - - ///////////////// - style_set_name(style, make_lit_string("Wolverine")); - - style->main.back_color = 0xFF070711; - style->main.margin_color = 0xFF111168; - style->main.margin_hover_color = 0xFF191996; - style->main.margin_active_color = 0xFF2121C3; - style->main.list_item_color = style->main.margin_color; - style->main.list_item_hover_color = style->main.margin_hover_color; - style->main.list_item_active_color = style->main.margin_active_color; - style->main.cursor_color = 0xFF7082F9; - style->main.at_cursor_color = 0xFF000014; - style->main.mark_color = 0xFF4b5028; - style->main.highlight_color = 0xFFDDEE00; - style->main.at_highlight_color = 0xFF000019; - style->main.default_color = 0xFF8C9740; - style->main.comment_color = 0xFF3A8B29; - style->main.keyword_color = 0xFFD6B109; - style->main.str_constant_color = 0xFFAF5FA7; - style->main.char_constant_color = style->main.str_constant_color; - style->main.int_constant_color = style->main.str_constant_color; - style->main.float_constant_color = style->main.str_constant_color; - style->main.bool_constant_color = style->main.str_constant_color; - style->main.include_color = style->main.str_constant_color; - style->main.preproc_color = style->main.default_color; - style->main.special_character_color = 0xFFFF0000; - style->main.ghost_character_color = color_blend(style->main.default_color, 0.5f, style->main.back_color); - - style->main.paste_color = 0xFF900090; - style->main.undo_color = 0xFF606090; - - style->main.highlight_junk_color = 0xff3a0000; - style->main.highlight_white_color = 0xff003a3a; - - file_info_style.bar_color = 0xFF7082F9; - file_info_style.bar_active_color = 0xFF4E60D7; - file_info_style.base_color = 0xFF000000; - file_info_style.pop1_color = 0xFFFAFA15; - file_info_style.pop2_color = 0xFFD20000; - style->main.file_info_style = file_info_style; - ++style; - - ///////////////// - style_set_name(style, make_lit_string("stb")); - - style->main.back_color = 0xFFD6D6D6; - style->main.margin_color = 0xFF9E9E9E; - style->main.margin_hover_color = 0xFF7E7E7E; - style->main.margin_active_color = 0xFF5C5C5C; - style->main.list_item_color = style->main.margin_color; - style->main.list_item_hover_color = style->main.margin_hover_color; - style->main.list_item_active_color = style->main.margin_active_color; - style->main.cursor_color = 0xFF000000; - style->main.at_cursor_color = 0xFFD6D6D6; - style->main.mark_color = 0xFF525252; - style->main.highlight_color = 0xFF0044FF; - style->main.at_highlight_color = 0xFFD6D6D6; - style->main.default_color = 0xFF000000; - style->main.comment_color = 0xFF005800; - style->main.keyword_color = 0xFF000000; - style->main.str_constant_color = 0xFF000000; - style->main.char_constant_color = style->main.str_constant_color; - style->main.int_constant_color = style->main.str_constant_color; - style->main.float_constant_color = style->main.str_constant_color; - style->main.bool_constant_color = style->main.str_constant_color; - style->main.include_color = style->main.str_constant_color; - style->main.preproc_color = style->main.default_color; - style->main.special_character_color = 0xFF9A0000; - style->main.ghost_character_color = color_blend(style->main.default_color, 0.5f, style->main.back_color); - - style->main.paste_color = 0xFF00B8B8; - style->main.undo_color = 0xFFB800B8; - - style->main.highlight_junk_color = 0xFFFF7878; - style->main.highlight_white_color = 0xFFBCBCBC; - - file_info_style.bar_color = 0xFF606060; - file_info_style.bar_active_color = 0xFF3E3E3E; - file_info_style.base_color = 0xFF000000; - file_info_style.pop1_color = 0xFF1111DC; - file_info_style.pop2_color = 0xFFE80505; - style->main.file_info_style = file_info_style; - ++style; - - ///////////////// - style_set_name(style, make_lit_string("stb dark")); - - style->main.back_color = 0xFF303030; - style->main.margin_color = 0xFF383838; - style->main.margin_hover_color = 0xFF404040; - style->main.margin_active_color = 0xFF484848; - style->main.list_item_color = style->main.margin_color; - style->main.list_item_hover_color = style->main.margin_hover_color; - style->main.list_item_active_color = style->main.margin_active_color; - style->main.cursor_color = 0xFFDDDDDD; - style->main.at_cursor_color = 0xFF303030; - style->main.mark_color = 0xFF808080; - style->main.highlight_color = 0xFF006080; - style->main.at_highlight_color = 0xFF303030; - style->main.default_color = 0xFFAAAAAA; - style->main.comment_color = 0xFF6AC000; - style->main.keyword_color = 0xFFAAAAAA; - style->main.str_constant_color = 0xFFAAAAAA; - style->main.char_constant_color = style->main.str_constant_color; - style->main.int_constant_color = style->main.str_constant_color; - style->main.float_constant_color = style->main.str_constant_color; - style->main.bool_constant_color = style->main.str_constant_color; - style->main.include_color = style->main.str_constant_color; - style->main.preproc_color = style->main.default_color; - style->main.special_character_color = 0xFFFF0000; - style->main.ghost_character_color = color_blend(style->main.default_color, 0.5f, style->main.back_color); - - style->main.paste_color = 0xFF00FFFF; - style->main.undo_color = 0xFFFF00FF; - - style->main.highlight_junk_color = 0xFF482020; - style->main.highlight_white_color = 0xFF383838; - - file_info_style.bar_color = 0xFF606060; - file_info_style.bar_active_color = 0xFF3E3E3E; - file_info_style.base_color = 0xFF000000; - file_info_style.pop1_color = 0xFF00B0D0; - file_info_style.pop2_color = 0xFFFF3A00; - style->main.file_info_style = file_info_style; - ++style; - - ///////////////// - style_set_name(style, make_lit_string("Hjortshoej")); - - style->main.back_color = 0xFFF0F0F0; - style->main.margin_color = 0xFF9E9E9E; - style->main.margin_hover_color = 0xFF7E7E7E; - style->main.margin_active_color = 0xFF5C5C5C; - style->main.list_item_color = style->main.margin_color; - style->main.list_item_hover_color = style->main.margin_hover_color; - style->main.list_item_active_color = style->main.margin_active_color; - style->main.cursor_color = 0xFF000000; - style->main.at_cursor_color = 0xFFD6D6D6; - style->main.mark_color = 0xFF525252; - style->main.highlight_color = 0xFFB87600; - style->main.at_highlight_color = 0xFF000000; - style->main.default_color = 0xFF000000; - style->main.comment_color = 0xFF007E00; - style->main.keyword_color = 0xFF8B4303; - style->main.str_constant_color = 0xFF7C0000; - style->main.char_constant_color = 0xFF7C0000; - style->main.include_color = 0xFF7C0000; - style->main.int_constant_color = 0xFF007C00; - style->main.float_constant_color = 0xFF007C00; - style->main.bool_constant_color = 0xFF007C00; - style->main.preproc_color = 0xFF0000FF; - style->main.special_character_color = 0xFF9A0000; - style->main.ghost_character_color = color_blend(style->main.default_color, 0.5f, style->main.back_color); - - style->main.paste_color = 0xFFB87600; - style->main.undo_color = 0xFFB87600; - - style->main.highlight_junk_color = 0xFFFF7878; - style->main.highlight_white_color = 0xFFB87600; - - file_info_style.bar_color = 0xFF606060; - file_info_style.bar_active_color = 0xFF3E3E3E; - file_info_style.base_color = 0xFFFFFFFF; - file_info_style.pop1_color = 0xFF007E00; - file_info_style.pop2_color = 0xFFE80505; - style->main.file_info_style = file_info_style; - ++style; - - ///////////////// - style_set_name(style, make_lit_string("Strange")); - - style->main.back_color = 0xFF161616; - style->main.margin_color = 0xFF606590; - style->main.margin_hover_color = 0xFF606590; - style->main.margin_active_color = 0xFF9a99e7; - style->main.list_item_color = style->main.margin_color; - style->main.list_item_hover_color = style->main.margin_hover_color; - style->main.list_item_active_color = style->main.margin_active_color; - style->main.cursor_color = 0xFFd96e26; - style->main.at_cursor_color = style->main.back_color; - style->main.mark_color = 0xFF808080; - style->main.highlight_color = 0xFF703419; - style->main.at_highlight_color = 0xFFCDAA7D; - style->main.default_color = 0xFFFFFFFF; - style->main.comment_color = 0xFF505f89; - style->main.keyword_color = 0xFFaa8da7; - style->main.str_constant_color = 0xFF9a99e7; - style->main.char_constant_color = style->main.str_constant_color; - style->main.int_constant_color = style->main.str_constant_color; - style->main.float_constant_color = style->main.str_constant_color; - style->main.bool_constant_color = style->main.str_constant_color; - style->main.include_color = 0xFF9a99e7; - style->main.preproc_color = 0xFF606590; - style->main.special_character_color = 0xFFFF0000; - style->main.ghost_character_color = color_blend(style->main.default_color, 0.5f, style->main.back_color); - - style->main.paste_color = 0xFFFFBB00; - style->main.undo_color = 0xFF80005D; - - style->main.highlight_junk_color = 0xFF3A0000; - style->main.highlight_white_color = 0xFF003A3A; - - file_info_style.bar_color = 0xFF9a99e7; - file_info_style.bar_active_color = 0xFF9a99e7; - file_info_style.base_color = 0xFF000000; - file_info_style.pop1_color = 0xFF03CF0C; - file_info_style.pop2_color = 0xFFFF0000; - style->main.file_info_style = file_info_style; - ++style; - ///////////////// models->styles.count = (i32)(style - styles); models->styles.max = ArrayCount(models->styles.styles); diff --git a/themes/theme-4coder.4coder b/themes/theme-4coder.4coder index 7842ce94..3ce72073 100644 --- a/themes/theme-4coder.4coder +++ b/themes/theme-4coder.4coder @@ -36,4 +36,4 @@ Bar = 0xFF888888; Bar_Active = 0xFF666666; Base = 0xFF000000; Pop1 = 0xFF3C57DC; -Pop2 = 0xFFFF0000; \ No newline at end of file +Pop2 = 0xFFFF0000; diff --git a/themes/theme-handmade-hero.4coder b/themes/theme-handmade-hero.4coder index ce4f143e..103295ff 100644 --- a/themes/theme-handmade-hero.4coder +++ b/themes/theme-handmade-hero.4coder @@ -36,4 +36,4 @@ Bar = 0xFFCACACA; Bar_Active = FFA8A8A8; Base = 0xFF000000; Pop1 = 0xFF03CF0C; -Pop2 = 0xFFFF0000; \ No newline at end of file +Pop2 = 0xFFFF0000; diff --git a/themes/theme-hjortshoej.4coder b/themes/theme-hjortshoej.4coder new file mode 100644 index 00000000..ef1cd136 --- /dev/null +++ b/themes/theme-hjortshoej.4coder @@ -0,0 +1,39 @@ +name = "Hjortshoej"; + +Back = 0xFFF0F0F0; +Margin = 0xFF9E9E9E; +Margin_Hover = 0xFF7E7E7E; +Margin_Active = 0xFF5C5C5C; +List_Item = Margin; +List_Item_Hover = Margin_Hover; +List_Item_Active = Margin_Active; +Cursor = 0xFF000000; +At_Cursor = 0xFFD6D6D6; +Mark = 0xFF525252; +Highlight = 0xFFB87600; +At_Highlight = 0xFF000000; +Default = 0xFF000000; +Comment = 0xFF007E00; +Keyword = 0xFF8B4303; +Str_Constant = 0xFF7C0000; +Char_Constant = Str_Constant; +Include = Str_Constant; +Int_Constant = 0xFF007C00; +Float_Constant = Int_Constant; +Bool_Constant = Int_Constant; +Preproc = 0xFF0000FF; +Special_Character = 0xFF9A0000; +Ghost_Character = 0xFF181818; + +Paste = 0xFF00FFFF; +Undo = 0xFFFF00FF; + +Highlight_Junk = 0xFF482020; +Highlight_White = 0xFF383838; + +Bar = 0xFF606060; +Bar_Active = 0xFF3E3E3E; +Base = 0xFFFFFFFF; +Pop1 = 0xFF007E00; +Pop2 = 0xFFE80505; + diff --git a/themes/theme-stb-dark.4coder b/themes/theme-stb-dark.4coder new file mode 100644 index 00000000..87aee7d9 --- /dev/null +++ b/themes/theme-stb-dark.4coder @@ -0,0 +1,38 @@ +name = "stb-dark"; + +Back = 0xFF303030; +Margin = 0xFF383838; +Margin_Hover = 0xFF404040; +Margin_Active = 0xFF484848; +List_Item = Margin; +List_Item_Hover = Margin_Hover; +List_Item_Active = Margin_Active; +Cursor = 0xFFDDDDDD; +At_Cursor = Back; +Mark = 0xFF808080; +Highlight = 0xFF006080; +At_Highlight = Back; +Default = 0xFFAAAAAA; +Comment = 0xFF6AC000; +Keyword = Default; +Str_Constant = Default; +Char_Constant = Str_Constant; +Int_Constant = Str_Constant; +Float_Constant = Str_Constant; +Bool_Constant = Str_Constant; +Include = Str_Constant; +Preproc = Default; +Special_Character = 0xFFFF0000; +Ghost_Character = 0xFF181818; + +Paste = 0xFF00FFFF; +Undo = 0xFFFF00FF; + +Highlight_Junk = 0xFF482020; +Highlight_White = 0xFF383838; + +Bar = 0xFF606060; +Bar_Active = 0xFF3E3E3E; +Base = 0xFF000000; +Pop1 = 0xFF00B0D0; +Pop2 = 0xFFFF3A00; diff --git a/themes/theme-stb.4coder b/themes/theme-stb.4coder new file mode 100644 index 00000000..474700b6 --- /dev/null +++ b/themes/theme-stb.4coder @@ -0,0 +1,38 @@ +name = "stb"; + +Back = 0xFFD6D6D6; +Margin = 0xFF9E9E9E; +Margin_Hover = 0xFF7E7E7E; +Margin_Active = 0xFF5C5C5C; +List_Item = Margin; +List_Item_Hover = Margin_Hover; +List_Item_Active = Margin_Active; +Cursor = 0xFF000000; +At_Cursor = Back; +Mark = 0xFF525252; +Highlight = 0xFF0044FF; +At_Highlight = Back; +Default = 0xFF000000; +Comment = 0xFF005800; +Keyword = Default; +Str_Constant = Default; +Char_Constant = Str_Constant; +Int_Constant = Str_Constant; +Float_Constant = Str_Constant; +Bool_Constant = Str_Constant; +Include = Str_Constant; +Preproc = Default; +Special_Character = 0xFF9A0000; +Ghost_Character = 0xFF6B6B6B; + +Paste = 0xFF00B8B8; +Undo = 0xFFB800B8; + +Highlight_Junk = 0xFFFF7878; +Highlight_White = 0xFFBCBCBC; + +Bar = 0xFF606060; +Bar_Active = 0xFF3E3E3E; +Base = 0xFF000000; +Pop1 = 0xFF1111DC; +Pop2 = 0xFFE80505; diff --git a/themes/theme-strange.4coder b/themes/theme-strange.4coder new file mode 100644 index 00000000..1730918b --- /dev/null +++ b/themes/theme-strange.4coder @@ -0,0 +1,39 @@ +name = "Strange"; + +Back = 0xFF161616; +Margin = 0xFF606590; +Margin_Hover = 0xFF606590; +Margin_Active = 0xFF9A99E7; +List_Item = Margin; +List_Item_Hover = Margin_Hover; +List_Item_Active = Margin_Active; +Cursor = 0xFFd96e26; +At_Cursor = Back; +Mark = 0xFF808080; +Highlight = 0xFF703419; +At_Highlight = 0xFFCDAA7D; +Default = 0xFFFFFFFF; +Comment = 0xFF505F89; +Keyword = 0xFFAA8DA7; +Str_Constant = 0xFF9A99E7; +Char_Constant = Str_Constant; +Include = Str_Constant; +Int_Constant = 0xFF007C00; +Float_Constant = Int_Constant; +Bool_Constant = Int_Constant; +Preproc = 0xFF606590; +Special_Character = 0xFFFF0000; +Ghost_Character = 0xFF8A8A8A; + +Paste = 0xFFFFBB00; +Undo = 0xFF80005D; + +Highlight_Junk = 0xFF3A0000; +Highlight_White = 0xFF003A3A; + +Bar = 0xFF9A99E7; +Bar_Active = 0xFF9A99E7; +Base = 0xFF000000; +Pop1 = 0xFF03CF0C; +Pop2 = 0xFFFF0000; + diff --git a/themes/theme-twilight.4coder b/themes/theme-twilight.4coder new file mode 100644 index 00000000..88862831 --- /dev/null +++ b/themes/theme-twilight.4coder @@ -0,0 +1,38 @@ +name = "Twilight"; + +Back = 0xFF090D12; +Margin = 0xFF1A2634; +Margin_Hover = 0xFF2D415B; +Margin_Active = 0xFF405D82; +List_Item = Margin; +List_Item_Hover = Margin_Hover; +List_Item_Active = Margin_Active; +Cursor = 0xFFEEE800; +At_Cursor = Back; +Mark = 0xFF8BA8CC; +Highlight = 0xFF037A7B; +At_Highlight = Back; +Default = 0xFFB7C19E; +Comment = 0xFF20ECF0; +Keyword = 0xFFD86909; +Str_Constant = 0xFFC4EA5D; +Char_Constant = Str_Constant; +Int_Constant = Str_Constant; +Float_Constant = Str_Constant; +Bool_Constant = Str_Constant; +Include = Str_Constant; +Preproc = Default; +Special_Character = 0xFFFF0000; +Ghost_Character = 0xFF46494D; + +Paste = 0xFFDDEE00; +Undo = 0xFF00DDEE; + +Highlight_Junk = 0xFF3A0000; +Highlight_White = 0xFF151F2A; + +Bar = 0xFF315E68; +Bar_Active = 0xFF0F3C46; +Base = 0xFF000000; +Pop1 = 0xFF1BFF0C; +Pop2 = 0xFFFF200D; diff --git a/win32_4ed.cpp b/win32_4ed.cpp index 13395e0f..f99a7598 100644 --- a/win32_4ed.cpp +++ b/win32_4ed.cpp @@ -28,7 +28,6 @@ // Program setup // -#define SUPPORT_DPI 1 #define UNICODE #define FPS 60 @@ -195,11 +194,9 @@ struct Win32_Vars{ HWND window_handle; Render_Target target; -#if SUPPORT_DPI i32 dpi_x, dpi_y; -#endif - u64 count_per_usecond; + f64 count_per_usecond; b32 first; i32 running_cli; @@ -1712,7 +1709,7 @@ Win32HighResolutionTime(){ u64 result = 0; LARGE_INTEGER t; if (QueryPerformanceCounter(&t)){ - result = (u64)t.QuadPart / win32vars.count_per_usecond; + result = (u64) (t.QuadPart / win32vars.count_per_usecond); } return(result); } @@ -2123,25 +2120,30 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS #if defined(FRED_SUPER) char *custom_file_default = "custom_4coder.dll"; char *custom_file = 0; - if (win32vars.settings.custom_dll) custom_file = win32vars.settings.custom_dll; - else custom_file = custom_file_default; + if (win32vars.settings.custom_dll){ + custom_file = win32vars.settings.custom_dll; + } + else{ + custom_file = custom_file_default; + } + LOGF(system, "Trying to load custom DLL: %s\n", custom_file); win32vars.custom = LoadLibraryA(custom_file); if (!win32vars.custom && custom_file != custom_file_default){ if (!win32vars.settings.custom_dll_is_strict){ + LOGF(system, "Trying to load custom DLL: %s\n", custom_file_default); win32vars.custom = LoadLibraryA(custom_file_default); } } if (win32vars.custom){ - win32vars.custom_api.get_alpha_4coder_version = (_Get_Version_Function*) - GetProcAddress(win32vars.custom, "get_alpha_4coder_version"); + win32vars.custom_api.get_alpha_4coder_version = (_Get_Version_Function*)GetProcAddress(win32vars.custom, "get_alpha_4coder_version"); - if (win32vars.custom_api.get_alpha_4coder_version == 0 || - win32vars.custom_api.get_alpha_4coder_version(MAJOR, MINOR, PATCH) == 0){ + if (win32vars.custom_api.get_alpha_4coder_version == 0 || win32vars.custom_api.get_alpha_4coder_version(MAJOR, MINOR, PATCH) == 0){ MessageBox_utf8(0, (u8*)"Error: The application and custom version numbers don't match.\n", (u8*)"Error",0); exit(1); } + win32vars.custom_api.get_bindings = (Get_Binding_Data_Function*)GetProcAddress(win32vars.custom, "get_bindings"); } @@ -2158,7 +2160,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS // Window and GL Initialization // - WNDCLASS window_class = {}; + WNDCLASS window_class = {0}; window_class.style = CS_HREDRAW|CS_VREDRAW; window_class.lpfnWndProc = (WNDPROC)(Win32Callback); window_class.hInstance = hInstance; @@ -2169,8 +2171,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS exit(1); } - RECT window_rect = {}; - + RECT window_rect = {0}; if (win32vars.settings.set_window_size){ window_rect.right = win32vars.settings.window_w; window_rect.bottom = win32vars.settings.window_h; @@ -2181,7 +2182,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS } if (!AdjustWindowRect(&window_rect, WS_OVERLAPPEDWINDOW, false)){ - // TODO(allen): non-fatal diagnostics + LOG(system, "Could not get adjusted window.\n"); } i32 window_x = CW_USEDEFAULT; @@ -2190,6 +2191,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS if (win32vars.settings.set_window_pos){ window_x = win32vars.settings.window_x; window_y = win32vars.settings.window_y; + LOGF(system, "Setting window position (%d, %d)\n", window_x, window_y); } i32 window_style = WS_OVERLAPPEDWINDOW; @@ -2199,25 +2201,24 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS #define WINDOW_NAME L"4coder-window: " L_VERSION + LOG(system, "Creating window... "); win32vars.window_handle = CreateWindow(window_class.lpszClassName, WINDOW_NAME, window_style, window_x, window_y, window_rect.right - window_rect.left, window_rect.bottom - window_rect.top, 0, 0, hInstance, 0); if (win32vars.window_handle == 0){ + LOG(system, "Failed\n"); exit(1); } + else{ + LOG(system, "Success\n"); + } { HDC hdc = GetDC(win32vars.window_handle); -#if SUPPORT_DPI // TODO(allen): not Windows XP compatible, how do I handle that? SetProcessDPIAware(); - win32vars.dpi_x = GetDeviceCaps(hdc, LOGPIXELSX); win32vars.dpi_y = GetDeviceCaps(hdc, LOGPIXELSY); -#else - win32vars.dpi_x = 1; - win32vars.dpi_y = 1; -#endif GetClientRect(win32vars.window_handle, &window_rect); ReleaseDC(win32vars.window_handle, hdc); @@ -2230,12 +2231,14 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS // Font System Init // + LOG(system, "Initializing fonts\n"); system_font_init(&system->font, 0, 0, win32vars.settings.font_size, win32vars.settings.use_hinting); // // Misc System Initializations // + LOG(system, "Initializing clipboard\n"); win32vars.clip_max = KB(16); win32vars.clip_buffer = (u8*)system_memory_allocate(win32vars.clip_max); @@ -2263,24 +2266,27 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS LARGE_INTEGER f; if (QueryPerformanceFrequency(&f)){ - win32vars.count_per_usecond = (u64)f.QuadPart / 1000000; + win32vars.count_per_usecond = (f32)f.QuadPart / 1000000.f; + LOGF(system, "Got performance frequency %f\n", win32vars.count_per_usecond); } else{ // NOTE(allen): Just guess. - win32vars.count_per_usecond = 1; + win32vars.count_per_usecond = 1.f; + LOG(system, "Did not get performance frequency, just guessing with 1.\n"); } - Assert(win32vars.count_per_usecond != 0); + Assert(win32vars.count_per_usecond > 0.f); // // Main Loop // + LOG(system, "Initializing application variables\n"); win32vars.app.init(system, &win32vars.target, &memory_vars, win32vars.clipboard_contents, current_directory, win32vars.custom_api); system_memory_free(current_directory.str, 0); - b32 keep_playing = 1; - win32vars.first = 1; + b32 keep_playing = true; + win32vars.first = true; timeBeginPeriod(1); if (win32vars.settings.fullscreen_window){ @@ -2291,6 +2297,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS SetActiveWindow(win32vars.window_handle); ShowWindow(win32vars.window_handle, SW_SHOW); + LOG(system, "Beginning main loop\n"); u64 timer_start = Win32HighResolutionTime(); system_acquire_lock(FRAME_LOCK); MSG msg;