diff options
author | Noel <noel.grandin@collabora.co.uk> | 2021-01-15 14:49:12 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-01-16 10:07:07 +0100 |
commit | 63a68064bb33f180b8a231f7524d99405d910226 (patch) | |
tree | 7ecf05b057c5ca4d80a48af045998a4b34484561 /vcl | |
parent | d534a4c7b45ff254b339e806c6a11f13d9ff0043 (diff) |
make the Color constructors explicitly specify transparency
to reduce the churn, we leave the existing constructor in place,
and add a clang plugin to detect when the value passed to the
existing constructor may contain transparency/alpha data.
i.e. we leave expressions like Color(0xffffff) alone, but
warn about any non-constant expression, and any expression
like Color(0xff000000)
Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
24 files changed, 231 insertions, 174 deletions
diff --git a/vcl/headless/CustomWidgetDraw.cxx b/vcl/headless/CustomWidgetDraw.cxx index 6ff10a34c7bb..b9341e648700 100644 --- a/vcl/headless/CustomWidgetDraw.cxx +++ b/vcl/headless/CustomWidgetDraw.cxx @@ -339,74 +339,87 @@ bool CustomWidgetDraw::updateSettings(AllSettings& rSettings) { StyleSettings aStyleSet = rSettings.GetStyleSettings(); - aStyleSet.SetFaceColor(aStyle.maFaceColor); - aStyleSet.SetCheckedColor(aStyle.maCheckedColor); - aStyleSet.SetLightColor(aStyle.maLightColor); - aStyleSet.SetLightBorderColor(aStyle.maLightBorderColor); - aStyleSet.SetShadowColor(aStyle.maShadowColor); - aStyleSet.SetDarkShadowColor(aStyle.maDarkShadowColor); - aStyleSet.SetDefaultButtonTextColor(aStyle.maDefaultButtonTextColor); - aStyleSet.SetButtonTextColor(aStyle.maButtonTextColor); - aStyleSet.SetDefaultActionButtonTextColor(aStyle.maDefaultActionButtonTextColor); - aStyleSet.SetActionButtonTextColor(aStyle.maActionButtonTextColor); - aStyleSet.SetFlatButtonTextColor(aStyle.maFlatButtonTextColor); - aStyleSet.SetDefaultButtonRolloverTextColor(aStyle.maDefaultButtonRolloverTextColor); - aStyleSet.SetButtonRolloverTextColor(aStyle.maButtonRolloverTextColor); + aStyleSet.SetFaceColor(Color(ColorTransparency, aStyle.maFaceColor)); + aStyleSet.SetCheckedColor(Color(ColorTransparency, aStyle.maCheckedColor)); + aStyleSet.SetLightColor(Color(ColorTransparency, aStyle.maLightColor)); + aStyleSet.SetLightBorderColor(Color(ColorTransparency, aStyle.maLightBorderColor)); + aStyleSet.SetShadowColor(Color(ColorTransparency, aStyle.maShadowColor)); + aStyleSet.SetDarkShadowColor(Color(ColorTransparency, aStyle.maDarkShadowColor)); + aStyleSet.SetDefaultButtonTextColor( + Color(ColorTransparency, aStyle.maDefaultButtonTextColor)); + aStyleSet.SetButtonTextColor(Color(ColorTransparency, aStyle.maButtonTextColor)); + aStyleSet.SetDefaultActionButtonTextColor( + Color(ColorTransparency, aStyle.maDefaultActionButtonTextColor)); + aStyleSet.SetActionButtonTextColor( + Color(ColorTransparency, aStyle.maActionButtonTextColor)); + aStyleSet.SetFlatButtonTextColor(Color(ColorTransparency, aStyle.maFlatButtonTextColor)); + aStyleSet.SetDefaultButtonRolloverTextColor( + Color(ColorTransparency, aStyle.maDefaultButtonRolloverTextColor)); + aStyleSet.SetButtonRolloverTextColor( + Color(ColorTransparency, aStyle.maButtonRolloverTextColor)); aStyleSet.SetDefaultActionButtonRolloverTextColor( - aStyle.maDefaultActionButtonRolloverTextColor); - aStyleSet.SetActionButtonRolloverTextColor(aStyle.maActionButtonRolloverTextColor); - aStyleSet.SetFlatButtonRolloverTextColor(aStyle.maFlatButtonRolloverTextColor); + Color(ColorTransparency, aStyle.maDefaultActionButtonRolloverTextColor)); + aStyleSet.SetActionButtonRolloverTextColor( + Color(ColorTransparency, aStyle.maActionButtonRolloverTextColor)); + aStyleSet.SetFlatButtonRolloverTextColor( + Color(ColorTransparency, aStyle.maFlatButtonRolloverTextColor)); aStyleSet.SetDefaultButtonPressedRolloverTextColor( - aStyle.maDefaultButtonPressedRolloverTextColor); - aStyleSet.SetButtonPressedRolloverTextColor(aStyle.maButtonPressedRolloverTextColor); + Color(ColorTransparency, aStyle.maDefaultButtonPressedRolloverTextColor)); + aStyleSet.SetButtonPressedRolloverTextColor( + Color(ColorTransparency, aStyle.maButtonPressedRolloverTextColor)); aStyleSet.SetDefaultActionButtonPressedRolloverTextColor( - aStyle.maDefaultActionButtonPressedRolloverTextColor); + Color(ColorTransparency, aStyle.maDefaultActionButtonPressedRolloverTextColor)); aStyleSet.SetActionButtonPressedRolloverTextColor( - aStyle.maActionButtonPressedRolloverTextColor); + Color(ColorTransparency, aStyle.maActionButtonPressedRolloverTextColor)); aStyleSet.SetFlatButtonPressedRolloverTextColor( - aStyle.maFlatButtonPressedRolloverTextColor); - aStyleSet.SetRadioCheckTextColor(aStyle.maRadioCheckTextColor); - aStyleSet.SetGroupTextColor(aStyle.maGroupTextColor); - aStyleSet.SetLabelTextColor(aStyle.maLabelTextColor); - aStyleSet.SetWindowColor(aStyle.maWindowColor); - aStyleSet.SetWindowTextColor(aStyle.maWindowTextColor); - aStyleSet.SetDialogColor(aStyle.maDialogColor); - aStyleSet.SetDialogTextColor(aStyle.maDialogTextColor); - aStyleSet.SetWorkspaceColor(aStyle.maWorkspaceColor); - aStyleSet.SetMonoColor(aStyle.maMonoColor); - aStyleSet.SetFieldColor(Color(aStyle.maFieldColor)); - aStyleSet.SetFieldTextColor(aStyle.maFieldTextColor); - aStyleSet.SetFieldRolloverTextColor(aStyle.maFieldRolloverTextColor); - aStyleSet.SetActiveColor(aStyle.maActiveColor); - aStyleSet.SetActiveTextColor(aStyle.maActiveTextColor); - aStyleSet.SetActiveBorderColor(aStyle.maActiveBorderColor); - aStyleSet.SetDeactiveColor(aStyle.maDeactiveColor); - aStyleSet.SetDeactiveTextColor(aStyle.maDeactiveTextColor); - aStyleSet.SetDeactiveBorderColor(aStyle.maDeactiveBorderColor); - aStyleSet.SetMenuColor(aStyle.maMenuColor); - aStyleSet.SetMenuBarColor(aStyle.maMenuBarColor); - aStyleSet.SetMenuBarRolloverColor(aStyle.maMenuBarRolloverColor); - aStyleSet.SetMenuBorderColor(aStyle.maMenuBorderColor); - aStyleSet.SetMenuTextColor(aStyle.maMenuTextColor); - aStyleSet.SetMenuBarTextColor(aStyle.maMenuBarTextColor); - aStyleSet.SetMenuBarRolloverTextColor(aStyle.maMenuBarRolloverTextColor); - aStyleSet.SetMenuBarHighlightTextColor(aStyle.maMenuBarHighlightTextColor); - aStyleSet.SetMenuHighlightColor(aStyle.maMenuHighlightColor); - aStyleSet.SetMenuHighlightTextColor(aStyle.maMenuHighlightTextColor); - aStyleSet.SetHighlightColor(aStyle.maHighlightColor); - aStyleSet.SetHighlightTextColor(aStyle.maHighlightTextColor); - aStyleSet.SetActiveTabColor(aStyle.maActiveTabColor); - aStyleSet.SetInactiveTabColor(aStyle.maInactiveTabColor); - aStyleSet.SetTabTextColor(aStyle.maTabTextColor); - aStyleSet.SetTabRolloverTextColor(aStyle.maTabRolloverTextColor); - aStyleSet.SetTabHighlightTextColor(aStyle.maTabHighlightTextColor); - aStyleSet.SetDisableColor(aStyle.maDisableColor); - aStyleSet.SetHelpColor(aStyle.maHelpColor); - aStyleSet.SetHelpTextColor(aStyle.maHelpTextColor); - aStyleSet.SetLinkColor(aStyle.maLinkColor); - aStyleSet.SetVisitedLinkColor(aStyle.maVisitedLinkColor); - aStyleSet.SetToolTextColor(aStyle.maToolTextColor); - aStyleSet.SetFontColor(aStyle.maFontColor); + Color(ColorTransparency, aStyle.maFlatButtonPressedRolloverTextColor)); + aStyleSet.SetRadioCheckTextColor(Color(ColorTransparency, aStyle.maRadioCheckTextColor)); + aStyleSet.SetGroupTextColor(Color(ColorTransparency, aStyle.maGroupTextColor)); + aStyleSet.SetLabelTextColor(Color(ColorTransparency, aStyle.maLabelTextColor)); + aStyleSet.SetWindowColor(Color(ColorTransparency, aStyle.maWindowColor)); + aStyleSet.SetWindowTextColor(Color(ColorTransparency, aStyle.maWindowTextColor)); + aStyleSet.SetDialogColor(Color(ColorTransparency, aStyle.maDialogColor)); + aStyleSet.SetDialogTextColor(Color(ColorTransparency, aStyle.maDialogTextColor)); + aStyleSet.SetWorkspaceColor(Color(ColorTransparency, aStyle.maWorkspaceColor)); + aStyleSet.SetMonoColor(Color(ColorTransparency, aStyle.maMonoColor)); + aStyleSet.SetFieldColor(Color(ColorTransparency, aStyle.maFieldColor)); + aStyleSet.SetFieldTextColor(Color(ColorTransparency, aStyle.maFieldTextColor)); + aStyleSet.SetFieldRolloverTextColor( + Color(ColorTransparency, aStyle.maFieldRolloverTextColor)); + aStyleSet.SetActiveColor(Color(ColorTransparency, aStyle.maActiveColor)); + aStyleSet.SetActiveTextColor(Color(ColorTransparency, aStyle.maActiveTextColor)); + aStyleSet.SetActiveBorderColor(Color(ColorTransparency, aStyle.maActiveBorderColor)); + aStyleSet.SetDeactiveColor(Color(ColorTransparency, aStyle.maDeactiveColor)); + aStyleSet.SetDeactiveTextColor(Color(ColorTransparency, aStyle.maDeactiveTextColor)); + aStyleSet.SetDeactiveBorderColor(Color(ColorTransparency, aStyle.maDeactiveBorderColor)); + aStyleSet.SetMenuColor(Color(ColorTransparency, aStyle.maMenuColor)); + aStyleSet.SetMenuBarColor(Color(ColorTransparency, aStyle.maMenuBarColor)); + aStyleSet.SetMenuBarRolloverColor(Color(ColorTransparency, aStyle.maMenuBarRolloverColor)); + aStyleSet.SetMenuBorderColor(Color(ColorTransparency, aStyle.maMenuBorderColor)); + aStyleSet.SetMenuTextColor(Color(ColorTransparency, aStyle.maMenuTextColor)); + aStyleSet.SetMenuBarTextColor(Color(ColorTransparency, aStyle.maMenuBarTextColor)); + aStyleSet.SetMenuBarRolloverTextColor( + Color(ColorTransparency, aStyle.maMenuBarRolloverTextColor)); + aStyleSet.SetMenuBarHighlightTextColor( + Color(ColorTransparency, aStyle.maMenuBarHighlightTextColor)); + aStyleSet.SetMenuHighlightColor(Color(ColorTransparency, aStyle.maMenuHighlightColor)); + aStyleSet.SetMenuHighlightTextColor( + Color(ColorTransparency, aStyle.maMenuHighlightTextColor)); + aStyleSet.SetHighlightColor(Color(ColorTransparency, aStyle.maHighlightColor)); + aStyleSet.SetHighlightTextColor(Color(ColorTransparency, aStyle.maHighlightTextColor)); + aStyleSet.SetActiveTabColor(Color(ColorTransparency, aStyle.maActiveTabColor)); + aStyleSet.SetInactiveTabColor(Color(ColorTransparency, aStyle.maInactiveTabColor)); + aStyleSet.SetTabTextColor(Color(ColorTransparency, aStyle.maTabTextColor)); + aStyleSet.SetTabRolloverTextColor(Color(ColorTransparency, aStyle.maTabRolloverTextColor)); + aStyleSet.SetTabHighlightTextColor( + Color(ColorTransparency, aStyle.maTabHighlightTextColor)); + aStyleSet.SetDisableColor(Color(ColorTransparency, aStyle.maDisableColor)); + aStyleSet.SetHelpColor(Color(ColorTransparency, aStyle.maHelpColor)); + aStyleSet.SetHelpTextColor(Color(ColorTransparency, aStyle.maHelpTextColor)); + aStyleSet.SetLinkColor(Color(ColorTransparency, aStyle.maLinkColor)); + aStyleSet.SetVisitedLinkColor(Color(ColorTransparency, aStyle.maVisitedLinkColor)); + aStyleSet.SetToolTextColor(Color(ColorTransparency, aStyle.maToolTextColor)); + aStyleSet.SetFontColor(Color(ColorTransparency, aStyle.maFontColor)); rSettings.SetStyleSettings(aStyleSet); diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx index 4bbd6f76ec5c..60366f1184de 100644 --- a/vcl/headless/svpgdi.cxx +++ b/vcl/headless/svpgdi.cxx @@ -2308,7 +2308,7 @@ Color SvpSalGraphics::getPixel( tools::Long nX, tools::Long nY ) sal_uInt8 b = unpremultiply_table[a][data[SVP_CAIRO_BLUE]]; sal_uInt8 g = unpremultiply_table[a][data[SVP_CAIRO_GREEN]]; sal_uInt8 r = unpremultiply_table[a][data[SVP_CAIRO_RED]]; - Color aColor(0xFF - a, r, g, b); + Color aColor(ColorAlpha, a, r, g, b); cairo_surface_destroy(target); return aColor; diff --git a/vcl/inc/bitmap/ScanlineTools.hxx b/vcl/inc/bitmap/ScanlineTools.hxx index 1e3ab5023638..c343cf34f61e 100644 --- a/vcl/inc/bitmap/ScanlineTools.hxx +++ b/vcl/inc/bitmap/ScanlineTools.hxx @@ -39,7 +39,7 @@ public: virtual Color readPixel() override { - const Color aColor(pData[4], pData[1], pData[2], pData[3]); + const Color aColor(ColorTransparency, pData[4], pData[1], pData[2], pData[3]); pData += 4; return aColor; } diff --git a/vcl/qa/cppunit/BitmapExTest.cxx b/vcl/qa/cppunit/BitmapExTest.cxx index 5e18b990f77d..5e0fe1dddfc6 100644 --- a/vcl/qa/cppunit/BitmapExTest.cxx +++ b/vcl/qa/cppunit/BitmapExTest.cxx @@ -37,17 +37,18 @@ void BitmapExTest::testGetPixelColor24_8() Bitmap aBitmap(Size(3, 3), 24); { BitmapScopedWriteAccess pWriteAccess(aBitmap); - pWriteAccess->Erase(Color(0x00, 0x00, 0xFF, 0x00)); + pWriteAccess->Erase(Color(ColorTransparency, 0x00, 0x00, 0xFF, 0x00)); } AlphaMask aMask(Size(3, 3)); { AlphaScopedWriteAccess pWriteAccess(aMask); - pWriteAccess->Erase(Color(0x00, 0xAA, 0xAA, 0xAA)); + pWriteAccess->Erase(Color(ColorTransparency, 0x00, 0xAA, 0xAA, 0xAA)); } BitmapEx aBitmapEx(aBitmap, aMask); - CPPUNIT_ASSERT_EQUAL(Color(0xAA, 0x00, 0xFF, 0x00), aBitmapEx.GetPixelColor(0, 0)); + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0xAA, 0x00, 0xFF, 0x00), + aBitmapEx.GetPixelColor(0, 0)); } void BitmapExTest::testGetPixelColor32() @@ -61,12 +62,13 @@ void BitmapExTest::testGetPixelColor32() Bitmap aBitmap(Size(3, 3), 32); { BitmapScopedWriteAccess pWriteAccess(aBitmap); - pWriteAccess->Erase(Color(0xAA, 0x00, 0xFF, 0x00)); + pWriteAccess->Erase(Color(ColorTransparency, 0xAA, 0x00, 0xFF, 0x00)); } BitmapEx aBitmapEx(aBitmap); - CPPUNIT_ASSERT_EQUAL(Color(0xAA, 0x00, 0xFF, 0x00), aBitmapEx.GetPixelColor(0, 0)); + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0xAA, 0x00, 0xFF, 0x00), + aBitmapEx.GetPixelColor(0, 0)); } void BitmapExTest::testTransformBitmapEx() diff --git a/vcl/qa/cppunit/BitmapProcessorTest.cxx b/vcl/qa/cppunit/BitmapProcessorTest.cxx index 2cc0cbe783d6..07e49b47ca1b 100644 --- a/vcl/qa/cppunit/BitmapProcessorTest.cxx +++ b/vcl/qa/cppunit/BitmapProcessorTest.cxx @@ -35,7 +35,7 @@ void BitmapProcessorTest::testDisabledImage() Bitmap aBitmap(Size(3, 3), 24); { BitmapScopedWriteAccess pWriteAccess(aBitmap); - pWriteAccess->Erase(Color(0x00, 0x00, 0xFF, 0x00)); + pWriteAccess->Erase(Color(ColorTransparency, 0x00, 0x00, 0xFF, 0x00)); } BitmapEx aBitmapEx(aBitmap); BitmapDisabledImageFilter aDisabledImageFilter; @@ -52,12 +52,12 @@ void BitmapProcessorTest::testDisabledImage() Bitmap aBitmap(Size(3, 3), 24); { BitmapScopedWriteAccess pWriteAccess(aBitmap); - pWriteAccess->Erase(Color(0x00, 0x00, 0xFF, 0x00)); + pWriteAccess->Erase(Color(ColorTransparency, 0x00, 0x00, 0xFF, 0x00)); } AlphaMask aMask(Size(3, 3)); { AlphaScopedWriteAccess pWriteAccess(aMask); - pWriteAccess->Erase(Color(0x00, 0xAA, 0xAA, 0xAA)); + pWriteAccess->Erase(Color(ColorTransparency, 0x00, 0xAA, 0xAA, 0xAA)); } BitmapEx aBitmapEx(aBitmap, aMask); diff --git a/vcl/qa/cppunit/BitmapTest.cxx b/vcl/qa/cppunit/BitmapTest.cxx index 56395358863b..0c96977a880a 100644 --- a/vcl/qa/cppunit/BitmapTest.cxx +++ b/vcl/qa/cppunit/BitmapTest.cxx @@ -562,7 +562,7 @@ void BitmapTest::testErase() { Bitmap::ScopedReadAccess pReadAccess(aBitmap); BitmapColor aColor(pReadAccess->GetPixel(0, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x11, 0x22, 0x33, 0x00), aColor); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x11, 0x22, 0x33, 0x00), aColor); } } @@ -577,20 +577,20 @@ void BitmapTest::testBitmap32() Bitmap aBitmap(Size(3, 3), 32); { BitmapScopedWriteAccess pWriteAccess(aBitmap); - pWriteAccess->Erase(Color(0xFF, 0x11, 0x22, 0x33)); - pWriteAccess->SetPixel(1, 1, BitmapColor(0x44, 0xFF, 0xBB, 0x00)); - pWriteAccess->SetPixel(2, 2, BitmapColor(0x99, 0x77, 0x66, 0x55)); + pWriteAccess->Erase(Color(ColorTransparency, 0xFF, 0x11, 0x22, 0x33)); + pWriteAccess->SetPixel(1, 1, BitmapColor(ColorTransparency, 0x44, 0xFF, 0xBB, 0x00)); + pWriteAccess->SetPixel(2, 2, BitmapColor(ColorTransparency, 0x99, 0x77, 0x66, 0x55)); } { Bitmap::ScopedReadAccess pReadAccess(aBitmap); BitmapColor aColor = pReadAccess->GetPixel(0, 0); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x00, 0xFF), aColor); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x00, 0xFF), aColor); aColor = pReadAccess->GetPixel(1, 1); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x44, 0xFF, 0xBB, 0x00), aColor); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x44, 0xFF, 0xBB, 0x00), aColor); aColor = pReadAccess->GetPixel(2, 2); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x99, 0x77, 0x66, 0x55), aColor); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x99, 0x77, 0x66, 0x55), aColor); } } diff --git a/vcl/qa/cppunit/ScanlineToolsTest.cxx b/vcl/qa/cppunit/ScanlineToolsTest.cxx index bf053d3bc890..c6751b827ca1 100644 --- a/vcl/qa/cppunit/ScanlineToolsTest.cxx +++ b/vcl/qa/cppunit/ScanlineToolsTest.cxx @@ -42,8 +42,9 @@ void ScanlineToolsTest::ScanlineTransformer_32_ARGB() pScanlineTransformer->startLine(aScanLine.data()); std::vector<Color> aColors{ - Color(0, 10, 250, 120), Color(50, 30, 230, 110), Color(100, 50, 210, 100), - Color(150, 70, 190, 90), Color(200, 90, 170, 80), + Color(ColorTransparency, 0, 10, 250, 120), Color(ColorTransparency, 50, 30, 230, 110), + Color(ColorTransparency, 100, 50, 210, 100), Color(ColorTransparency, 150, 70, 190, 90), + Color(ColorTransparency, 200, 90, 170, 80), }; for (Color const& aColor : aColors) @@ -70,8 +71,9 @@ void ScanlineToolsTest::ScanlineTransformer_24_BGR() pScanlineTransformer->startLine(aScanLine.data()); std::vector<Color> aColors{ - Color(0, 10, 250, 120), Color(50, 30, 230, 110), Color(100, 50, 210, 100), - Color(150, 70, 190, 90), Color(200, 90, 170, 80), + Color(ColorTransparency, 0, 10, 250, 120), Color(ColorTransparency, 50, 30, 230, 110), + Color(ColorTransparency, 100, 50, 210, 100), Color(ColorTransparency, 150, 70, 190, 90), + Color(ColorTransparency, 200, 90, 170, 80), }; for (Color const& aColor : aColors) @@ -91,8 +93,9 @@ void ScanlineToolsTest::ScanlineTransformer_24_BGR() void ScanlineToolsTest::ScanlineTransformer_8bit_Palette() { std::vector<Color> aColors{ - Color(0, 10, 250, 120), Color(50, 30, 230, 110), Color(100, 50, 210, 100), - Color(150, 70, 190, 90), Color(200, 90, 170, 80), + Color(ColorTransparency, 0, 10, 250, 120), Color(ColorTransparency, 50, 30, 230, 110), + Color(ColorTransparency, 100, 50, 210, 100), Color(ColorTransparency, 150, 70, 190, 90), + Color(ColorTransparency, 200, 90, 170, 80), }; BitmapPalette aPalette(256); diff --git a/vcl/qa/cppunit/bitmapcolor.cxx b/vcl/qa/cppunit/bitmapcolor.cxx index 7329564d46c4..f62e19dabcd5 100644 --- a/vcl/qa/cppunit/bitmapcolor.cxx +++ b/vcl/qa/cppunit/bitmapcolor.cxx @@ -137,7 +137,7 @@ void BitmapColorTest::colorClassConstructor() // Transparency / Alpha { - BitmapColor aBmpColor(Color(255, 128, 64, 0)); + BitmapColor aBmpColor(Color(ColorTransparency, 255, 128, 64, 0)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Red wrong", static_cast<sal_uInt8>(128), aBmpColor.GetRed()); CPPUNIT_ASSERT_EQUAL_MESSAGE("Green wrong", static_cast<sal_uInt8>(64), diff --git a/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx b/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx index 201d10e56fd3..bbf8a38da0f6 100644 --- a/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx +++ b/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx @@ -152,20 +152,23 @@ void BitmapRenderTest::testDrawAlphaBitmapEx() } // Check the bitmap has pixels we expect - CPPUNIT_ASSERT_EQUAL(Color(0xFF, 0x00, 0x00, 0x00), aBitmapEx.GetPixelColor(0, 0)); - CPPUNIT_ASSERT_EQUAL(Color(0x00, 0xFF, 0xFF, 0x00), aBitmapEx.GetPixelColor(1, 1)); - CPPUNIT_ASSERT_EQUAL(Color(0x7F, 0x00, 0xFF, 0x00), aBitmapEx.GetPixelColor(2, 2)); + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0xFF, 0x00, 0x00, 0x00), + aBitmapEx.GetPixelColor(0, 0)); + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0x00, 0xFF, 0xFF, 0x00), + aBitmapEx.GetPixelColor(1, 1)); + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0x7F, 0x00, 0xFF, 0x00), + aBitmapEx.GetPixelColor(2, 2)); pVDev->DrawBitmapEx(Point(), aBitmapEx); - CPPUNIT_ASSERT_EQUAL(Color(0x00, 0xFF, 0xFF, 0xFF), pVDev->GetPixel(Point(0, 0))); - CPPUNIT_ASSERT_EQUAL(Color(0x00, 0xFF, 0xFF, 0x00), pVDev->GetPixel(Point(1, 1))); + CPPUNIT_ASSERT_EQUAL(Color(0xFF, 0xFF, 0xFF), pVDev->GetPixel(Point(0, 0))); + CPPUNIT_ASSERT_EQUAL(Color(0xFF, 0xFF, 0x00), pVDev->GetPixel(Point(1, 1))); #if defined(_WIN32) || defined(MACOSX) || defined(IOS) // sometimes on Windows we get rounding error in blending so let's ignore this on Windows for now. - CPPUNIT_ASSERT_LESS(2, deltaColor(Color(0x00, 0x7F, 0xFF, 0x7F), pVDev->GetPixel(Point(2, 2)))); + CPPUNIT_ASSERT_LESS(2, deltaColor(Color(0x7F, 0xFF, 0x7F), pVDev->GetPixel(Point(2, 2)))); #else - CPPUNIT_ASSERT_EQUAL(Color(0x00, 0x7F, 0xFF, 0x7F), pVDev->GetPixel(Point(2, 2))); + CPPUNIT_ASSERT_EQUAL(Color(0x7F, 0xFF, 0x7F), pVDev->GetPixel(Point(2, 2))); #endif } @@ -211,14 +214,14 @@ void BitmapRenderTest::testAlphaVirtualDevice() #endif // Draw an semi-transparent pixel - pAlphaVirtualDevice->DrawPixel(Point(0, 0), Color(0x44, 0x22, 0xff, 0x55)); + pAlphaVirtualDevice->DrawPixel(Point(0, 0), Color(ColorTransparency, 0x44, 0x22, 0xff, 0x55)); aColor = pAlphaVirtualDevice->GetPixel(Point(0, 0)); // Read back the semi-transparent pixel #if defined _WIN32 - CPPUNIT_ASSERT_LESS(6, deltaColor(Color(0x4422FF55), aColor)); + CPPUNIT_ASSERT_LESS(6, deltaColor(Color(ColorTransparency, 0x4422FF55), aColor)); #else - CPPUNIT_ASSERT_EQUAL(Color(0x4422FF55), aColor); + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0x4422FF55), aColor); #endif // Read back the BitmapEx and check the semi-transparent pixel @@ -228,9 +231,9 @@ void BitmapRenderTest::testAlphaVirtualDevice() aColor = aBitmap.GetPixelColor(0, 0); #if defined _WIN32 - CPPUNIT_ASSERT_LESS(6, deltaColor(Color(0x4422FF55), aColor)); + CPPUNIT_ASSERT_LESS(6, deltaColor(Color(ColorTransparency, 0x4422FF55), aColor)); #else - CPPUNIT_ASSERT_EQUAL(Color(0x4422FF55), aColor); + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0x4422FF55), aColor); #endif } diff --git a/vcl/qa/cppunit/png/PngFilterTest.cxx b/vcl/qa/cppunit/png/PngFilterTest.cxx index 42a25652134f..28e6c719f6fd 100644 --- a/vcl/qa/cppunit/png/PngFilterTest.cxx +++ b/vcl/qa/cppunit/png/PngFilterTest.cxx @@ -70,15 +70,23 @@ void PngFilterTest::testPng() if (pAccess->GetBitCount() == 24 || pAccess->GetBitCount() == 32) { - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(0, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(3, 3)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(3, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(0, 3)); - - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x00, 0x00), pAccess->GetPixel(1, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x00, 0x00), pAccess->GetPixel(1, 2)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x00, 0x00), pAccess->GetPixel(2, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x00, 0x00), pAccess->GetPixel(2, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(0, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(3, 3)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(3, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(0, 3)); + + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x00, 0x00), + pAccess->GetPixel(1, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x00, 0x00), + pAccess->GetPixel(1, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x00, 0x00), + pAccess->GetPixel(2, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x00, 0x00), + pAccess->GetPixel(2, 2)); } else { @@ -102,15 +110,23 @@ void PngFilterTest::testPng() CPPUNIT_ASSERT_EQUAL(tools::Long(4), pAccess->Height()); if (pAccess->GetBitCount() == 24 || pAccess->GetBitCount() == 32) { - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(0, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(3, 3)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(3, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(0, 3)); - - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0x00, 0x00, 0x00), pAccess->GetPixel(1, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0xFF, 0x00, 0x00), pAccess->GetPixel(1, 2)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0xFF, 0x00), pAccess->GetPixel(2, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0x00, 0x00), pAccess->GetPixel(2, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(0, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(3, 3)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(3, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(0, 3)); + + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0x00, 0x00, 0x00), + pAccess->GetPixel(1, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0xFF, 0x00, 0x00), + pAccess->GetPixel(1, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0xFF, 0x00), + pAccess->GetPixel(2, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0x00, 0x00), + pAccess->GetPixel(2, 2)); } else { @@ -134,15 +150,23 @@ void PngFilterTest::testPng() if (pAccess->GetBitCount() == 24) { - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(0, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(3, 3)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(3, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x00), pAccess->GetPixel(0, 3)); - - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0x00, 0x00, 0x00), pAccess->GetPixel(1, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0xFF, 0x00, 0x00), pAccess->GetPixel(1, 2)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0xFF, 0x00), pAccess->GetPixel(2, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0x00, 0x00), pAccess->GetPixel(2, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(0, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(3, 3)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(3, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x00), + pAccess->GetPixel(0, 3)); + + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0x00, 0x00, 0x00), + pAccess->GetPixel(1, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0xFF, 0x00, 0x00), + pAccess->GetPixel(1, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0xFF, 0x00), + pAccess->GetPixel(2, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0x00, 0x00), + pAccess->GetPixel(2, 2)); AlphaMask aAlpha = aBitmapEx.GetAlpha(); { @@ -151,36 +175,44 @@ void PngFilterTest::testPng() CPPUNIT_ASSERT_EQUAL(tools::Long(4), pAlphaAccess->Width()); CPPUNIT_ASSERT_EQUAL(tools::Long(4), pAlphaAccess->Height()); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x80, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x80, 0x00), pAlphaAccess->GetPixel(0, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x80, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x80, 0x00), pAlphaAccess->GetPixel(3, 3)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x80, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x80, 0x00), pAlphaAccess->GetPixel(3, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x80, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x80, 0x00), pAlphaAccess->GetPixel(0, 3)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x40, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x40, 0x00), pAlphaAccess->GetPixel(1, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0xC0, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0xC0, 0x00), pAlphaAccess->GetPixel(1, 2)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0xC0, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0xC0, 0x00), pAlphaAccess->GetPixel(2, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0x40, 0x00), + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0x40, 0x00), pAlphaAccess->GetPixel(2, 2)); } } else if (pAccess->GetBitCount() == 32) { - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x80), pAccess->GetPixel(0, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x80), pAccess->GetPixel(3, 3)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x80), pAccess->GetPixel(3, 0)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0xFF, 0x80), pAccess->GetPixel(0, 3)); - - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0x00, 0x00, 0x40), pAccess->GetPixel(1, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0xFF, 0x00, 0xC0), pAccess->GetPixel(1, 2)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0x00, 0x00, 0xFF, 0xC0), pAccess->GetPixel(2, 1)); - CPPUNIT_ASSERT_EQUAL(BitmapColor(0xFF, 0xFF, 0x00, 0x40), pAccess->GetPixel(2, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x80), + pAccess->GetPixel(0, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x80), + pAccess->GetPixel(3, 3)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x80), + pAccess->GetPixel(3, 0)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0xFF, 0x80), + pAccess->GetPixel(0, 3)); + + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0x00, 0x00, 0x40), + pAccess->GetPixel(1, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0xFF, 0x00, 0xC0), + pAccess->GetPixel(1, 2)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0x00, 0x00, 0xFF, 0xC0), + pAccess->GetPixel(2, 1)); + CPPUNIT_ASSERT_EQUAL(BitmapColor(ColorTransparency, 0xFF, 0xFF, 0x00, 0x40), + pAccess->GetPixel(2, 2)); } else { diff --git a/vcl/qt5/Qt5AccessibleWidget.cxx b/vcl/qt5/Qt5AccessibleWidget.cxx index 1f33cec86e3c..879c451ec277 100644 --- a/vcl/qt5/Qt5AccessibleWidget.cxx +++ b/vcl/qt5/Qt5AccessibleWidget.cxx @@ -666,7 +666,7 @@ QColor Qt5AccessibleWidget::foregroundColor() const return QColor(); Reference<XAccessibleComponent> xAccessibleComponent(xAc, UNO_QUERY); - return toQColor(xAccessibleComponent->getForeground()); + return toQColor(Color(ColorTransparency, xAccessibleComponent->getForeground())); } QColor Qt5AccessibleWidget::backgroundColor() const @@ -676,7 +676,7 @@ QColor Qt5AccessibleWidget::backgroundColor() const return QColor(); Reference<XAccessibleComponent> xAccessibleComponent(xAc, UNO_QUERY); - return toQColor(xAccessibleComponent->getBackground()); + return toQColor(Color(ColorTransparency, xAccessibleComponent->getBackground())); } void* Qt5AccessibleWidget::interface_cast(QAccessible::InterfaceType t) diff --git a/vcl/qt5/Qt5Graphics_GDI.cxx b/vcl/qt5/Qt5Graphics_GDI.cxx index 559ff4baca39..a40a96e9fb29 100644 --- a/vcl/qt5/Qt5Graphics_GDI.cxx +++ b/vcl/qt5/Qt5Graphics_GDI.cxx @@ -516,7 +516,10 @@ std::shared_ptr<SalBitmap> Qt5Graphics::getBitmap(tools::Long nX, tools::Long nY return std::make_shared<Qt5Bitmap>(m_pQImage->copy(nX, nY, nWidth, nHeight)); } -Color Qt5Graphics::getPixel(tools::Long nX, tools::Long nY) { return m_pQImage->pixel(nX, nY); } +Color Qt5Graphics::getPixel(tools::Long nX, tools::Long nY) +{ + return Color(ColorTransparency, m_pQImage->pixel(nX, nY)); +} void Qt5Graphics::invert(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags) diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx index 8266fe938bbf..f9fdfcaa1300 100644 --- a/vcl/skia/gdiimpl.cxx +++ b/vcl/skia/gdiimpl.cxx @@ -216,7 +216,7 @@ SkColor toSkColorWithIntensity(Color color, int intensity) Color fromSkColor(SkColor color) { - return Color(255 - SkColorGetA(color), SkColorGetR(color), SkColorGetG(color), + return Color(ColorAlpha, SkColorGetA(color), SkColorGetR(color), SkColorGetG(color), SkColorGetB(color)); } diff --git a/vcl/skia/salbmp.cxx b/vcl/skia/salbmp.cxx index 77bb784241f0..70405e2b5111 100644 --- a/vcl/skia/salbmp.cxx +++ b/vcl/skia/salbmp.cxx @@ -939,7 +939,7 @@ void SkiaSalBitmap::PerformErase() abort(); Color fastColor = mEraseColor; if (!!mPalette) - fastColor = mPalette.GetBestIndex(fastColor); + fastColor = Color(ColorTransparency, mPalette.GetBestIndex(fastColor)); if (!ImplFastEraseBitmap(*bitmapBuffer, fastColor)) { FncSetPixel setPixel = BitmapReadAccess::SetPixelFunction(bitmapBuffer->mnFormat); diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 2f0495c58446..556e1f7e69cf 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -2301,7 +2301,7 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot if ( nIndex > 0 ) { OUString aColor = aPersonaSettings.getToken( 0, ';', ++nIndex ); - rMenuBarTextColor = Color( aColor.toUInt32( 16 ) ); + rMenuBarTextColor = Color( ColorTransparency, aColor.toUInt32( 16 ) ); } } diff --git a/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx b/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx index f3b371e03f1c..8bc038b486f9 100644 --- a/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx +++ b/vcl/source/bitmap/BitmapBasicMorphologyFilter.cxx @@ -38,7 +38,7 @@ struct FilterSharedData , mpWriteAccess(rWriteAccess.get()) , mnRadius(nRadius) , mnOutsideVal(nOutsideVal) - , maOutsideColor(nOutsideVal, nOutsideVal, nOutsideVal, nOutsideVal) + , maOutsideColor(ColorTransparency, nOutsideVal, nOutsideVal, nOutsideVal, nOutsideVal) { } }; @@ -92,8 +92,9 @@ template <typename MorphologyOp, int nComponentWidth> struct Value template <typename MorphologyOp> struct Value<MorphologyOp, 0> { - static constexpr Color initColor{ MorphologyOp::initVal, MorphologyOp::initVal, - MorphologyOp::initVal, MorphologyOp::initVal }; + static constexpr Color initColor{ ColorTransparency, MorphologyOp::initVal, + MorphologyOp::initVal, MorphologyOp::initVal, + MorphologyOp::initVal }; Color aResult; @@ -107,7 +108,7 @@ template <typename MorphologyOp> struct Value<MorphologyOp, 0> sal_uInt8* /*pHint*/ = nullptr) { const auto& rSource = pReadAccess->GetColor(y, x); - aResult = Color(255 - MorphologyOp::apply(rSource.GetAlpha(), aResult.GetAlpha()), + aResult = Color(ColorAlpha, MorphologyOp::apply(rSource.GetAlpha(), aResult.GetAlpha()), MorphologyOp::apply(rSource.GetRed(), aResult.GetRed()), MorphologyOp::apply(rSource.GetGreen(), aResult.GetGreen()), MorphologyOp::apply(rSource.GetBlue(), aResult.GetBlue())); diff --git a/vcl/source/bitmap/BitmapDisabledImageFilter.cxx b/vcl/source/bitmap/BitmapDisabledImageFilter.cxx index 9c4e469191a8..82b6c7f07d5e 100644 --- a/vcl/source/bitmap/BitmapDisabledImageFilter.cxx +++ b/vcl/source/bitmap/BitmapDisabledImageFilter.cxx @@ -40,7 +40,7 @@ BitmapEx BitmapDisabledImageFilter::execute(BitmapEx const& rBitmapEx) const // Get the luminance from RGB color and remap the value from 0-255 to 160-224 const BitmapColor aColor = pRead->GetPixelFromData(pReadScan, nX); sal_uInt8 nLum(aColor.GetLuminance() / 4 + 160); - BitmapColor aGreyValue(nLum, nLum, nLum, 255 - aColor.GetAlpha()); + BitmapColor aGreyValue(ColorAlpha, nLum, nLum, nLum, aColor.GetAlpha()); pGrey->SetPixelOnData(pGreyScan, nX, aGreyValue); } } diff --git a/vcl/source/bitmap/BitmapReadAccess.cxx b/vcl/source/bitmap/BitmapReadAccess.cxx index 0a39835a364c..a978e3f77388 100644 --- a/vcl/source/bitmap/BitmapReadAccess.cxx +++ b/vcl/source/bitmap/BitmapReadAccess.cxx @@ -405,8 +405,8 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcAbgr(ConstScanline pScanline, t sal_uInt8 g = *pScanline++; sal_uInt8 r = *pScanline; - return BitmapColor(vcl::bitmap::unpremultiply(r, a), vcl::bitmap::unpremultiply(g, a), - vcl::bitmap::unpremultiply(b, a), 0xFF - a); + return BitmapColor(ColorAlpha, vcl::bitmap::unpremultiply(r, a), + vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } BitmapColor BitmapReadAccess::GetPixelForN32BitTcXbgr(ConstScanline pScanline, tools::Long nX, @@ -454,8 +454,8 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcArgb(ConstScanline pScanline, t sal_uInt8 g = *pScanline++; sal_uInt8 b = *pScanline; - return BitmapColor(vcl::bitmap::unpremultiply(r, a), vcl::bitmap::unpremultiply(g, a), - vcl::bitmap::unpremultiply(b, a), 0xFF - a); + return BitmapColor(ColorAlpha, vcl::bitmap::unpremultiply(r, a), + vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } BitmapColor BitmapReadAccess::GetPixelForN32BitTcXrgb(ConstScanline pScanline, tools::Long nX, @@ -503,8 +503,8 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgra(ConstScanline pScanline, t sal_uInt8 r = *pScanline++; sal_uInt8 a = *pScanline; - return BitmapColor(vcl::bitmap::unpremultiply(r, a), vcl::bitmap::unpremultiply(g, a), - vcl::bitmap::unpremultiply(b, a), 0xFF - a); + return BitmapColor(ColorAlpha, vcl::bitmap::unpremultiply(r, a), + vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } BitmapColor BitmapReadAccess::GetPixelForN32BitTcBgrx(ConstScanline pScanline, tools::Long nX, @@ -552,8 +552,8 @@ BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgba(ConstScanline pScanline, t sal_uInt8 b = *pScanline++; sal_uInt8 a = *pScanline; - return BitmapColor(vcl::bitmap::unpremultiply(r, a), vcl::bitmap::unpremultiply(g, a), - vcl::bitmap::unpremultiply(b, a), 0xFF - a); + return BitmapColor(ColorAlpha, vcl::bitmap::unpremultiply(r, a), + vcl::bitmap::unpremultiply(g, a), vcl::bitmap::unpremultiply(b, a), a); } BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgbx(ConstScanline pScanline, tools::Long nX, diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx index 8d65c7b1a31f..e42e7feedb87 100644 --- a/vcl/source/gdi/gdimtf.cxx +++ b/vcl/source/gdi/gdimtf.cxx @@ -1725,7 +1725,7 @@ tools::Rectangle GDIMetaFile::GetBoundRect( OutputDevice& i_rReference, tools::R Color GDIMetaFile::ImplColAdjustFnc( const Color& rColor, const void* pColParam ) { - return Color( 255 - rColor.GetAlpha(), + return Color( ColorAlpha, rColor.GetAlpha(), static_cast<const ImplColAdjustParam*>(pColParam)->pMapR[ rColor.GetRed() ], static_cast<const ImplColAdjustParam*>(pColParam)->pMapG[ rColor.GetGreen() ], static_cast<const ImplColAdjustParam*>(pColParam)->pMapB[ rColor.GetBlue() ] ); @@ -1751,7 +1751,7 @@ Color GDIMetaFile::ImplColConvertFnc( const Color& rColor, const void* pColParam if( MtfConversion::N1BitThreshold == static_cast<const ImplColConvertParam*>(pColParam)->eConversion ) cLum = ( cLum < 128 ) ? 0 : 255; - return Color( 255 - rColor.GetAlpha(), cLum, cLum, cLum ); + return Color( ColorTransparency, 255 - rColor.GetAlpha(), cLum, cLum, cLum ); } BitmapEx GDIMetaFile::ImplBmpConvertFnc( const BitmapEx& rBmpEx, const void* pBmpParam ) diff --git a/vcl/source/graphic/GraphicObject2.cxx b/vcl/source/graphic/GraphicObject2.cxx index 82ce4dd07fcf..f2a67a6f8203 100644 --- a/vcl/source/graphic/GraphicObject2.cxx +++ b/vcl/source/graphic/GraphicObject2.cxx @@ -476,7 +476,7 @@ void GraphicObject::ImplTransformBitmap( BitmapEx& rBmpEx, } aBmpEx2.Scale(Size(nPadTotalWidth, nPadTotalHeight)); - aBmpEx2.Erase( Color(0xFF,0,0,0) ); + aBmpEx2.Erase( Color(ColorAlpha,0,0,0,0) ); aBmpEx2.CopyPixel( tools::Rectangle( Point(nPadLeft, nPadTop), aBmpSize ), tools::Rectangle( Point(0, 0), aBmpSize ), &rBmpEx ); rBmpEx = aBmpEx2; } diff --git a/vcl/source/helper/canvastools.cxx b/vcl/source/helper/canvastools.cxx index dc57592944ab..c1ee370537cc 100644 --- a/vcl/source/helper/canvastools.cxx +++ b/vcl/source/helper/canvastools.cxx @@ -609,7 +609,7 @@ namespace vcl::unotools const rendering::ARGBColor aARGBColor( xColorSpace->convertToARGB(rColor)[0]); - return Color( 255-toByteColor(aARGBColor.Alpha), + return Color( ColorAlpha, toByteColor(aARGBColor.Alpha), toByteColor(aARGBColor.Red), toByteColor(aARGBColor.Green), toByteColor(aARGBColor.Blue) ); diff --git a/vcl/source/pdf/PDFiumLibrary.cxx b/vcl/source/pdf/PDFiumLibrary.cxx index bdd3fed7b4d4..42fb1370ce9f 100644 --- a/vcl/source/pdf/PDFiumLibrary.cxx +++ b/vcl/source/pdf/PDFiumLibrary.cxx @@ -657,7 +657,7 @@ Color PDFiumPageObject::getFillColor() unsigned int nR, nG, nB, nA; if (FPDFPageObj_GetFillColor(mpPageObject, &nR, &nG, &nB, &nA)) { - aColor = Color(0xFF - nA, nR, nG, nB); + aColor = Color(ColorAlpha, nA, nR, nG, nB); } return aColor; } @@ -668,7 +668,7 @@ Color PDFiumPageObject::getStrokeColor() unsigned int nR, nG, nB, nA; if (FPDFPageObj_GetStrokeColor(mpPageObject, &nR, &nG, &nB, &nA)) { - aColor = Color(0xFF - nA, nR, nG, nB); + aColor = Color(ColorAlpha, nA, nR, nG, nB); } return aColor; } @@ -857,7 +857,7 @@ Color PDFiumAnnotationImpl::getColor() unsigned int nR, nG, nB, nA; if (FPDFAnnot_GetColor(mpAnnotation, FPDFANNOT_COLORTYPE_Color, &nR, &nG, &nB, &nA)) { - aColor = Color(0xFF - nA, nR, nG, nB); + aColor = Color(ColorAlpha, nA, nR, nG, nB); } return aColor; } @@ -868,7 +868,7 @@ Color PDFiumAnnotationImpl::getInteriorColor() unsigned int nR, nG, nB, nA; if (FPDFAnnot_GetColor(mpAnnotation, FPDFANNOT_COLORTYPE_InteriorColor, &nR, &nG, &nB, &nA)) { - aColor = Color(0xFF - nA, nR, nG, nB); + aColor = Color(ColorAlpha, nA, nR, nG, nB); } return aColor; } diff --git a/vcl/source/window/menubarwindow.cxx b/vcl/source/window/menubarwindow.cxx index 6c47c8a0ac01..c29a827b2c38 100644 --- a/vcl/source/window/menubarwindow.cxx +++ b/vcl/source/window/menubarwindow.cxx @@ -92,7 +92,7 @@ void DecoToolBox::SetImages( tools::Long nMaxHeight, bool bForce ) lastSize = nMaxHeight - border; - Color aEraseColor( 255, 255, 255, 255 ); + Color aEraseColor( ColorTransparency, 255, 255, 255, 255 ); BitmapEx aBmpExDst( maImage.GetBitmapEx() ); BitmapEx aBmpExSrc( aBmpExDst ); diff --git a/vcl/unx/generic/app/saldisp.cxx b/vcl/unx/generic/app/saldisp.cxx index efc154e14cb6..26624925dfe8 100644 --- a/vcl/unx/generic/app/saldisp.cxx +++ b/vcl/unx/generic/app/saldisp.cxx @@ -2430,7 +2430,7 @@ SalVisual::SalVisual( const XVisualInfo* pXVI ) Color SalVisual::GetTCColor( Pixel nPixel ) const { if( SALCOLOR == eRGBMode_ ) - return static_cast<Color>(nPixel); + return Color(ColorTransparency, nPixel); if( SALCOLORREVERSE == eRGBMode_ ) return Color( (nPixel & 0x0000FF), @@ -2715,7 +2715,7 @@ Color SalColormap::GetColor( Pixel nPixel ) const if( !m_hColormap ) { SAL_WARN("vcl", "SalColormap::GetColor() !m_hColormap"); - return nPixel; + return Color(ColorTransparency, nPixel); } // DirectColor, StaticColor, StaticGray, GrayScale @@ -2791,7 +2791,7 @@ Pixel SalColormap::GetPixel( Color nColor ) const { XColor aInversColor; - Color nInversColor = sal_uInt32(nColor) ^ 0xFFFFFF; + Color nInversColor(ColorTransparency, sal_uInt32(nColor) ^ 0xFFFFFF); GetXPixel( aInversColor, nInversColor.GetRed(), |