BBitmap: Restore special-casing for B_RGB32 in SetBits.

This reverts commit 6211ae2575.

It breaks multiple applications that worked fine on BeOS,
so clearly this tweak was correct after all, or at least mostly correct.

Change-Id: I3b228ba2119dd33067b8defedd6db4ae9ead9124
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8537
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
(cherry picked from commit 8500b11c43)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8597
This commit is contained in:
waddlesplash 2024-11-12 22:03:33 +00:00
parent 0928b28f11
commit e02bbb9065

View File

@ -665,7 +665,11 @@ BBitmap::SetBits(const void* data, int32 length, int32 offset,
int32 inBPR = -1; int32 inBPR = -1;
// tweaks to mimic R5 behavior // tweaks to mimic R5 behavior
if (error == B_OK) { if (error == B_OK) {
if (colorSpace == B_CMAP8 && fColorSpace != B_CMAP8) { if (colorSpace == B_RGB32) {
// B_RGB32 means actually unpadded B_RGB24_BIG
colorSpace = B_RGB24_BIG;
inBPR = width * 3;
} else if (colorSpace == B_CMAP8 && fColorSpace != B_CMAP8) {
// If in color space is B_CMAP8, but the bitmap's is another one, // If in color space is B_CMAP8, but the bitmap's is another one,
// ignore source data row padding. // ignore source data row padding.
inBPR = width; inBPR = width;