Wow, another year has passed already. This means I had some time to polish up the program a lot! It's been published as a beta on Github. If there's no major issues then I'll make it a full release.
Download: v2.1.0-beta.1
I started by splitting the huge main.cpp file into a bunch of smaller files. I also decided to add limited versions of std::vector, list, and map. This increased the file size but also made it significantly easier to improve the program. Some small things this allowed was alphabetically sorting picture names, and rollover scrolling when going past the end of a list.
It also allowed much bigger features! Caching the pointer to subimages almost halved the time to re-draw a full picture! This is because searching through the VAT had a large performance penalty especially with large images with tons of appvars. Bypassing the VAT reduced the overhead significantly.
I also added screen shifting which massively improved panning around large images. Rather than clearing the screen and redrawing the entire image, I copy the portion of the image that will be kept after the pan is complete, paste it in the new location, then I just draw any missing subimages to complete the picture.
Lastly, I fixed an issue where the zoom feature wasn't always zooming in. Now it will properly zoom in and out by by 10%. It will also zoom out significantly further, almost to the point where you can't make out the original image. Not super useful but still fun.
Download: v2.1.0-beta.1
I started by splitting the huge main.cpp file into a bunch of smaller files. I also decided to add limited versions of std::vector, list, and map. This increased the file size but also made it significantly easier to improve the program. Some small things this allowed was alphabetically sorting picture names, and rollover scrolling when going past the end of a list.
It also allowed much bigger features! Caching the pointer to subimages almost halved the time to re-draw a full picture! This is because searching through the VAT had a large performance penalty especially with large images with tons of appvars. Bypassing the VAT reduced the overhead significantly.
I also added screen shifting which massively improved panning around large images. Rather than clearing the screen and redrawing the entire image, I copy the portion of the image that will be kept after the pan is complete, paste it in the new location, then I just draw any missing subimages to complete the picture.
Lastly, I fixed an issue where the zoom feature wasn't always zooming in. Now it will properly zoom in and out by by 10%. It will also zoom out significantly further, almost to the point where you can't make out the original image. Not super useful but still fun.
