From 28e258b5dc0bb11f0ccb0f46a079f41ad43665c3 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 27 Jan 2024 10:46:41 -0800 Subject: [PATCH] dont assume valid slice from process memory cache grab --- src/df/gfx/df_gfx.c | 4 ++-- src/df/gfx/df_views.c | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/df/gfx/df_gfx.c b/src/df/gfx/df_gfx.c index 0878b83e..dc3dccad 100644 --- a/src/df/gfx/df_gfx.c +++ b/src/df/gfx/df_gfx.c @@ -6203,9 +6203,9 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D if(box->squish != 0) { Vec2F32 box_dim = dim_2f32(box->rect); - Mat3x3F32 box2origin_xform = make_translate_3x3f32(v2f32(-box->rect.x0 - box_dim.x/2, -box->rect.y0)); + Mat3x3F32 box2origin_xform = make_translate_3x3f32(v2f32(-box->rect.x0 - box_dim.x/8, -box->rect.y0)); Mat3x3F32 scale_xform = make_scale_3x3f32(v2f32(1-box->squish, 1-box->squish)); - Mat3x3F32 origin2box_xform = make_translate_3x3f32(v2f32(box->rect.x0 + box_dim.x/2, box->rect.y0)); + Mat3x3F32 origin2box_xform = make_translate_3x3f32(v2f32(box->rect.x0 + box_dim.x/8, box->rect.y0)); Mat3x3F32 xform = mul_3x3f32(origin2box_xform, mul_3x3f32(scale_xform, box2origin_xform)); d_push_xform2d(xform); } diff --git a/src/df/gfx/df_views.c b/src/df/gfx/df_views.c index dd48d56d..4cbb21fb 100644 --- a/src/df/gfx/df_views.c +++ b/src/df/gfx/df_views.c @@ -987,12 +987,15 @@ df_eval_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_EvalW size = Min(size, 64); Rng1U64 vaddr_rng = r1u64(row->eval.offset, row->eval.offset+size); CTRL_ProcessMemorySlice slice = ctrl_query_cached_data_from_process_vaddr_range(scratch.arena, process->ctrl_machine_id, process->ctrl_handle, vaddr_rng); - for(U64 idx = 0; idx < (size+63)/64; idx += 1) + if(slice.byte_changed_flags != 0) { - if(slice.byte_changed_flags[idx] != 0) + for(U64 idx = 0; idx < (size+63)/64; idx += 1) { - row_is_fresh = 1; - break; + if(slice.byte_changed_flags[idx] != 0) + { + row_is_fresh = 1; + break; + } } } }break;