Add offset to window scaling

main
En Yi 2024-10-12 15:08:59 +08:00
parent 44911658d0
commit 5eb7561340
1 changed files with 6 additions and 1 deletions

View File

@ -262,16 +262,21 @@ inline void render_scene(Scene_t* scene)
float wscale = (curr_width / original_size.x); float wscale = (curr_width / original_size.x);
float hscale = (curr_height / original_size.y); float hscale = (curr_height / original_size.y);
float min_dim = (wscale > hscale) ? hscale : wscale; 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; wscale = min_dim;
hscale = min_dim; hscale = min_dim;
Rectangle draw_rec = { Rectangle draw_rec = {
0,0, 0,0,
scene->engine->intended_window_size.x, scene->engine->intended_window_size.x,
scene->engine->intended_window_size.y scene->engine->intended_window_size.y
}; };
Rectangle draw_pos = { 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.width * wscale, draw_rec.height * hscale
}; };
draw_rec.y *= -1; draw_rec.y *= -1;