summaryrefslogtreecommitdiff
path: root/gfx-iso/src
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2023-07-08 15:03:05 -0700
committer3gg <3gg@shellblade.net>2023-07-08 15:03:05 -0700
commit4fd6b58064bd26df93b05e39438dab649a65633c (patch)
tree4f7394f204933bdd6816d6dc5a38a2c16407c6d7 /gfx-iso/src
parent21a0d0c1c424f7db90c3282aad4bf6ad4ef809b7 (diff)
Add pixel scaling.
Diffstat (limited to 'gfx-iso/src')
-rw-r--r--gfx-iso/src/isogfx.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gfx-iso/src/isogfx.c b/gfx-iso/src/isogfx.c
index 17b88b2..ee33cad 100644
--- a/gfx-iso/src/isogfx.c
+++ b/gfx-iso/src/isogfx.c
@@ -603,6 +603,27 @@ void isogfx_draw_tile(IsoGfx* iso, int x, int y, Tile tile) {
603 draw_tile(iso, so, tile); 603 draw_tile(iso, so, tile);
604} 604}
605 605
606bool isogfx_resize(IsoGfx* iso, int screen_width, int screen_height) {
607 assert(iso);
608 assert(iso->screen);
609
610 const int current_size = iso->screen_width * iso->screen_height;
611 const int new_size = screen_width * screen_height;
612
613 if (new_size > current_size) {
614 Pixel* new_screen = calloc(new_size, sizeof(Pixel));
615 if (new_screen) {
616 free(iso->screen);
617 iso->screen = new_screen;
618 } else {
619 return false;
620 }
621 }
622 iso->screen_width = screen_width;
623 iso->screen_height = screen_height;
624 return true;
625}
626
606const Pixel* isogfx_get_screen_buffer(const IsoGfx* iso) { 627const Pixel* isogfx_get_screen_buffer(const IsoGfx* iso) {
607 assert(iso); 628 assert(iso);
608 return iso->screen; 629 return iso->screen;