mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-28 00:05:33 -04:00
Optimise the logic used when the new geometry backend for selective masking is in effect: Whenever its SAFE, instead of calculating an "entire map" clipping path and then applying this for every feature being rendered, we now defer the calculation of the clipping path until we are rendering individual features. Then, we create a clipping path which contains ONLY the mask paths which are within the area being drawn over. This avoids having the entire map clipping path being used for EVERY feature being rendered, which results in huge PDF/SVG exports when masks are in effect, and instead results in clipping paths which are confined just to a sensible area around each rendered feature. In some complex test projects this reduces the PDF export size by a factor of 0.01!! (and results in PDFs/SVGs which open much quicker in viewers and editors, and don't grind their operation to a halt).