summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorArmin Le Grand (allotropia) <armin.le.grand.extern@allotropia.de>2023-05-09 12:29:30 +0200
committerArmin Le Grand <Armin.Le.Grand@me.com>2023-05-09 15:03:11 +0200
commit81e77bcc7c454d79b302df7ad545e7da16b64ae0 (patch)
tree48e7d91d04cd25a0952f0a6464257c3183f03317 /drawinglayer
parent9585ce0e6a1075597943268ef72ccd859b6c8065 (diff)
MCGR: Correct interpolate TextureMap due to possible zero value
Change-Id: I5b2fe354077bea659f522e5b5c839be1f4cae1c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151568 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/source/texture/texture.cxx20
1 files changed, 6 insertions, 14 deletions
diff --git a/drawinglayer/source/texture/texture.cxx b/drawinglayer/source/texture/texture.cxx
index aeeb5b61bb05..eb9df6469225 100644
--- a/drawinglayer/source/texture/texture.cxx
+++ b/drawinglayer/source/texture/texture.cxx
@@ -244,11 +244,7 @@ namespace drawinglayer::texture
// set and add at target
aCallback(
maGradientInfo.getTextureTransform() * aNew,
- interpolate(
- aCStart, aCEnd,
- nSteps == 1
- ? std::numeric_limits<double>::infinity()
- : double(innerLoop) / double(nSteps - 1)));
+ 1 == nSteps ? aCStart : basegfx::BColor(interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1))));
}
}
@@ -372,7 +368,7 @@ namespace drawinglayer::texture
// set and add at target
aCallback(
maGradientInfo.getTextureTransform() * aNew,
- interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1)));
+ 1 == nSteps ? aCStart : basegfx::BColor(interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1))));
}
}
@@ -467,11 +463,7 @@ namespace drawinglayer::texture
// set and add at target
aCallback(
maGradientInfo.getTextureTransform() * basegfx::utils::createScaleB2DHomMatrix(fSize, fSize),
- interpolate(
- aCStart, aCEnd,
- nSteps == 1
- ? std::numeric_limits<double>::infinity()
- : double(innerLoop) / double(nSteps - 1)));
+ 1 == nSteps ? aCStart : basegfx::BColor(interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1))));
}
}
@@ -572,7 +564,7 @@ namespace drawinglayer::texture
* basegfx::utils::createScaleB2DHomMatrix(
1.0 - (bMTO ? fSize / fAR : fSize),
1.0 - (bMTO ? fSize : fSize * fAR)),
- interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1)));
+ 1 == nSteps ? aCStart : basegfx::BColor(interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1))));
}
}
@@ -666,7 +658,7 @@ namespace drawinglayer::texture
// set and add at target
aCallback(
maGradientInfo.getTextureTransform() * basegfx::utils::createScaleB2DHomMatrix(fSize, fSize),
- interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1)));
+ 1 == nSteps ? aCStart : basegfx::BColor(interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1))));
}
}
@@ -767,7 +759,7 @@ namespace drawinglayer::texture
* basegfx::utils::createScaleB2DHomMatrix(
1.0 - (bMTO ? fSize / fAR : fSize),
1.0 - (bMTO ? fSize : fSize * fAR)),
- interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1)));
+ 1 == nSteps ? aCStart : basegfx::BColor(interpolate(aCStart, aCEnd, double(innerLoop) / double(nSteps - 1))));
}
}