FS#12358 - Support for transparency in 32bit Bitmaps

Attached to Project: Rockbox
Opened by Thomas Martitz (kugel.) - Sunday, 30 October 2011, 19:25 GMT
Last edited by Thomas Martitz (kugel.) - Thursday, 22 December 2011, 15:56 GMT
Task Type Patches
Category User Interface
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


The second patch adds the ability to read and use alpha channel information in 32bit bitmaps. The font drawing function is re-used to enable alpha blending. I tested it with BMPs created by imagemagick and gimp, it's so far enabled for iconsets and skin engine (I don't think it works with resizing, so no support for it in album arts).

The first patch adds two APIs, lcd_bmp() and lcd_bmp_part() and is required for the second. It'll most probably committed anyway. It simplifies drawing bitmaps that come out of read_bmp_fd/_file.

Please give it a test and comment. I attach also 3 iconsets for testing. I tested in a few sims (e200, h300, h100, mr500) and RaaA so far.
This task depends upon

Closed by  Thomas Martitz (kugel.)
Thursday, 22 December 2011, 15:56 GMT
Reason for closing:  Accepted
Additional comments about closing:  r30937
Comment by Thomas Martitz (kugel.) - Wednesday, 02 November 2011, 20:16 GMT
Updated to support resizing.
Comment by Boris Gjenero (dreamlayers) - Thursday, 10 November 2011, 00:53 GMT
In r30944 I was getting crashes at "*bm_alpha = alpha>>4;", just below the "pack alpha channel for 2 pixels into 1 byte" comment. Playback would start reliably, but skipping a bunch of tracks led to the crash. In r30948 I set alpha_offset to zero when loading a JPEG. This fixes the problem.