summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2022-08-31 17:22:08 +0200
committerAndras Timar <andras.timar@collabora.com>2022-09-11 16:44:26 +0200
commit3d1f5c8e65b40c9abbc43cad34f3c01b18b695d7 (patch)
treece0f7579bced4e3e0a7062e9ffe67814537734a7
parent81ba535193559fad495aa78753ec42b6e1be21e4 (diff)
fix limiting drawing of softedge effect (tdf#141981)
Apparently an empty viewport actually means everything should be drawn. Change-Id: I55ae453a8f264d48222ade48a2953ab7d97c7f79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138991 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 6a57652cfc2e46a271091246cd867804c39f845c)
-rw-r--r--drawinglayer/source/processor2d/vclpixelprocessor2d.cxx6
-rw-r--r--include/drawinglayer/geometry/viewinformation2d.hxx2
2 files changed, 6 insertions, 2 deletions
diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
index 10845409b9ec..c8a28950261d 100644
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
@@ -1050,7 +1050,8 @@ void VclPixelProcessor2D::processGlowPrimitive2D(const primitive2d::GlowPrimitiv
// Limit the bitmap size to the visible area.
basegfx::B2DRange viewRange(getViewInformation2D().getDiscreteViewport());
basegfx::B2DRange bitmapRange(aRange);
- bitmapRange.intersect(viewRange);
+ if (!viewRange.isEmpty())
+ bitmapRange.intersect(viewRange);
if (!bitmapRange.isEmpty())
{
const tools::Rectangle aRect(
@@ -1112,7 +1113,8 @@ void VclPixelProcessor2D::processSoftEdgePrimitive2D(
// Limit the bitmap size to the visible area.
basegfx::B2DRange viewRange(getViewInformation2D().getDiscreteViewport());
basegfx::B2DRange bitmapRange(aRange);
- bitmapRange.intersect(viewRange);
+ if (!viewRange.isEmpty())
+ bitmapRange.intersect(viewRange);
if (!bitmapRange.isEmpty())
{
const tools::Rectangle aRect(
diff --git a/include/drawinglayer/geometry/viewinformation2d.hxx b/include/drawinglayer/geometry/viewinformation2d.hxx
index 95be29a72bda..33d02cd76ada 100644
--- a/include/drawinglayer/geometry/viewinformation2d.hxx
+++ b/include/drawinglayer/geometry/viewinformation2d.hxx
@@ -140,6 +140,7 @@ public:
/// data access
const basegfx::B2DHomMatrix& getObjectTransformation() const;
const basegfx::B2DHomMatrix& getViewTransformation() const;
+ /// Empty viewport means everything is visible.
const basegfx::B2DRange& getViewport() const;
double getViewTime() const;
const css::uno::Reference<css::drawing::XDrawPage>& getVisualizedPage() const;
@@ -149,6 +150,7 @@ public:
const basegfx::B2DHomMatrix& getInverseObjectToViewTransformation() const;
/// On-demand prepared Viewport in discrete units for convenience
+ /// Empty viewport means everything is visible.
const basegfx::B2DRange& getDiscreteViewport() const;
/** support reduced DisplayQuality, PropertyName is 'ReducedDisplayQuality'. This