<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/106724/">http://git.reviewboard.kde.org/r/106724/</a>
     </td>
    </tr>
   </table>
   <br />



 <p>Ship it!</p>



 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Looks good to me. Please don't forget to document the methods.

I just wonder if artists work usually with subpixel precision mostly or without?
</pre>
 <br />





<div>




<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/106724/diff/1/?file=88422#file88422line187" style="color: black; font-weight: bold; text-decoration: underline;">krita/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">qreal KisBrushOp::paintAt(const KisPaintInformation& info)</pre></td>

  </tr>
 </tbody>





 
 


 <tbody>

  <tr>
    <th bgcolor="#ebb1ba" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">178</font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">m_textureProperties</span><span class="p">.</span><span class="n">apply</span><span class="p">(</span><span class="n">dab</span><span class="p">,</span> <span class="n">info</span><span class="p">.</span><span class="n">pos</span><span class="p">().</span><span class="n">toPoint</span><span class="p">());</span></pre></td>
    <th bgcolor="#ebb1ba" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Where is this code now?</pre>
</div>
<br />

<div>




<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/106724/diff/1/?file=88432#file88432line36" style="color: black; font-weight: bold; text-decoration: underline;">krita/plugins/paintops/libpaintop/kis_dab_cache.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">class KisPrecisionOption;</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">36</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cp">#define COUNT_HIT() m_hitRate++</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"></pre>
</div>
<br />

<div>




<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/106724/diff/1/?file=88432#file88432line67" style="color: black; font-weight: bold; text-decoration: underline;">krita/plugins/paintops/libpaintop/kis_dab_cache.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">class KisPrecisionOption;</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">67</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">bool</span> <span class="n">needSeparateOriginal</span><span class="p">();</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Documentation, please. At least for every public method.</pre>
</div>
<br />



<p>- Lukáš</p>


<br />
<p>On October 4th, 2012, 2:30 p.m., Dmitry Kazakov wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Calligra and Lukáš Tvrdý.</div>
<div>By Dmitry Kazakov.</div>


<p style="color: grey;"><i>Updated Oct. 4, 2012, 2:30 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Hi!

This patch adds caching of the dabs to the paint op system of Krita. Such cache makes the execution of the benchmarks up to 2 times faster. Subjectively, the real painting becomes much faster, especially with huge brushes.

Of course, such caching makes the painting a bit less precise: we need to tolerate subpixel differences to allow the cache to work. Sometimes small difference in the size of a dab can also be acceptable. That is why I introduced levels of precision. They are graded from 1 to 5: from the fastest and less precise to the slowest, but with the best quality. You can see the slider in the paintop settings dialog. The ToolTip text explains which features of the brush are sacrificed on each precision level.

The texturing and mirroring problems are solved.

My next steps are: make this cache tolerate bug 307588 and port it to other brush-based paitops.</pre>
  </td>
 </tr>
</table>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>krita/image/kis_fixed_paint_device.h <span style="color: grey">(feeed0b)</span></li>

 <li>krita/image/kis_fixed_paint_device.cpp <span style="color: grey">(5ef55af)</span></li>

 <li>krita/image/kis_painter.h <span style="color: grey">(25a11c9)</span></li>

 <li>krita/image/kis_painter.cc <span style="color: grey">(bec3776)</span></li>

 <li>krita/plugins/paintops/defaultpaintops/brush/kis_brushop.h <span style="color: grey">(1b545ef)</span></li>

 <li>krita/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp <span style="color: grey">(177fa7e)</span></li>

 <li>krita/plugins/paintops/defaultpaintops/brush/kis_brushop_settings_widget.cpp <span style="color: grey">(cbd6667)</span></li>

 <li>krita/plugins/paintops/libpaintop/CMakeLists.txt <span style="color: grey">(bd1b021)</span></li>

 <li>krita/plugins/paintops/libpaintop/forms/wdgbrushchooser.ui <span style="color: grey">(b19828f)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_brush_based_paintop_options_widget.h <span style="color: grey">(734df21)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_brush_based_paintop_options_widget.cpp <span style="color: grey">(51cc2d2)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_brush_option_widget.h <span style="color: grey">(cf426cb)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_brush_option_widget.cpp <span style="color: grey">(c0e171e)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_brush_selection_widget.h <span style="color: grey">(d25729f)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_brush_selection_widget.cpp <span style="color: grey">(e0bedd8)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_dab_cache.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_dab_cache.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_precision_option.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_precision_option.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_pressure_sharpness_option.h <span style="color: grey">(8281da4)</span></li>

 <li>krita/plugins/paintops/libpaintop/kis_pressure_sharpness_option.cpp <span style="color: grey">(6157e5e)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/106724/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>