<div dir="ltr">Thanks.<div>We may implement this approach, or let the IOS scrollview handle this under the hood. We will know exactly after considering the options.<br><div>Still, this does not solve the issue of precise scaling.</div>

</div><div style>We need to be able to scale the zoom, to any screen value, as that is standard touch behaviour. if not we will have to always scale the picture, either up or down.</div><div style>if we scale up, we will get bulky graphics. if we scale down, we will need to render a canvas larger than that we will show, which will result with both scaled (rather than sharp) graphics, and lesser performance (as the bigger the canvas, the bigger the rendering cost).</div>

<div style>The only way to solve this, is to be able to give scaling instructions, with a double/float granularity, rather than integer / long - or - multiply the zoom factor by say, a 1000, allowing us finer precision over the zoom.</div>

<div style>The only question is how to do it, and with the least risk to damage other components, relying on the zoom mechanisms.</div><div style><br></div><div style>btw, this is why i prefer double/float over multiplying zoom by say, a 1000, as within the scale of a reasonable zoom (1% to 1000%), the conversion from floating point to integer is non reductive and automatic - meaning whoever is relying on the zoom to be as is, will be able to continue working, via a simple cast, which possibly will be added automatically by the compiler.</div>

<div style><br></div><div style>ptyl</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 12, 2013 at 2:01 PM, Noel Grandin <span dir="ltr"><<a href="mailto:noel@peralex.com" target="_blank">noel@peralex.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 2013-08-11 19:47, Ptyl Dragon wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
additionally, we are trying to get the zoom to be continuous, so to follow a pinch gesture as native touch devices do. currently, i believe zooming is done in integers, representing percentages. we need to get it to work with float or double values, so to allow the<br>


</blockquote>
<br></div>
Zooming on mobile devices is tricky. To make it smooth, you will need to implement a mobile-specific strategy.<br>
<br>
Typically, the way that zooming on mobile devices works is this<br>
- when zooming, the UI enters a special ZOOMING state<br>
- when zooming in, the zoom code asks the underlying code to render a bitmap target about twice the size of the current screen.<br>
Then it uses the mobile device graphics framework, typically the on-board GPU , to rescale as need be.<br>
- it typically does the rendering to bitmap from outside the main thread<br>
- only when the zooming is over, does the zooming code tell the UI to resize properly to the new target size<br>
<br>
This is why when zooming in or out slowly everything looks fine.<br>
But when you zoom quickly, you sometimes see jagged lines for a while.<br>
This is because the background did not have enough time to render a new target bitmap, so the zooming code is stuck with rescaling the old bitmap.<br>
<br>
HTH, Noel.<br>
<br>
Disclaimer: <a href="http://www.peralex.com/disclaimer.html" target="_blank">http://www.peralex.com/<u></u>disclaimer.html</a><br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">
        <table border="0" cellpadding="0" cellspacing="0" style="font-family:arial;font-size:small">
                <tbody>
                        <tr>
                                <td style="width:51pt;padding:0.75pt" width="68">
                                        <p style="margin-right:0.4pt;margin-bottom:0.0001pt;margin-left:0.4pt">
                                                <a name="SafeHtmlFilter_SafeHtmlFilter_13ed1a8c2f9e26a1__MailAutoSig" style="color:rgb(17,85,204)"></a><span style="font-size:9pt;font-family:Helvetica,sans-serif"><img alt="appicon.png" height="63" src="http://site.cloudon.com/wp-content/uploads/2012/05/appicon.png" width="64"></span></p>


                                </td>
                                <td>
                                         </td>
                                <td style="width:207pt;padding:0.75pt" width="276">
                                        <p style="margin-right:0.4pt;margin-bottom:0.0001pt;margin-left:0.4pt">
                                                <strong>Ptyl Dragon</strong><br>
                                                <br>
                                                <a href="http://www.twitter.com/cloudoninc" style="color:rgb(17,85,204)" target="_blank"><span style="font-size:10pt;font-family:Helvetica,sans-serif;color:rgb(148,201,71);text-decoration:none">Twitter</span></a><span style="font-size:11.5pt;font-family:Helvetica,sans-serif"> </span><span style="font-size:10pt;font-family:Helvetica,sans-serif;color:rgb(102,102,102)">|</span><span style="font-size:11.5pt;font-family:Helvetica,sans-serif"> </span><a href="http://www.linkedin.com/company/cloudon" style="color:rgb(17,85,204)" target="_blank"><span style="font-size:10pt;font-family:Helvetica,sans-serif;color:rgb(148,201,71);text-decoration:none">LinkedIn</span></a><span style="font-size:10pt;font-family:Helvetica,sans-serif;color:rgb(102,102,102)"> |</span><span style="font-size:11.5pt;font-family:Helvetica,sans-serif"> </span><a href="http://www.facebook.com/cloudoninc" style="color:rgb(17,85,204)" target="_blank"><span style="font-size:10pt;font-family:Helvetica,sans-serif;color:rgb(148,201,71);text-decoration:none">Facebook</span></a><span style="font-size:11.5pt;font-family:Helvetica,sans-serif"> </span><span style="font-size:10pt;font-family:Helvetica,sans-serif;color:rgb(102,102,102)">|</span><span style="font-size:11.5pt;font-family:Helvetica,sans-serif"> </span><a href="http://site.cloudon.com/blog" style="color:rgb(17,85,204)" target="_blank"><span style="font-size:10pt;font-family:Helvetica,sans-serif;color:rgb(148,201,71);text-decoration:none">Blog</span></a></p>


                                </td>
                        </tr>
                </tbody>
        </table>
        <table border="0" cellpadding="0" cellspacing="0">
                <tbody>
                        <tr>
                                <td style="width:51.0pt;padding:.75pt .75pt .75pt .75pt" width="68">
                                         </td>
                                <td style="width:207.0pt;padding:.75pt .75pt .75pt .75pt" width="276">
                                        <p style="margin-top:0in;margin-right:.4pt;margin-bottom:0in;margin-left:.4pt;margin-bottom:.0001pt">
                                                 </p>
                                </td>
                        </tr>
                </tbody>
        </table>
</div>
<br>
</div>