drawinglayer/source/texture/texture.cxx | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-)
New commits: commit 81e77bcc7c454d79b302df7ad545e7da16b64ae0 Author: Armin Le Grand (allotropia) <armin.le.grand.ext...@allotropia.de> AuthorDate: Tue May 9 12:29:30 2023 +0200 Commit: Armin Le Grand <armin.le.gr...@me.com> CommitDate: Tue May 9 15:03:11 2023 +0200 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.gr...@me.com> 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)))); } }