From 5410fac38e3c7643c1bdeaa3ed05e19823df24e5 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 12 Jan 2024 15:44:11 -0800 Subject: [PATCH] oops... fix first-time config initialization disaster! --- src/df/core/df_core.c | 2 +- src/df/gfx/df_gfx.c | 2 +- src/render/d3d11/render_d3d11.cpp | 14 +++++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/df/core/df_core.c b/src/df/core/df_core.c index a54d2f37..eb667946 100644 --- a/src/df/core/df_core.c +++ b/src/df/core/df_core.c @@ -7212,7 +7212,7 @@ df_core_begin_frame(Arena *arena, DF_CmdList *cmds, F32 dt) { for(DF_CfgSrc src = (DF_CfgSrc)0; src < DF_CfgSrc_COUNT; src = (DF_CfgSrc)(src+1)) { - cfg_load[src] = (load_cfg[src] && cfg_timestamps[src] != 0 && ((cfg_save[src] == 0 && df_state->cfg_cached_timestamp[src] != cfg_timestamps[src]) || cfg_files[src]->timestamp == 0)); + cfg_load[src] = (load_cfg[src] && ((cfg_save[src] == 0 && df_state->cfg_cached_timestamp[src] != cfg_timestamps[src]) || cfg_files[src]->timestamp == 0)); cfg_load_any = cfg_load_any || cfg_load[src]; } } diff --git a/src/df/gfx/df_gfx.c b/src/df/gfx/df_gfx.c index d08546cc..f1738b56 100644 --- a/src/df/gfx/df_gfx.c +++ b/src/df/gfx/df_gfx.c @@ -11530,7 +11530,7 @@ df_gfx_begin_frame(Arena *arena, DF_CmdList *cmds) } //- rjf: if config opened 0 windows, we need to do some sensible default - if(df_gfx_state->first_window == 0) + if(windows->first == &df_g_nil_cfg_node) { OS_Handle preferred_monitor = os_primary_monitor(); Vec2F32 monitor_dim = os_dim_from_monitor(preferred_monitor); diff --git a/src/render/d3d11/render_d3d11.cpp b/src/render/d3d11/render_d3d11.cpp index 22a4ed70..e46e3804 100644 --- a/src/render/d3d11/render_d3d11.cpp +++ b/src/render/d3d11/render_d3d11.cpp @@ -161,6 +161,11 @@ r_init(CmdLine *cmdln) feature_levels, ArrayCount(feature_levels), D3D11_SDK_VERSION, &r_d3d11_state->base_device, 0, &r_d3d11_state->base_device_ctx); + if(!SUCCEEDED(error)) + { + os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("D3D11 device creation failure. The process is terminating.")); + os_exit_process(1); + } //- rjf: enable break-on-error #if !defined(NDEBUG) @@ -168,9 +173,12 @@ r_init(CmdLine *cmdln) { ID3D11InfoQueue *info = 0; error = r_d3d11_state->base_device->QueryInterface(__uuidof(ID3D11InfoQueue), (void **)(&info)); - error = info->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, TRUE); - error = info->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, TRUE); - info->Release(); + if(SUCCEEDED(error)) + { + error = info->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, TRUE); + error = info->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, TRUE); + info->Release(); + } } #endif