diff options
Diffstat (limited to 'vcl/headless/svpvd.cxx')
-rw-r--r-- | vcl/headless/svpvd.cxx | 44 |
1 files changed, 16 insertions, 28 deletions
diff --git a/vcl/headless/svpvd.cxx b/vcl/headless/svpvd.cxx index e5a20b58fcac..d85cd8c7da29 100644 --- a/vcl/headless/svpvd.cxx +++ b/vcl/headless/svpvd.cxx @@ -20,6 +20,7 @@ #ifndef IOS #include "headless/svpbmp.hxx" +#include "headless/svpinst.hxx" #include "headless/svpvd.hxx" #include "headless/svpgdi.hxx" @@ -63,36 +64,23 @@ bool SvpSalVirtualDevice::SetSizeUsingBuffer( long nNewDX, long nNewDY, const ba aDevSize.setY( 1 ); if( ! m_aDevice.get() || m_aDevice->getSize() != aDevSize ) { - basebmp::Format nFormat = SVP_DEFAULT_BITMAP_FORMAT; - std::vector< basebmp::Color > aDevPal; - switch( m_nBitCount ) + SvpSalInstance* pInst = SvpSalInstance::s_pDefaultInstance; + assert( pInst ); + basebmp::Format nFormat = pInst->getFormatForBitCount( m_nBitCount ); + + if ( m_nBitCount == 1 ) { - case 1: nFormat = FORMAT_ONE_BIT_MSB_PAL; - aDevPal.reserve(2); - aDevPal.push_back( basebmp::Color( 0, 0, 0 ) ); - aDevPal.push_back( basebmp::Color( 0xff, 0xff, 0xff ) ); - break; - case 4: nFormat = FORMAT_FOUR_BIT_MSB_PAL; break; - case 8: nFormat = FORMAT_EIGHT_BIT_PAL; break; -#ifdef OSL_BIGENDIAN - case 16: nFormat = FORMAT_SIXTEEN_BIT_MSB_TC_MASK; break; -#else - case 16: nFormat = FORMAT_SIXTEEN_BIT_LSB_TC_MASK; break; -#endif - case 24: nFormat = FORMAT_TWENTYFOUR_BIT_TC_MASK; break; - case 32: nFormat = FORMAT_THIRTYTWO_BIT_TC_MASK_BGRA; break; -#ifdef ANDROID - case 0: nFormat = FORMAT_THIRTYTWO_BIT_TC_MASK_RGBA; break; -#else - case 0: nFormat = FORMAT_TWENTYFOUR_BIT_TC_MASK; break; -#endif + std::vector< basebmp::Color > aDevPal(2); + aDevPal.push_back( basebmp::Color( 0, 0, 0 ) ); + aDevPal.push_back( basebmp::Color( 0xff, 0xff, 0xff ) ); + m_aDevice = createBitmapDevice( aDevSize, false, nFormat, PaletteMemorySharedVector( new std::vector< basebmp::Color >(aDevPal) ) ); + } + else + { + m_aDevice = pBuffer ? + createBitmapDevice( aDevSize, false, nFormat, pBuffer, PaletteMemorySharedVector() ) + : createBitmapDevice( aDevSize, false, nFormat ); } - m_aDevice = aDevPal.empty() - ? ( pBuffer - ? createBitmapDevice( aDevSize, false, nFormat, pBuffer, PaletteMemorySharedVector() ) - : createBitmapDevice( aDevSize, false, nFormat ) - ) - : createBitmapDevice( aDevSize, false, nFormat, PaletteMemorySharedVector( new std::vector< basebmp::Color >(aDevPal) ) ); // update device in existing graphics for( std::list< SvpSalGraphics* >::iterator it = m_aGraphics.begin(); |