Info regarding the engine


I am considering using the library, it looks great !!!

BUT, I have some questions :

  1. How do you achieve < 10kb RAM when doing alpha blending ?
  2. do you maintain a display list ? caching views ?
  3. does each view has a separate framebuffer ?

I am trying to verify what are the optimization strategies taken with this library before I try it

all the best

We use a very small VDB (buffer that can be 1/10 the size of your display or even less) and alpha blend smaller parts of the screen at a time. This reduces RAM usage. Because of this architecture, LittlevGL can work with all screen types regardless of whether they actually use a framebuffer. The driver on your end merely has to take a buffer of pixels and put them on the screen at a certain location.

The library keeps track of which objects are on screen, and whether or not they are invalidated (need to be redrawn). It only redraws what actually needs to be redrawn.

Not quite. Objects are drawn using high level methods (like lv_draw_rect, lv_draw_triangle, etc) that render using the VDB that I mentioned above.

I’m rewriting the documentation for the new version and just finished the Drawing part.

It might be also worth to take a look.