<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:windowtext;mso-fareast-language:EN-US">Maybe not as fast or future proof, but Maybe a simple Item Rectangle of each type (full and empty) and use a repeater of Qml ShaderEffect {} to duplicate the rendering, may lead
 to decent performance. Not sure if this will be good enough.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="595" style="width:446.55pt;background:white;border-collapse:collapse">
<tbody>
<tr>
<td width="406" valign="top" style="width:304.7pt;border:none;border-right:solid #0079AC 1.0pt;padding:0cm 7.5pt 0cm 0cm">
<p class="MsoNormal" align="center" style="mso-margin-top-alt:auto;margin-bottom:12.0pt;text-align:center">
<span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#444444"><br>
</span><img width="396" height="102" style="width:4.125in;height:1.0625in" id="Picture_x0020_1" src="cid:image001.jpg@01D58FF6.802FCA00" alt="36E56279"><span lang="FR-CA" style="color:windowtext"><o:p></o:p></span></p>
<p class="MsoNormal" align="center" style="mso-margin-top-alt:auto;margin-bottom:12.0pt;text-align:center">
<span lang="FR" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#444444">une compagnie 
</span><img width="55" height="14" style="width:.5729in;height:.1458in" id="Picture_x0020_2" src="cid:image002.jpg@01D58FF6.802FCA00"><span lang="FR-CA" style="color:windowtext"><o:p></o:p></span></p>
<p class="MsoNormal" align="center" style="mso-margin-top-alt:auto;margin-bottom:12.0pt;text-align:center">
<span lang="FR-CA" style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#444444">RAPPROCHEZ LA DISTANCE</span><span lang="FR-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext"><o:p></o:p></span></p>
</td>
<td width="189" style="width:141.85pt;padding:0cm 0cm 0cm 0cm">
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tbody>
<tr>
<td width="305" valign="top" style="width:228.75pt;padding:0cm 0cm 3.75pt 7.5pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:18.75pt">
<b><span lang="FR-CA" style="font-size:14.0pt;font-family:"Arial",sans-serif;color:#073763">Jérôme Godbout</span></b><b><span lang="FR-CA" style="font-size:14.0pt;font-family:"Arial",sans-serif;color:windowtext"><br>
</span></b><span lang="FR-CA" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext">Développeur Logiciel Sénior / <br>
Senior Software Developer</span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="padding:3.75pt 0cm 3.75pt 7.5pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#073763">p:</span></b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#073763"> </span><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext">+1
 (418) 800-1073 ext.:109</span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="padding:3.75pt 0cm 3.75pt 7.5pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#073763"><a href="http://www.amotus-solutions.com/" target="_blank"><span style="color:#1155CC">amotus.ca</span></a><br>
