From 5eb756134003b3c4e966ae496976238b5e23aa0e Mon Sep 17 00:00:00 2001 From: En Yi Date: Sat, 12 Oct 2024 15:08:59 +0800 Subject: [PATCH] Add offset to window scaling --- engine/engine.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/engine/engine.c b/engine/engine.c index d56139a..8c88237 100644 --- a/engine/engine.c +++ b/engine/engine.c @@ -262,16 +262,21 @@ inline void render_scene(Scene_t* scene) float wscale = (curr_width / original_size.x); float hscale = (curr_height / original_size.y); float min_dim = (wscale > hscale) ? hscale : wscale; + Vector2 offset = { + scene->engine->intended_window_size.x * (wscale - min_dim) / 2, + scene->engine->intended_window_size.y * (hscale - min_dim) / 2 + }; wscale = min_dim; hscale = min_dim; + Rectangle draw_rec = { 0,0, scene->engine->intended_window_size.x, scene->engine->intended_window_size.y }; Rectangle draw_pos = { - draw_rec.x * wscale, draw_rec.y * hscale, + draw_rec.x * wscale + offset.x, draw_rec.y * hscale + offset.y, draw_rec.width * wscale, draw_rec.height * hscale }; draw_rec.y *= -1;