<div dir="ltr">Hi Michael,<div><br></div><div>I just realized that it would be impossible to write an automated test for PlgBlt now, because Wine has a second, unrelated but, for which I already wrote another email to wine-devel. It's titled "BitBlt doesn't honor the rotation specified by SetWorldTransform". So even with my fixed PlgBlt, Wine's version would still not work correctly, until that second, unrelated bug is fix. That's why I submitted a Windows project where I compare my patched PlgBlt, and Wine's PlgBlt under Windows.</div>
<div><br></div><div>Bearing that in mind, what is your advice? Bruno Jesus already wrote that he can confirm my code runs in Windows. Should I just explain how I reached the formula for the XFORM matrix?</div><div><br></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 27, 2014 at 11:40 PM, Alexander Almaleh <span dir="ltr"><<a href="mailto:sashoalm@gmail.com" target="_blank">sashoalm@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Ok. Btw, I have some other things on my head now, so it might be a week or two before I come back to this.</div>
<div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 23, 2014 at 1:35 AM, Michael Mc Donnell <span dir="ltr"><<a href="mailto:michael@mcdonnell.dk" target="_blank">michael@mcdonnell.dk</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Alexander<div><br></div><div class="gmail_extra"><div class="gmail_quote"><div>On Thu, May 22, 2014 at 2:25 AM, Alexander Almaleh <span dir="ltr"><<a href="mailto:sashoalm@gmail.com" target="_blank">sashoalm@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">OK, I'll try to write a unit test. I found this tutorial - <a href="https://www.winehq.org/docs/winedev-guide/testing" target="_blank">https://www.winehq.org/docs/winedev-guide/testing</a>, is it the correct thing to read?</div>


</div></div></blockquote><div><br></div></div><div>Yes that is the correct thing to read.</div><div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra">
<div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>
<div></div></div>
<div>You might be able to get your patch in without the automated test, but I think you need to explain clearly what was wrong with the old code and what you are doing instead. A few more simplified examples that test other cases in your bug report might also help.<br>



</div></div></blockquote><div><br></div></div><div>The trouble is I don't quite remember the exact steps I took 5 years ago to come up with the new formula. However, I do remember I came up to it by solving a system of linear equations. Since XFORM matrix is applied to each point, I took 3-4 measurements of how points are transformed by PlgBlt, and then used that to make equations of the type applyXFORM(xSrc) = xDest. By solving the equations for the XFORM matrix, I came up with the correct formula I need to get the XFORM matrix from the input variables. I used an online linear equation solver, so there's no human error.</div>



<div><br></div><div>I'll try to recreate the steps, maybe it'll be easier to just explain them. I'll look into making automated tests, too.</div></div></div></div></blockquote><div><br></div></div><div>Sounds good. Like you are saying, figuring out the formulas again would be a good idea. The current code does not explain where the formulas are coming from. Adding that as comments in your patch would make it easier to verify than the current code.</div>

<span><font color="#888888">
<div><br></div><div>Michael</div></font></span></div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>