vcl/opengl/gdiimpl.cxx |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

New commits:
commit 54e3ea8a86a309990f5edf78948bfe18dd2de96b
Author: Tomaž Vajngerl <[email protected]>
Date:   Thu Feb 11 15:57:27 2016 +0100

    tdf#97715 fix inv. scale calculation in DrawTransformedTexture
    
    When image was rotated towards 90 degree the ixscale and iyscale
    went towards infinity. That caused problems in fragment shader
    areaScaleFastFragmentShader. The problem was with calculation
    of destination width and height which didn't take rotation
    into account correctly. This commit takes this calculation
    from WinSalGraphicsImpl::drawTransformedBitmap.
    
    Change-Id: I30f14a1ecda21ef167e58eda8e2fcef00bdfa2b7
    Reviewed-on: https://gerrit.libreoffice.org/22289
    Reviewed-by: Michael Meeks <[email protected]>
    Tested-by: Michael Meeks <[email protected]>

diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index fc738ca..6676baf 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -1068,8 +1068,13 @@ void OpenGLSalGraphicsImpl::DrawTransformedTexture(
     // If downscaling at a higher scale ratio, use the area scaling algorithm 
rather
     // than plain OpenGL's scaling, for better results.
     // See OpenGLSalBitmap::ImplScaleArea().
-    double ixscale = rTexture.GetWidth() / fabs( rX.getX() - rNull.getX());
-    double iyscale = rTexture.GetHeight() / fabs( rY.getY() - rNull.getY());
+
+    const long nDestWidth = basegfx::fround(basegfx::B2DVector(rX - 
rNull).getLength());
+    const long nDestHeight = basegfx::fround(basegfx::B2DVector(rY - 
rNull).getLength());
+
+    const double ixscale = rTexture.GetWidth()  / nDestWidth;
+    const double iyscale = rTexture.GetHeight() / nDestHeight;
+
     bool areaScaling = false;
     bool fastAreaScaling = false;
     OUString textureFragmentShader;
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to