Fix for PlgBlt, the XFORM matrix was calculated incorrectly

Michael Mc Donnell michael at mcdonnell.dk
Sun Jun 15 21:07:04 CDT 2014


Hi Alexander

On Wed, Jun 11, 2014 at 5:36 AM, Alexander Almaleh <sashoalm at gmail.com> wrote:
>
> 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.

I do not understand how that would stop you from writing an automated
test? You can use todo_wine to show how the code is supposed to work.
You can then cross compile the test and upload it to the Wine TestBot.
The Wine TestBot will run your test on Windows and report back if it
is correct. The automated test can then be applied to the wine source
tree. Once your patch with the fix is ready you can submit it together
with a patch that removes the todo_wine.

> 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?

I think you will need to be able to explain why the old code is wrong
and explain why yours is better. Explaining what the formula is might
be a good way to *help* explain it. It is important that your code
does not break anything. You have found one example where your code
works better but it might break other examples.

I see Nikolay Sivov, the author of the function, has already given you
feedback earlier [1]. He will probably be one of the people you need
to convince. When he said:

"P.S. I don't see your point on inlining determinant expression."

He probably means you should rewrite your equation to use the
determinant, unless you have a very good reason, in which case you
need to explain it. I personally think you might be able to fix his
code instead of replacing it.

Good luck,
Michael

[1] http://www.winehq.org/pipermail/wine-devel/2009-December/080392.html



More information about the wine-devel mailing list