summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vcl/source/outdev/transparent.cxx14
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;
}
}