summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorA_GAN <ganzouri97@gmail.com>2020-06-03 05:55:46 +0200
committerTomaž Vajngerl <quikee@gmail.com>2020-06-04 18:43:51 +0200
commitb90d0a9dc8e7b4e6a683b35939a7ce0c3090e888 (patch)
tree23a05ec72ca8785a2f2ed305f196f16eab8f8656 /drawinglayer
parentda8ea444b004a0be36964ae9a778f73e752b2673 (diff)
Update ShadowPrimitive2D to support shadow blur
Add attribute for the blur radius and get function. give more range for the shadow depends on the size of the blur radius. update the blur radius to be imported in Hmm and the test function. Change-Id: I32faaf02884d9a6b2f11a9033178b3b6bb419580 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95388 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/source/primitive2d/shadowprimitive2d.cxx10
-rw-r--r--drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx1
-rw-r--r--drawinglayer/source/processor3d/shadow3dextractor.cxx1
3 files changed, 10 insertions, 2 deletions
diff --git a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
index 8cb8311494a5..e2c0be36ec9e 100644
--- a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
@@ -23,6 +23,8 @@
#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
+#include <sal/log.hxx>
+#include <memory>
using namespace com::sun::star;
@@ -32,10 +34,12 @@ namespace drawinglayer::primitive2d
ShadowPrimitive2D::ShadowPrimitive2D(
const basegfx::B2DHomMatrix& rShadowTransform,
const basegfx::BColor& rShadowColor,
+ double fShadowBlur,
const Primitive2DContainer& rChildren)
: GroupPrimitive2D(rChildren),
maShadowTransform(rShadowTransform),
- maShadowColor(rShadowColor)
+ maShadowColor(rShadowColor),
+ mfShadowBlur(fShadowBlur)
{
}
@@ -46,7 +50,8 @@ namespace drawinglayer::primitive2d
const ShadowPrimitive2D& rCompare = static_cast< const ShadowPrimitive2D& >(rPrimitive);
return (getShadowTransform() == rCompare.getShadowTransform()
- && getShadowColor() == rCompare.getShadowColor());
+ && getShadowColor() == rCompare.getShadowColor()
+ && getShadowBlur() == rCompare.getShadowBlur());
}
return false;
@@ -55,6 +60,7 @@ namespace drawinglayer::primitive2d
basegfx::B2DRange ShadowPrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const
{
basegfx::B2DRange aRetval(getChildren().getB2DRange(rViewInformation));
+ aRetval.grow(getShadowBlur());
aRetval.transform(getShadowTransform());
return aRetval;
}
diff --git a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
index 28e9eccdacc5..afc841fcf3bd 100644
--- a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
@@ -235,6 +235,7 @@ namespace drawinglayer::primitive2d
aShadow = new ShadowPrimitive2D(
aShadowTransform,
aShadowColor,
+ 0, // fShadowBlur = 0, there's no blur for text shadow yet.
aRetval);
}
diff --git a/drawinglayer/source/processor3d/shadow3dextractor.cxx b/drawinglayer/source/processor3d/shadow3dextractor.cxx
index 45fca6d8dd38..0b653236eb1b 100644
--- a/drawinglayer/source/processor3d/shadow3dextractor.cxx
+++ b/drawinglayer/source/processor3d/shadow3dextractor.cxx
@@ -74,6 +74,7 @@ namespace drawinglayer::processor3d
primitive2d::BasePrimitive2D* pNew = new primitive2d::ShadowPrimitive2D(
rPrimitive.getShadowTransform(),
rPrimitive.getShadowColor(),
+ 0, // shadow3d doesn't have rPrimitive.getShadowBlur() yet.
aNewSubList);
if(basegfx::fTools::more(rPrimitive.getShadowTransparence(), 0.0))