Maingron/MainOS

Pixel-Shift setting

Opened this issue · 1 comments

Add a setting that allows to shift images and UI automatically to prevent (OLED) Burn-in.
This is in the same scope as darkmode.
Developers can then ask if pixelshift is true and potentially optimize their code accordingly.

Maybe instead of a boolean, this could be an integer, where 0 and 1 would still be the "normal" 3-4 pixel values but any higher would consider shifting around UI Elements entirely. Maybe a tachometer in a racing game would then switch positions between bottom left, bottom center and bottom right between races.
And a very high value would just mean entire pixel scramble, though this would be increasingly hard to realize within HTML/CSS/JS. Maybe a CSS filter() could then help with that.

Alternatively, there could be an additional temp value for the setting indicating the "step" of pixelshift. For example, if we have a cycle with 4 steps, if the entire UI shifts every step (MainOS Desktop / Program frames PLUS Program contents), this would prevent that a program shifts towards top left while the entire MainOS shifts bottom right. (Because that would mean that UI within the program would be at exactly the same position again and only everything else shifted somewhere)

Once this setting is added, the first thing I recommend applying it to, is the desktop background image. Because who cares if it's 10 pixels to the left or the right. This would, in theory (if MainOS gets used much by someone), drastically decrease the potential burn-in caused by the background image PLUS it should be pretty easy to implement.