salgdi_gdiplus.cxx (5f27b83c) salgdi_gdiplus.cxx (4aeb9d34)
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 164 unchanged lines hidden (view full) ---

173 {
174 aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
175 }
176 else
177 {
178 aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeNone);
179 }
180
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 164 unchanged lines hidden (view full) ---

173 {
174 aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
175 }
176 else
177 {
178 aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeNone);
179 }
180
181 if(mbPrinter)
182 {
183 // #121591#
184 // Normally GdiPlus should not be used for printing at all since printers cannot
185 // print transparent filled polygon geometry and normally this does not happen
186 // since OutputDevice::RemoveTransparenciesFromMetaFile is used as preparation
187 // and no transparent parts should remain for printing. But this can be overriden
188 // by the user and thus happens. This call can only come (currently) from
189 // OutputDevice::DrawTransparent, see comments sthere with the same TaskID.
190 // If it is used, the mapping for the printer is wrong and needs to be corrected. I
191 // checked that there is *no* transformation set (testcode commented out below) and
192 // estimated that a stable factor dependent of the printer's DPI is used. Create
193 // and set a transformation here to correct this
194 const Gdiplus::REAL aDpiX(aGraphics.GetDpiX());
195 const Gdiplus::REAL aDpiY(aGraphics.GetDpiY());
196
197 // test code to check the current transformation at the graphics device
198 //Gdiplus::Matrix matrix;
199 //aGraphics.GetTransform(&matrix);
200 //Gdiplus::REAL elements[6];
201 //matrix.GetElements(elements);
202
203 Gdiplus::Matrix aPrinterTransform;
204 aPrinterTransform.Scale(Gdiplus::REAL(100.0) / aDpiX, Gdiplus::REAL(100.0) / aDpiY);
205 aGraphics.SetTransform(&aPrinterTransform);
206 }
207
181 aGraphics.FillPath(&aTestBrush, &aPath);
182 }
183
184 return true;
185}
186
187bool WinSalGraphics::drawPolyLine(
188 const basegfx::B2DPolygon& rPolygon,

--- 296 unchanged lines hidden ---
208 aGraphics.FillPath(&aTestBrush, &aPath);
209 }
210
211 return true;
212}
213
214bool WinSalGraphics::drawPolyLine(
215 const basegfx::B2DPolygon& rPolygon,

--- 296 unchanged lines hidden ---