vcl/opengl/gdiimpl.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
New commits: commit c4217f888a2964ca1371bd22297895b4737d2c38 Author: Luboš Luňák <l.lu...@collabora.com> AuthorDate: Fri Mar 22 13:39:17 2019 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Fri Mar 22 18:02:42 2019 +0100 opengl's drawBitmap() should also scale properly if needed (tdf#123372) If the bitmap to be drawn will need to be scale for drawing, OpenGL handles this by scaling, but the scaling is of poor quality. Other backends scale in such a case with a good quality, and e.g. opengl's drawAlphaBitmap() also does the same check, so copy that check to drawBitmap() as well. Change-Id: If6a457c69c6676d03fa4046b9910683f51479d21 Reviewed-on: https://gerrit.libreoffice.org/69556 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx index 90922d737eb3..3a15755eb7a9 100644 --- a/vcl/opengl/gdiimpl.cxx +++ b/vcl/opengl/gdiimpl.cxx @@ -1743,7 +1743,19 @@ void OpenGLSalGraphicsImpl::drawBitmap( const SalTwoRect& rPosAry, const SalBitm VCL_GL_INFO( "::drawBitmap" ); PreDraw(); - DrawTexture( rTexture, rPosAry ); + if (rPosAry.mnSrcWidth != rPosAry.mnDestWidth || + rPosAry.mnSrcHeight != rPosAry.mnDestHeight) + { + basegfx::B2DPoint aNull(rPosAry.mnDestX,rPosAry.mnDestY); + basegfx::B2DPoint aX(rPosAry.mnDestX + rPosAry.mnDestWidth, rPosAry.mnDestY); + basegfx::B2DPoint aY(rPosAry.mnDestX, rPosAry.mnDestY + rPosAry.mnDestHeight); + OpenGLTexture mask; // no mask set + DrawTransformedTexture(rTexture, mask, aNull, aX, aY); + } + else + { + DrawTexture( rTexture, rPosAry ); + } PostDraw(); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits