diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-12-07 13:34:01 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-12-07 20:48:41 +0000 |
commit | bc45215ec6e5d508415465ad3f619c3dbe23f7c8 (patch) | |
tree | 09b3fd7124e8b4274f8d5331cd4bfed1c943efff /vcl | |
parent | 48f0ba92a6e9828805ce6f5d87147b9d0dcefe3b (diff) |
Resolves: tdf#96224 don't fiddle around with a separate alpha buffer
use a format that supports alpha directly
now we can unify the android and linux cases as well and drop the
BGRX support
Change-Id: I3c845913691d8194822423005d308cfa7ef13ec3
Reviewed-on: https://gerrit.libreoffice.org/20440
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/headless/svpbmp.cxx | 20 | ||||
-rw-r--r-- | vcl/headless/svpgdi.cxx | 4 | ||||
-rw-r--r-- | vcl/inc/headless/svpgdi.hxx | 2 | ||||
-rw-r--r-- | vcl/qa/cppunit/BitmapTest.cxx | 2 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 2 |
5 files changed, 5 insertions, 25 deletions
diff --git a/vcl/headless/svpbmp.cxx b/vcl/headless/svpbmp.cxx index 02f1453ede59..e6d962f268b3 100644 --- a/vcl/headless/svpbmp.cxx +++ b/vcl/headless/svpbmp.cxx @@ -198,25 +198,6 @@ BitmapBuffer* SvpSalBitmap::AcquireBuffer( BitmapAccessMode ) nBitCount = 24; pBuf->mnFormat = BMP_FORMAT_24BIT_TC_BGR; break; - case Format::ThirtyTwoBitTcMaskBGRX: - { - nBitCount = 32; - pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK; -#ifdef OSL_BIGENDIAN - ColorMaskElement aRedMask(0x0000ff00); - ColorMaskElement aGreenMask(0x00ff0000); - ColorMaskElement aBlueMask(0xff000000); -#else - ColorMaskElement aRedMask(0x00ff0000); - ColorMaskElement aGreenMask(0x0000ff00); - ColorMaskElement aBlueMask(0x000000ff); -#endif - aBlueMask.CalcMaskShift(); - aRedMask.CalcMaskShift(); - aGreenMask.CalcMaskShift(); - pBuf->maColorMask = ColorMask(aRedMask, aGreenMask, aBlueMask); - break; - } case Format::ThirtyTwoBitTcMaskBGRA: { nBitCount = 32; @@ -457,7 +438,6 @@ sal_uInt32 SvpSalBitmap::getBitCountFromScanlineFormat( basebmp::Format nFormat case Format::TwentyFourBitTcMask: nBitCount = 24; break; - case Format::ThirtyTwoBitTcMaskBGRX: case Format::ThirtyTwoBitTcMaskBGRA: case Format::ThirtyTwoBitTcMaskARGB: case Format::ThirtyTwoBitTcMaskABGR: diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx index e610ad4c87a2..94871be0cc0a 100644 --- a/vcl/headless/svpgdi.cxx +++ b/vcl/headless/svpgdi.cxx @@ -308,7 +308,7 @@ namespace sal_Int32 nStride = rBuffer->getScanlineStride(); cairo_format_t nFormat; if (rBuffer->getScanlineFormat() == SVP_CAIRO_FORMAT) - nFormat = CAIRO_FORMAT_RGB24; + nFormat = CAIRO_FORMAT_ARGB32; else nFormat = CAIRO_FORMAT_A1; return (cairo_format_stride_for_width(nFormat, size.getX()) == nStride); @@ -1305,7 +1305,7 @@ cairo_surface_t* SvpSalGraphics::createCairoSurface(const basebmp::BitmapDeviceS basebmp::RawMemorySharedArray data = rBuffer->getBuffer(); cairo_format_t nFormat; if (rBuffer->getScanlineFormat() == SVP_CAIRO_FORMAT) - nFormat = CAIRO_FORMAT_RGB24; + nFormat = CAIRO_FORMAT_ARGB32; else nFormat = CAIRO_FORMAT_A1; cairo_surface_t *target = diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx index 1adbc72b2819..ab675a9ad836 100644 --- a/vcl/inc/headless/svpgdi.hxx +++ b/vcl/inc/headless/svpgdi.hxx @@ -41,7 +41,7 @@ #ifdef ANDROID # define SVP_CAIRO_FORMAT basebmp::Format::ThirtyTwoBitTcMaskRGBA #else -# define SVP_CAIRO_FORMAT basebmp::Format::ThirtyTwoBitTcMaskBGRX +# define SVP_CAIRO_FORMAT basebmp::Format::ThirtyTwoBitTcMaskBGRA #endif class GlyphCache; diff --git a/vcl/qa/cppunit/BitmapTest.cxx b/vcl/qa/cppunit/BitmapTest.cxx index 33820e467c3b..eb393bc5c538 100644 --- a/vcl/qa/cppunit/BitmapTest.cxx +++ b/vcl/qa/cppunit/BitmapTest.cxx @@ -70,7 +70,7 @@ void BitmapTest::testConvert() { Bitmap::ScopedReadAccess pReadAccess(aBitmap); #if defined LINUX - // 24 bit Bitmap on SVP backend uses 32bit BGRX format + // 24 bit Bitmap on SVP backend uses 32bit BGRA format CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(32), pReadAccess->GetBitCount()); CPPUNIT_ASSERT_EQUAL(sal_uLong(40), pReadAccess->GetScanlineSize()); #else diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index 75fa0dfbb36e..62b2ac46125e 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -1511,7 +1511,7 @@ void GtkSalFrame::AllocateFrame() if( aFrameSize.getY() == 0 ) aFrameSize.setY( 1 ); m_aFrame = basebmp::createBitmapDevice(aFrameSize, true, SVP_CAIRO_FORMAT); - assert(cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, aFrameSize.getX()) == + assert(cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, aFrameSize.getX()) == m_aFrame->getScanlineStride()); m_aFrame->setDamageTracker( basebmp::IBitmapDeviceDamageTrackerSharedPtr(new DamageTracker(*this)) ); |