[Libreoffice-commits] core.git: vcl/source
LuboÅ¡ LuÅák (via logerrit)
logerrit at kemper.freedesktop.org
Fri Feb 12 10:18:49 UTC 2021
vcl/source/outdev/bitmap.cxx | 27 +++------------------------
1 file changed, 3 insertions(+), 24 deletions(-)
New commits:
commit 9d89d98d3349502b56da4bdd6ea287ac4cde9ce5
Author: Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Wed Feb 10 17:15:19 2021 +0100
Commit: Luboš Luňák <l.lunak at collabora.com>
CommitDate: Fri Feb 12 11:18:09 2021 +0100
always optimize bitmap transform to translate+scale if possible (tdf#138068)
Commit 828504974d70111e make OutputDevice::DrawTransformedBitmapEx()
always call DrawTransformBitmapExDirect() in preference to explicitly
converting to DrawBitmapEx() if the transformation wanted was at most
translate+scale, in the hopes that these days the backend implementations
work well enough. But it turns out only the Skia backend handles that
without loss of performance. So always do the conversion to DrawBitmapEx()
if possible. It's so simple that it possibly makes sense to always do
this, regardless of the backend.
Change-Id: I6eba68e672334c38433f53980f49400499f5d8e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110716
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
diff --git a/vcl/source/outdev/bitmap.cxx b/vcl/source/outdev/bitmap.cxx
index 88056ebb0a14..c69938b11878 100644
--- a/vcl/source/outdev/bitmap.cxx
+++ b/vcl/source/outdev/bitmap.cxx
@@ -1249,28 +1249,6 @@ void OutputDevice::DrawTransformedBitmapEx(
: nullptr);
#endif
- // MM02 reorganize order: Prefer DrawTransformBitmapExDirect due
- // to this having evolved and is improved on quite some systems.
- // Check for exclusion parameters that may prevent using it
- static bool bAllowPreferDirectPaint(true);
- const bool bInvert(RasterOp::Invert == meRasterOp);
- const bool bBitmapChangedColor(mnDrawMode & (DrawModeFlags::BlackBitmap | DrawModeFlags::WhiteBitmap | DrawModeFlags::GrayBitmap ));
- const bool bTryDirectPaint(!bInvert && !bBitmapChangedColor && !bMetafile);
-
- if(bAllowPreferDirectPaint && bTryDirectPaint)
- {
- // tdf#130768 CAUTION(!) using GetViewTransformation() is *not* enough here, it may
- // be that mnOutOffX/mnOutOffY is used - see AOO bug 75163, mentioned at
- // ImplGetDeviceTransformation declaration
- const basegfx::B2DHomMatrix aFullTransform(ImplGetDeviceTransformation() * rTransformation);
-
- if(DrawTransformBitmapExDirect(aFullTransform, rBitmapEx))
- {
- // we are done
- return;
- }
- }
-
// decompose matrix to check rotation and shear
basegfx::B2DVector aScale, aTranslate;
double fRotate, fShearX;
@@ -1305,8 +1283,9 @@ void OutputDevice::DrawTransformedBitmapEx(
return;
}
- // MM02 bAllowPreferDirectPaint may have been false to allow
- // to specify order of executions, so give bTryDirectPaint a call
+ const bool bInvert(RasterOp::Invert == meRasterOp);
+ const bool bBitmapChangedColor(mnDrawMode & (DrawModeFlags::BlackBitmap | DrawModeFlags::WhiteBitmap | DrawModeFlags::GrayBitmap ));
+ const bool bTryDirectPaint(!bInvert && !bBitmapChangedColor && !bMetafile);
if(bTryDirectPaint)
{
// tdf#130768 CAUTION(!) using GetViewTransformation() is *not* enough here, it may
More information about the Libreoffice-commits
mailing list