You are missing one thing:
Arduboy does not have different display modes (I think I recognize your name from those circles). The reason why we need defines is because due to code size, only the functions that are relevant to the current bit depth are included in the code.
If the GFX mode was selected runtime (as opposed to before compilation) the compiler would include 2- 4- and 8- bit versions of drawPixel, drawRectangle etc.
I know it is confusing and I’ve been meaning to overhaul the naming of the defines and the whole system
But basically it comes down to putting one of these in My_settings.h:
#define PROJ_HIRES 0 // 110x88x4-bit
define PROJ_HIRES 1 // 220x176x2-bpp mode
In the future we will have a UZEBOX kind of way of selecting a gfx mode by mode number that will make things a lot clearer