Kaydet (Commit) 323f1376 authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Use the new THIRTYTWO_BIT_TC_MASK_RGBA format for Android and iOS

Change-Id: I7cc8c5943454edea7fdef50b125d0baa95fc3f8b
üst fd3c83d5
......@@ -702,7 +702,7 @@ public:
sal_uLong nSalFrameStyle,
SystemParentData *pSysParent )
: SvpSalFrame( pInstance, pParent, nSalFrameStyle,
true, basebmp::Format::THIRTYTWO_BIT_TC_MASK, // FIXME: Or THIRTYTWO_BIT_TC_MASK_ARGB?
true, basebmp::Format::THIRTYTWO_BIT_TC_MASK_RGBA,
pSysParent )
{
enableDamageTracker();
......
......@@ -59,8 +59,11 @@ bool SvpSalBitmap::Create( const Size& rSize,
case 16: nFormat = Format::SIXTEEN_BIT_LSB_TC_MASK; break;
#endif
case 24: nFormat = Format::TWENTYFOUR_BIT_TC_MASK; break;
// FIXME: Should this for Android be THIRTYTWO_BIT_TC_MASK_ARGB?
#if defined(ANDROID) || defined(IOS)
case 32: nFormat = Format::THIRTYTWO_BIT_TC_MASK_RGBA; break;
#else
case 32: nFormat = Format::THIRTYTWO_BIT_TC_MASK; break;
#endif
}
B2IVector aSize( rSize.Width(), rSize.Height() );
if( aSize.getX() == 0 )
......@@ -199,13 +202,40 @@ BitmapBuffer* SvpSalBitmap::AcquireBuffer( bool )
nBitCount = 24;
pBuf->mnFormat = BMP_FORMAT_24BIT_TC_BGR;
break;
case Format::THIRTYTWO_BIT_TC_MASK:
case Format::THIRTYTWO_BIT_TC_MASK_BGRA:
nBitCount = 32;
pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
#ifdef OSL_BIGENDIAN
pBuf->maColorMask = ColorMask( 0x0000ff00, 0x00ff0000, 0xff000000 );
#else
pBuf->maColorMask = ColorMask( 0x00ff0000, 0x0000ff00, 0x000000ff );
#endif
break;
case Format::THIRTYTWO_BIT_TC_MASK_ARGB:
nBitCount = 32;
pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
#ifdef OSL_BIGENDIAN
pBuf->maColorMask = ColorMask( 0x00ff0000, 0x0000ff00, 0x000000ff );
#else
pBuf->maColorMask = ColorMask( 0x0000ff00, 0x00ff0000, 0xff000000 );
#endif
break;
case Format::THIRTYTWO_BIT_TC_MASK_ABGR:
nBitCount = 32;
pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
#ifdef OSL_BIGENDIAN
pBuf->maColorMask = ColorMask( 0x000000ff, 0x0000ff00, 0x00ff0000 );
#else
pBuf->maColorMask = ColorMask( 0xff000000, 0x00ff0000, 0x0000ff00 );
#endif
break;
case Format::THIRTYTWO_BIT_TC_MASK_RGBA:
nBitCount = 32;
pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
#ifdef OSL_BIGENDIAN
pBuf->maColorMask = ColorMask( 0x0000ff, 0x00ff00, 0xff0000 );
pBuf->maColorMask = ColorMask( 0xff000000, 0x00ff0000, 0x0000ff00 );
#else
pBuf->maColorMask = ColorMask( 0xff0000, 0x00ff00, 0x0000ff );
pBuf->maColorMask = ColorMask( 0x000000ff, 0x0000ff00, 0x00ff0000 );
#endif
break;
......
......@@ -279,7 +279,10 @@ sal_uInt32 SvpElement::getBitCountFromScanlineFormat( sal_Int32 nFormat )
case Format::TWENTYFOUR_BIT_TC_MASK:
nBitCount = 24;
break;
case Format::THIRTYTWO_BIT_TC_MASK:
case Format::THIRTYTWO_BIT_TC_MASK_BGRA:
case Format::THIRTYTWO_BIT_TC_MASK_ARGB:
case Format::THIRTYTWO_BIT_TC_MASK_ABGR:
case Format::THIRTYTWO_BIT_TC_MASK_RGBA:
nBitCount = 32;
break;
default:
......
......@@ -116,7 +116,10 @@ void SvpSalGraphics::setDevice( basebmp::BitmapDeviceSharedPtr& rDevice )
case basebmp::Format::SIXTEEN_BIT_LSB_TC_MASK:
case basebmp::Format::SIXTEEN_BIT_MSB_TC_MASK:
case basebmp::Format::TWENTYFOUR_BIT_TC_MASK:
case basebmp::Format::THIRTYTWO_BIT_TC_MASK:
case basebmp::Format::THIRTYTWO_BIT_TC_MASK_BGRA:
case basebmp::Format::THIRTYTWO_BIT_TC_MASK_ARGB:
case basebmp::Format::THIRTYTWO_BIT_TC_MASK_ABGR:
case basebmp::Format::THIRTYTWO_BIT_TC_MASK_RGBA:
m_eTextFmt = basebmp::Format::EIGHT_BIT_GREY;
break;
default:
......
......@@ -83,7 +83,7 @@ sal_Bool SvpSalVirtualDevice::SetSize( long nNewDX, long nNewDY )
case 24: nFormat = Format::TWENTYFOUR_BIT_TC_MASK; break;
case 32: nFormat = Format::THIRTYTWO_BIT_TC_MASK; break;
#if defined(ANDROID) || defined(IOS)
case 0: nFormat = Format::THIRTYTWO_BIT_TC_MASK; break;
case 0: nFormat = Format::THIRTYTWO_BIT_TC_MASK_RGBA; break;
#else
case 0: nFormat = Format::TWENTYFOUR_BIT_TC_MASK; break;
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment