diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-12-01 13:27:52 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-12-06 09:51:17 +0100 |
commit | aa7d1c8f1411fe35465f265259cf1082adf05aea (patch) | |
tree | 4addfc59d01b1fd5470d660f5c48abbd28990fde /vcl/qa | |
parent | 0f82e9d42822e627edd1fb3b3c87e1f8a22136a4 (diff) |
make AlphaMask separate from Bitmap
Having it subclass Bitmap encourages confusion in passing it around, and
I need the extra type-safety for my work on merged-alpha
Change-Id: I35819f9b8ee609cbdaf865563c78531e397b529b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160235
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/qa')
-rw-r--r-- | vcl/qa/cppunit/BitmapExTest.cxx | 4 | ||||
-rw-r--r-- | vcl/qa/cppunit/canvasbitmaptest.cxx | 4 | ||||
-rw-r--r-- | vcl/qa/cppunit/skia/skia.cxx | 27 |
3 files changed, 19 insertions, 16 deletions
diff --git a/vcl/qa/cppunit/BitmapExTest.cxx b/vcl/qa/cppunit/BitmapExTest.cxx index 757cc8999538..8313de37fc60 100644 --- a/vcl/qa/cppunit/BitmapExTest.cxx +++ b/vcl/qa/cppunit/BitmapExTest.cxx @@ -205,7 +205,7 @@ void BitmapExTest::testCombineMaskOr() } AlphaMask aAlphaBitmap(Size(3, 3)); { - BitmapScopedWriteAccess pWriteAccess(aAlphaBitmap); + AlphaMask::ScopedWriteAccess pWriteAccess(aAlphaBitmap); pWriteAccess->Erase(Color(0xff, 0xff, 0xff)); for (int i = 1; i < 3; ++i) { @@ -217,7 +217,7 @@ void BitmapExTest::testCombineMaskOr() { AlphaMask aMask = aBitmap.CreateAlphaMask(COL_RED, 1); - Bitmap::ScopedReadAccess pAccess(aMask); + AlphaMask::ScopedReadAccess pAccess(aMask); // the output is a greyscale palette bitmap CPPUNIT_ASSERT_EQUAL(sal_uInt8(0xff), pAccess->GetPixelIndex(0, 0)); CPPUNIT_ASSERT_EQUAL(sal_uInt8(0xff), pAccess->GetPixelIndex(0, 1)); diff --git a/vcl/qa/cppunit/canvasbitmaptest.cxx b/vcl/qa/cppunit/canvasbitmaptest.cxx index 5aba5982427e..d2a62ad8bfce 100644 --- a/vcl/qa/cppunit/canvasbitmaptest.cxx +++ b/vcl/qa/cppunit/canvasbitmaptest.cxx @@ -675,7 +675,7 @@ void CanvasBitmapTest::runTest() AlphaMask aMask(Size(200,200)); aMask.Erase(255); { - BitmapScopedWriteAccess pAcc(aMask); + AlphaMask::ScopedWriteAccess pAcc(aMask); if( pAcc.get() ) { pAcc->SetFillColor(COL_ALPHA_OPAQUE); @@ -693,7 +693,7 @@ void CanvasBitmapTest::runTest() AlphaMask aAlpha(Size(200,200)); aAlpha.Erase(0); { - BitmapWriteAccess* pAcc = aAlpha.AcquireWriteAccess(); + BitmapWriteAccess* pAcc = aAlpha.AcquireAlphaWriteAccess(); if( pAcc ) { pAcc->SetFillColor(COL_ALPHA_OPAQUE); diff --git a/vcl/qa/cppunit/skia/skia.cxx b/vcl/qa/cppunit/skia/skia.cxx index b90b915e17ea..0caa1922280e 100644 --- a/vcl/qa/cppunit/skia/skia.cxx +++ b/vcl/qa/cppunit/skia/skia.cxx @@ -126,7 +126,8 @@ void SkiaTest::testDrawShaders() CPPUNIT_ASSERT(skiaBitmap->PreferSkShader()); AlphaMask alpha(Size(10, 10)); alpha.Erase(64); - SkiaSalBitmap* skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.ImplGetSalBitmap().get()); + SkiaSalBitmap* skiaAlpha + = dynamic_cast<SkiaSalBitmap*>(alpha.GetBitmap().ImplGetSalBitmap().get()); CPPUNIT_ASSERT(skiaAlpha->PreferSkShader()); device->DrawBitmap(Point(5, 5), bitmap); @@ -235,13 +236,15 @@ void SkiaTest::testAlphaBlendWith() AlphaMask bitmap(Size(10, 10)); // Test with erase colors set. alpha.Erase(64); - SkiaSalBitmap* skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.ImplGetSalBitmap().get()); + SkiaSalBitmap* skiaAlpha + = dynamic_cast<SkiaSalBitmap*>(alpha.GetBitmap().ImplGetSalBitmap().get()); CPPUNIT_ASSERT(skiaAlpha->unittestHasEraseColor()); bitmap.Erase(64); - SkiaSalBitmap* skiaBitmap = dynamic_cast<SkiaSalBitmap*>(bitmap.ImplGetSalBitmap().get()); + SkiaSalBitmap* skiaBitmap + = dynamic_cast<SkiaSalBitmap*>(bitmap.GetBitmap().ImplGetSalBitmap().get()); CPPUNIT_ASSERT(skiaBitmap->unittestHasEraseColor()); alpha.BlendWith(bitmap); - skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.ImplGetSalBitmap().get()); + skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.GetBitmap().ImplGetSalBitmap().get()); CPPUNIT_ASSERT(skiaAlpha->unittestHasEraseColor()); CPPUNIT_ASSERT_EQUAL(vcl::PixelFormat::N8_BPP, alpha.getPixelFormat()); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt8>(208), @@ -250,18 +253,18 @@ void SkiaTest::testAlphaBlendWith() // Test with images set. alpha.Erase(64); AlphaMask::ScopedReadAccess(alpha)->GetColor(0, 0); // Reading a pixel will create pixel data. - skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.ImplGetSalBitmap().get()); + skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.GetBitmap().ImplGetSalBitmap().get()); skiaAlpha->GetSkImage(); CPPUNIT_ASSERT(!skiaAlpha->unittestHasEraseColor()); CPPUNIT_ASSERT(skiaAlpha->unittestHasImage()); bitmap.Erase(64); - Bitmap::ScopedReadAccess(bitmap)->GetColor(0, 0); // Reading a pixel will create pixel data. - skiaBitmap = dynamic_cast<SkiaSalBitmap*>(bitmap.ImplGetSalBitmap().get()); + AlphaMask::ScopedReadAccess(bitmap)->GetColor(0, 0); // Reading a pixel will create pixel data. + skiaBitmap = dynamic_cast<SkiaSalBitmap*>(bitmap.GetBitmap().ImplGetSalBitmap().get()); skiaBitmap->GetSkImage(); CPPUNIT_ASSERT(!skiaBitmap->unittestHasEraseColor()); CPPUNIT_ASSERT(skiaBitmap->unittestHasImage()); alpha.BlendWith(bitmap); - skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.ImplGetSalBitmap().get()); + skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.GetBitmap().ImplGetSalBitmap().get()); CPPUNIT_ASSERT(skiaAlpha->unittestHasImage()); CPPUNIT_ASSERT_EQUAL(vcl::PixelFormat::N8_BPP, alpha.getPixelFormat()); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt8>(207), @@ -269,16 +272,16 @@ void SkiaTest::testAlphaBlendWith() // Test with erase color for alpha and image for other bitmap. alpha.Erase(64); - skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.ImplGetSalBitmap().get()); + skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.GetBitmap().ImplGetSalBitmap().get()); CPPUNIT_ASSERT(skiaAlpha->unittestHasEraseColor()); bitmap.Erase(64); - Bitmap::ScopedReadAccess(bitmap)->GetColor(0, 0); // Reading a pixel will create pixel data. - skiaBitmap = dynamic_cast<SkiaSalBitmap*>(bitmap.ImplGetSalBitmap().get()); + AlphaMask::ScopedReadAccess(bitmap)->GetColor(0, 0); // Reading a pixel will create pixel data. + skiaBitmap = dynamic_cast<SkiaSalBitmap*>(bitmap.GetBitmap().ImplGetSalBitmap().get()); skiaBitmap->GetSkImage(); CPPUNIT_ASSERT(!skiaBitmap->unittestHasEraseColor()); CPPUNIT_ASSERT(skiaBitmap->unittestHasImage()); alpha.BlendWith(bitmap); - skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.ImplGetSalBitmap().get()); + skiaAlpha = dynamic_cast<SkiaSalBitmap*>(alpha.GetBitmap().ImplGetSalBitmap().get()); CPPUNIT_ASSERT(skiaAlpha->unittestHasImage()); CPPUNIT_ASSERT_EQUAL(vcl::PixelFormat::N8_BPP, alpha.getPixelFormat()); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt8>(207), |