changed the BMP -> Be Bitmap translation to always store 0xFF (opaque) as the alpha value for each pixel in the image. this value should be ignored, so it shouldn't matter, but I did this so that the alpha value would not vary (which would make Unit Testing harder)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@906 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1449,6 +1449,7 @@ translate_from_bmpnpal_to_bits(BPositionIO *inSource,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// perform the actual translation
|
// perform the actual translation
|
||||||
|
memset(bitsRowData, 0xff, bitsRowBytes);
|
||||||
ssize_t rd = inSource->Read(bmpRowData, bmpRowBytes);
|
ssize_t rd = inSource->Read(bmpRowData, bmpRowBytes);
|
||||||
while (rd == bmpRowBytes) {
|
while (rd == bmpRowBytes) {
|
||||||
uint8 *pBitsPixel = bitsRowData;
|
uint8 *pBitsPixel = bitsRowData;
|
||||||
@@ -1553,8 +1554,7 @@ translate_from_bmppal_to_bits(BPositionIO *inSource,
|
|||||||
delete[] bmpRowData;
|
delete[] bmpRowData;
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
for (int32 i = 3; i < bitsRowBytes; i += 4)
|
memset(bitsRowData, 0xff, bitsRowBytes);
|
||||||
bitsRowData[i] = 0xff;
|
|
||||||
ssize_t rd = inSource->Read(bmpRowData, bmpRowBytes);
|
ssize_t rd = inSource->Read(bmpRowData, bmpRowBytes);
|
||||||
while (rd == bmpRowBytes) {
|
while (rd == bmpRowBytes) {
|
||||||
for (uint32 i = 0; i < msheader.width; i++) {
|
for (uint32 i = 0; i < msheader.width; i++) {
|
||||||
@@ -1609,7 +1609,7 @@ void
|
|||||||
pixelcpy(uint8 *dest, uint32 pixel, uint32 count)
|
pixelcpy(uint8 *dest, uint32 pixel, uint32 count)
|
||||||
{
|
{
|
||||||
for (uint32 i = 0; i < count; i++) {
|
for (uint32 i = 0; i < count; i++) {
|
||||||
memcpy(dest, &pixel, 4);
|
memcpy(dest, &pixel, 3);
|
||||||
dest += 4;
|
dest += 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1663,6 +1663,7 @@ translate_from_bmppalr_to_bits(BPositionIO *inSource,
|
|||||||
uint8 *bitsRowData = new uint8[bitsRowBytes];
|
uint8 *bitsRowData = new uint8[bitsRowBytes];
|
||||||
if (!bitsRowData)
|
if (!bitsRowData)
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
memset(bitsRowData, 0xff, bitsRowBytes);
|
||||||
uint32 bmppixcol = 0, bmppixrow = 0;
|
uint32 bmppixcol = 0, bmppixrow = 0;
|
||||||
uint32 defaultcolor = 0;
|
uint32 defaultcolor = 0;
|
||||||
memcpy(&defaultcolor, palette, 4);
|
memcpy(&defaultcolor, palette, 4);
|
||||||
@@ -1695,7 +1696,7 @@ translate_from_bmppalr_to_bits(BPositionIO *inSource,
|
|||||||
for (uint8 i = 0; i < count; i++) {
|
for (uint8 i = 0; i < count; i++) {
|
||||||
index = (indices >> (bitsPerPixel * ((pixelsPerByte - 1) -
|
index = (indices >> (bitsPerPixel * ((pixelsPerByte - 1) -
|
||||||
(i % pixelsPerByte)))) & mask;
|
(i % pixelsPerByte)))) & mask;
|
||||||
memcpy(bitsRowData + (bmppixcol*4), palette + (index*4), 4);
|
memcpy(bitsRowData + (bmppixcol*4), palette + (index*4), 3);
|
||||||
bmppixcol++;
|
bmppixcol++;
|
||||||
}
|
}
|
||||||
// special code
|
// special code
|
||||||
@@ -1826,7 +1827,7 @@ translate_from_bmppalr_to_bits(BPositionIO *inSource,
|
|||||||
(bitsPerPixel * ((pixelsPerByte - 1) -
|
(bitsPerPixel * ((pixelsPerByte - 1) -
|
||||||
(i % pixelsPerByte)))) & mask;
|
(i % pixelsPerByte)))) & mask;
|
||||||
memcpy(bitsRowData + (bmppixcol * 4),
|
memcpy(bitsRowData + (bmppixcol * 4),
|
||||||
palette + (index * 4), 4);
|
palette + (index * 4), 3);
|
||||||
bmppixcol++;
|
bmppixcol++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user