END_TEST;
}
+int UtcDaliBmp32bpp(void)
+{
+ ImageDetails image(TEST_IMAGE_DIR "/test_32bpp.bmp", 127u, 64u);
+
+ // Note : Currently we hard-overrite alpha channel as 255.
+ // Please fix UTC if we change current policy.
+ TestImageLoading(image, BmpLoaders);
+
+ END_TEST;
+}
int UtcDaliBmpRGB8(void)
{
ImageDetails image(TEST_IMAGE_DIR "/w3c_home_256.bmp", 72u, 48u);
switch(infoHeader.compression)
{
case 0:
+ {
switch(infoHeader.bitsPerPixel)
{
case 32:
+ {
pixelFormat = Pixel::BGR8888;
break;
+ }
case 24:
+ {
if(fileHeader.offset == FileHeaderOffsetOfRGB24V5) //0x8A
{
customizedFormat = BMP_RGB24V5;
pixelFormat = Pixel::RGB888;
}
break;
+ }
case 16:
+ {
customizedFormat = BMP_RGB555;
break;
+ }
case 8:
+ {
customizedFormat = BMP_RGB8;
break;
+ }
case 4: // RGB4
+ {
customizedFormat = BMP_RGB4;
break;
+ }
case 1: //RGB1
+ {
customizedFormat = BMP_RGB1;
break;
+ }
+
default:
+ {
DALI_LOG_ERROR("%d bits per pixel not supported for BMP files\n", infoHeader.bitsPerPixel);
return false;
+ }
}
break;
+ }
case 1: //// RLE8
{
if(infoHeader.bitsPerPixel == 8)
break;
}
default:
+ {
DALI_LOG_ERROR("Compression not supported for BMP files\n");
return false;
+ }
}
bool topDown = false;
break;
}
default:
+ {
if(pixelFormat == Pixel::RGB565)
{
pixelBufferW = ((imageW & 3) != 0) ? imageW + 4 - (imageW & 3) : imageW;
newPixelFormat = pixelFormat;
}
break;
+ }
}
bitmap = Dali::Devel::PixelBuffer::New(pixelBufferW, pixelBufferH, newPixelFormat);
break;
}
+ // If 32 bit mode then Alpha pixels must be ignored.
+ // BGR8888 format doesn't seem to be supported by graphics-api
+ if(infoHeader.bitsPerPixel == 32)
+ {
+ for(unsigned int i = 3; i < rowStride; i += 4)
+ {
+ pixelsIterator[i] = 255u;
+ }
+ }
+
// If 24 bit mode then swap Blue and Red pixels
// BGR888 doesn't seem to be supported by dali-core
if(infoHeader.bitsPerPixel == 24)