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 <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
waddlesplash
2024-11-13 01:42:41 +00:00
parent e4efb705e4
commit 8500b11c43
+5 -1
View File
@@ -665,7 +665,11 @@ BBitmap::SetBits(const void* data, int32 length, int32 offset,
int32 inBPR = -1;
// tweaks to mimic R5 behavior
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,
// ignore source data row padding.
inBPR = width;