<a href="http://statum-iot.com/" target="_blank"><span style="color:#1155CC">statum-iot.com</span></a><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><a href="https://www.facebook.com/LesSolutionsAmotus/"><span style="color:windowtext;text-decoration:none"><img border="0" width="10" height="10" style="width:.1041in;height:.1041in" id="Picture_x0020_3" src="cid:image003.png@01D58FF6.802FCA00"></span></a><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext"> </span><a href="https://www.linkedin.com/company/amotus-solutions/"><span style="color:windowtext;text-decoration:none"><img border="0" width="10" height="10" style="width:.1041in;height:.1041in" id="Picture_x0020_4" src="cid:image004.png@01D58FF6.802FCA00"></span></a><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext"> </span><a href="https://twitter.com/AmotusSolutions"><span style="color:windowtext;text-decoration:none"><img border="0" width="10" height="10" style="width:.1041in;height:.1041in" id="Picture_x0020_5" src="cid:image005.png@01D58FF6.802FCA00"></span></a><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:windowtext"> </span><a href="https://www.youtube.com/channel/UCoYpQgsmj1iJZyDjTQ3x8Ig"><span style="color:windowtext;text-decoration:none"><img border="0" width="10" height="10" style="width:.1041in;height:.1041in" id="Picture_x0020_6" src="cid:image006.jpg@01D58FF6.802FCA00"></span></a><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="padding:3.75pt 0cm 3.75pt 7.5pt"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="color:windowtext;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="color:windowtext">From:</span></b><span lang="EN-US" style="color:windowtext"> Interest <interest-bounces@qt-project.org>
<b>On Behalf Of </b>Alexander Dyagilev<br>
<b>Sent:</b> October 31, 2019 2:13 PM<br>
<b>To:</b> Nuno Santos <nunosantos@imaginando.pt><br>
<b>Cc:</b> interest@qt-project.org<br>
<b>Subject:</b> Re: [Interest] Qml Canvas is too slow<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Thanks for the answer.<o:p></o:p></p>
<p>This means I'll have to use c++. But I was asking for a way to stick with a pure QML.<o:p></o:p></p>
<p><o:p> </o:p></p>
<div>
<p class="MsoNormal">On 10/31/2019 7:52 PM, Nuno Santos wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Alexander, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">You should use QtQuick Scene Graph. It will be 100x faster.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Look for examples on QtCreator under the welcome tab. Use the search input box and write “scene graph”.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Scene Graph - Custom Geometry<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Scene Graph - Graph<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">If it is the first time, it might look confusing but it will pay off.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Best,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Nuno<o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On 31 Oct 2019, at 16:42, Alexander Dyagilev <<a href="mailto:alervdvcw@gmail.com">alervdvcw@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hello,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The following code is too slow (paint operation takes few seconds):<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:purple">Canvas</span><span style="color:silver">
</span>{ <o:p></o:p></p>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:maroon">id</span>:<span style="color:silver"> </span><i>map</i><o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:maroon">width</span>:<span style="color:silver"> </span><i>columnsCount</i><span style="color:silver"> </span>*<span style="color:silver"> </span><i>rectangleSize</i><o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:maroon">height</span>:<span style="color:silver"> </span><i>rowsCount</i><span style="color:silver"> </span>*<span style="color:silver"> </span><i>rectangleSize</i><o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:maroon">anchors.horizontalCenter</span>:<span style="color:silver"> </span><i>alignCenter</i><span style="color:silver"> </span>?<span style="color:silver"> </span><i>parent</i>.horizontalCenter<span style="color:silver"> </span>:<span style="color:silver"> </span>undefined<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:maroon">anchors.left</span>:<span style="color:silver"> </span><i>alignCenter</i><span style="color:silver"> </span>?<span style="color:silver"> </span>undefined<span style="color:silver"> </span>:<span style="color:silver"> </span><i>parent</i>.left<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:maroon">anchors.bottom</span>:<span style="color:silver"> </span><i>parent</i>.bottom<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:olive">property</span><span style="color:silver"> </span><span style="color:olive">int</span><span style="color:silver"> </span><span style="color:maroon">offset</span>:<span style="color:silver"> </span>1<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:maroon">onPaint</span>:<span style="color:silver"> </span><i>drawMap</i>()<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:olive">function</span><span style="color:silver"> </span><i>drawMap</i>()<span style="color:silver"> </span>{<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><span style="color:olive">if</span><span style="color:silver"> </span>(<i>columnsCount</i><span style="color:silver"> </span>===<span style="color:silver"> </span>0<span style="color:silver"> </span>||<span style="color:silver"> </span><i>rowsCount</i><span style="color:silver"> </span>===<span style="color:silver"> </span>0)<span style="color:silver"> </span>{<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                </span><span style="color:olive">return</span>;<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span>}<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><span style="color:olive">var</span><span style="color:silver"> </span><i><span style="color:#2985C7">map</span></i><span style="color:silver"> </span>=<span style="color:silver"> </span><i>downloadProgressMap</i>.map();<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><span style="color:olive">var</span><span style="color:silver"> </span><i><span style="color:#2985C7">ctx</span></i><span style="color:silver"> </span>=<span style="color:silver"> </span><i>getContext</i>(<span style="color:green">"2d"</span>);<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><span style="color:olive">for</span><span style="color:silver"> </span>(<span style="color:olive">var</span><span style="color:silver"> </span><i><span style="color:#2985C7">i</span></i><span style="color:silver"> </span>=<span style="color:silver"> </span>0;<span style="color:silver"> </span><i><span style="color:#2985C7">i</span></i><span style="color:silver"> </span><<span style="color:silver"> </span><i><span style="color:#2985C7">map</span></i>.length;<span style="color:silver"> </span><i><span style="color:#2985C7">i</span></i>++)<span style="color:silver"> </span>{<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                </span><span style="color:olive">var</span><span style="color:silver"> </span><i><span style="color:#2985C7">x</span></i><span style="color:silver"> </span>=<span style="color:silver"> </span>(<i><span style="color:#2985C7">i</span></i><span style="color:silver"> </span>%<span style="color:silver"> </span><i>columnsCount</i>)<span style="color:silver"> </span>*<span style="color:silver"> </span><i>rectangleSize</i>;<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                </span><span style="color:olive">var</span><span style="color:silver"> </span><i><span style="color:#2985C7">y</span></i><span style="color:silver"> </span>=<span style="color:silver"> </span>(<i><span style="color:#0055AF">Math</span></i>.floor(<i><span style="color:#2985C7">i</span></i>/<i>columnsCount</i>))<span style="color:silver"> </span>*<span style="color:silver"> </span><i>rectangleSize</i>;<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                </span><span style="color:olive">if</span><span style="color:silver"> </span>(<i><span style="color:#2985C7">map</span></i>[<i><span style="color:#2985C7">i</span></i>])<span style="color:silver"> </span>{<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                    </span><i>drawFillRect</i>(<i><span style="color:#2985C7">ctx</span></i>,<span style="color:silver"> </span><i><span style="color:#2985C7">x</span></i>,<span style="color:silver"> </span><i><span style="color:#2985C7">y</span></i>);<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                </span>}<span style="color:silver"> </span><span style="color:olive">else</span><span style="color:silver"> </span>{<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                    </span><i>drawClearRect</i>(<i><span style="color:#2985C7">ctx</span></i>,<span style="color:silver"> </span><i><span style="color:#2985C7">x</span></i>,<span style="color:silver"> </span><i><span style="color:#2985C7">y</span></i>);<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">                </span>}<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span>}<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span>}<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:olive">function</span><span style="color:silver"> </span><i>drawFillRect</i>(ctx,<span style="color:silver"> </span>x,<span style="color:silver"> </span>y)<span style="color:silver"> </span>{<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillStyle<span style="color:silver"> </span>=<span style="color:silver"> </span>appWindow.theme.progressMapFillBorder<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillRect(<i><span style="color:#2985C7">x</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i>,<span style="color:silver"> </span><i><span style="color:#2985C7">y</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i>,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>*<span style="color:silver"> </span>2,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>*<span style="color:silver"> </span>2);<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillStyle<span style="color:silver"> </span>=<span style="color:silver"> </span>appWindow.theme.progressMapFillBackground<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillRect(<i><span style="color:#2985C7">x</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1,<span style="color:silver"> </span><i><span style="color:#2985C7">y</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span>(<i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1)<span style="color:silver"> </span>*<span style="color:silver"> </span>2,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span>(<i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1)<span style="color:silver"> </span>*<span style="color:silver"> </span>2);<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span>}<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span><span style="color:olive">function</span><span style="color:silver"> </span><i>drawClearRect</i>(ctx,<span style="color:silver"> </span>x,<span style="color:silver"> </span>y)<span style="color:silver"> </span>{<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillStyle<span style="color:silver"> </span>=<span style="color:silver"> </span>appWindow.theme.progressMapClearBorder<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillRect(<i><span style="color:#2985C7">x</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i>,<span style="color:silver"> </span><i><span style="color:#2985C7">y</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i>,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>*<span style="color:silver"> </span>2,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>*<span style="color:silver"> </span>2);<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillStyle<span style="color:silver"> </span>=<span style="color:silver"> </span>appWindow.theme.background<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">            </span><i><span style="color:#2985C7">ctx</span></i>.fillRect(<i><span style="color:#2985C7">x</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1,<span style="color:silver"> </span><i><span style="color:#2985C7">y</span></i><span style="color:silver"> </span>+<span style="color:silver"> </span><i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span>(<i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1)<span style="color:silver"> </span>*<span style="color:silver"> </span>2,<span style="color:silver"> </span><i>rectangleSize</i><span style="color:silver"> </span>-<span style="color:silver"> </span>(<i>offset</i><span style="color:silver"> </span>+<span style="color:silver"> </span>1)<span style="color:silver"> </span>*<span style="color:silver"> </span>2);<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">        </span>}<o:p></o:p></pre>
<pre style="-qt-block-indent:0"><span style="color:silver">    </span>}<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Can anything be done to improve its speed, or should we use c++ instead?<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>It paints the following:<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><laaeocmjenhcnjkg.png><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Map size: 2323 elements.<o:p></o:p></pre>
</div>
<p class="MsoNormal">_______________________________________________<br>
Interest mailing list<br>
<a href="mailto:Interest@qt-project.org">Interest@qt-project.org</a><br>
<a href="https://lists.qt-project.org/listinfo/interest">https://lists.qt-project.org/listinfo/interest</a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
</div>
</body>
</html>