Here I propose two new modules (panel and grafgrid) along with some changes to z-term, that will help build new graphics handling without duplication and while keeping the logic of graphics handling cross-platform. This is not an exhaustive list of steps but could form a barebone structure to develop further.
The two new modules handle all the hard work of panel tracking and efficient redraws, so that all the frontend has to do, much like z-term, is draw the right things when it's told to. Both new modules should be relatively easy to build using unit tests.
The upshot of this is that we draw the graphics to a separate canvas to the term display, and then blit them onto the final display surface one after the other, perhaps double-buffering if appropriate.
TO RESOLVE:
- if we are to transition for separate graphic files per tile, then maybe we should include a module for managing that, too. but the current attr/char method is locked in for now, until the above system works on all curren