<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">So my suggestion is to have the rendering context somehow like this:<br>


<br>
class QgsMapRenderContext<br>
{<br>
 &nbsp; &nbsp; &nbsp; &nbsp;QgsMapToPixel mMapToPixel;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;QgsCoordinateTransform mCoordTransform;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;QgsRect mExtent;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;bool drawEditingInformation;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;bool mRenderingStopped;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;double mResolutionRatio;<br>
};<br>
<br>
The resolution ratio is usually 1, except when drawing to a different paint<br>
device (like QPrinter). I hope it will allow to consider for different line<br>
width / symbol sizes on these output devices.</blockquote><div><br>From what I understand, QgsMapToPixel basically holds the information that mResolutionRatio would contain.<br><br>Martin already mentioned this, but the rendering context needs to have some way to tell the renderer whether to use maximum-resolution vector ouput or cached pixmaps.&nbsp; I would also add something about what the output units are, whether pixels or millimeters.&nbsp; Both of the above might be done together with an &quot;are we printing to ps/pdf/svg&quot; bool.<br>
<br>I would remove symbolScale and widthScale in favor of defining the widths in terms of concrete units, whether pixels, millimeters, or map units.&nbsp; This is what I have attempted to do in the current composer_redesign code.<br>
One of the major problems is that printed millimeters are treated as the same as screen pixels, rather than a separate but similar type of measurement.<br><br>I hope this makes sense.&nbsp; Let me know if I need to clarify anything.<br>
Steven<br><br></div>
</div>