Dizzying Defines


#1

There appears to be a lot of defines for how to set up a project and how it affects it. Is there some resource where are these are laid out in a way that makes sense?

Or am I missing some way to have all this set up for me?

I’m just trying to set the display to 220x176 @ 30 fps 2 bpp.


#2

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

or

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


#3

Yeah, I understand they are necessary. Just in the current state is very difficult to decipher.

It may be helpful to add a reference page to the wiki. Starting with how to set up the various display modes, what the limitations are of each (including frame rate achievable).


#4

There are not too many defines you normally need, but I agree they should be listed in Wiki.

The fps depends also on how big area of the screen you update per frame. Pokitto supports screen persistence so there is no need to update the whole sceen every time.