canvas/source/directx/dx_textlayout_drawhelper.cxx | 5 ++++- vcl/win/gdi/salvd.cxx | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-)
New commits: commit e53c0f102cc4f0ef31a9fffb5b78fd158cf68738 Author: Szymon KÅos <szymon.k...@collabora.com> Date: Tue Aug 1 12:34:02 2017 +0200 tdf#104252 EMF rendering, set correct VirtualDevice size ClipRegion is bounded to device size. That resulted in missing text in case of PDF export with EMF+ images under Windows (with hardware acceleration). VirtualDevice size was always equal to the screen resolution what is not enough to draw complete PDF. This patch modifies VirtualDevice size to match target size. Change-Id: I762be6a6ca6fab3897b57f370fecc3f3568a58cb Reviewed-on: https://gerrit.libreoffice.org/41390 Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/canvas/source/directx/dx_textlayout_drawhelper.cxx b/canvas/source/directx/dx_textlayout_drawhelper.cxx index fb8e184f9cc6..7a602742b1ba 100644 --- a/canvas/source/directx/dx_textlayout_drawhelper.cxx +++ b/canvas/source/directx/dx_textlayout_drawhelper.cxx @@ -80,7 +80,10 @@ namespace dxcanvas SystemGraphicsData aSystemGraphicsData; aSystemGraphicsData.nSize = sizeof(SystemGraphicsData); aSystemGraphicsData.hDC = reinterpret_cast< ::HDC >(hdc); - ScopedVclPtrInstance<VirtualDevice> xVirtualDevice(&aSystemGraphicsData, Size(1, 1), DeviceFormat::DEFAULT); + + Size aTargetSize(rViewState.AffineTransform.m00, rViewState.AffineTransform.m11); + + ScopedVclPtrInstance<VirtualDevice> xVirtualDevice(&aSystemGraphicsData, aTargetSize, DeviceFormat::DEFAULT); // disable font antialiasing - GDI does not handle alpha // surfaces properly. diff --git a/vcl/win/gdi/salvd.cxx b/vcl/win/gdi/salvd.cxx index 65d8600f6934..191c0eb0763c 100644 --- a/vcl/win/gdi/salvd.cxx +++ b/vcl/win/gdi/salvd.cxx @@ -97,12 +97,12 @@ SalVirtualDevice* WinSalInstance::CreateVirtualDevice( SalGraphics* pSGraphics, hDC = (pData->hDC) ? pData->hDC : GetDC(pData->hWnd); hBmp = nullptr; bOk = (hDC != nullptr); - if (bOk) + if ( bOk && nDX <= 1 && nDY <= 1 ) { nDX = GetDeviceCaps( hDC, HORZRES ); nDY = GetDeviceCaps( hDC, VERTRES ); } - else + else if ( !bOk ) { nDX = 0; nDY = 0;
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits