diff options
-rw-r--r-- | vcl/source/outdev/transparent.cxx | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/vcl/source/outdev/transparent.cxx b/vcl/source/outdev/transparent.cxx index f9da8c9975da..839550c0fe1c 100644 --- a/vcl/source/outdev/transparent.cxx +++ b/vcl/source/outdev/transparent.cxx @@ -248,6 +248,8 @@ void OutputDevice::DrawTransparent( // create ObjectToDevice transformation const basegfx::B2DHomMatrix aFullTransform(ImplGetDeviceTransformation() * rObjectTransform); + // TODO: this must not drop transparency for mpAlphaVDev case, but instead use premultiplied + // aplha... but that requires using premultiplied alpha also for already drawn data const double fAdjustedTransparency = mpAlphaVDev ? 0 : fTransparency; bool bDrawnOk(true); @@ -294,20 +296,8 @@ void OutputDevice::DrawTransparent( } if (mpAlphaVDev) - { - const Color aFillCol(mpAlphaVDev->GetFillColor()); - const Color aLineColor(mpAlphaVDev->GetLineColor()); - const auto nGreyScale = static_cast<sal_uInt8>(std::round(255 * fTransparency)); - const Color aNewColor(nGreyScale, nGreyScale, nGreyScale); - mpAlphaVDev->SetFillColor(aNewColor); - mpAlphaVDev->SetLineColor(aNewColor); - mpAlphaVDev->DrawTransparent(rObjectTransform, rB2DPolyPoly, fTransparency); - mpAlphaVDev->SetFillColor(aFillCol); - mpAlphaVDev->SetLineColor(aLineColor); - } - return; } } |