I guess I’m having a bit of trouble with transparencies and opacities.
What I’m trying do is to have an application that has a background.
On top of it several “screens” with transparent backgrounds fly in and out.
The way this was achieved was by using a single screen and then having widgets that get hidden and made visible whenever a new “screen” is requested.
All works fine: fast, absolutely no problem.
The problem appears when opacity of widgets on top needs to be changed to a value that isn’t 255 - everything that isn’t 255 is treated as 0.
If I understand correctly, in order to make possible, LV_COLOR_SCREEN_TRANSP needs to be set to 1 - as we are drawing on top of widgets with transparent backgrounds.
This also works fine IF display driver is using full screen refresh, otherwise display goes all mental.
But configuring driver for full screen also makes things quite slow and busy.
The question here is if there a better way to achieve the same sort of thing.
Maybe this is a long way around.
In case some one is wondering.
A few experiences seem to show that a similar effect can be achieved by using masks.
These don’t require LV_COLOR_SCREEN_TRANSP and therefore don’t have problems with screen refresh. This also means that it performs better.