reticulatedpines / magiclantern_simplified

A Git based version of Magic Lantern, for those unwilling or unable to work using Mercurial. The vast majority of branches have been removed, with those thought to be important brought in individually and merged.
GNU General Public License v2.0
147 stars 51 forks source link

D678: Broken `clrscr()` due to how we handle opacity #31

Open kitor opened 2 years ago

kitor commented 2 years ago

bmp.c does

BMP_LOCK( bmp_fill( 0x0, BMP_W_MINUS, BMP_H_MINUS, BMP_TOTAL_WIDTH, BMP_TOTAL_HEIGHT ); )

Color with index 0 is RGBA #00000000. Current redraw code simply ignores it, which means we don't clear RGBA buffer. This ends up not erasing background in some circumstances, like Arkanoid.

IMO since D45 explicitly erased whole Canon buffer that we used, on FEATURE_VRAM_RGBA we should erase both indexed and RGBA buffers.