On 6/29/07, Koshelev, Misha Vladislavo mk144210@bcm.tmc.edu wrote:
On 6/27/07, Evan Stade <estade at gmail.com> wrote:
Hi,
[try2] The patch I sent yesterday was not properly todo_wined. Also, this test is a bit more extensive (about twice as many points drawn). It uses various point-type combination (even non-sensical ones such as PT_LINETO | PT_MOVETO) to test the exact logic of PolyDraw with an open path.
changelog:
- added polydraw test to path testing (5 more todo_wines)
dlls/gdi32/tests/path.c | 70
+++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 70 insertions(+), 0 deletions(-)
-- Evan Stade
Also, I'd add a PT_MOVETO into your first PolyDraw call so you can tell whether PT_CLOSEFIGURE adds a PT_MOVETO to orig_pos or lastmove, as the current version does not differentiate this.
Misha
Thanks a lot for your help.
Your shorter diff may make the tests conform, but it incorrectly assigns lastmove.x = dc->CursPosX. This only makes it conform to the tests because the tests happen to have a MoveToEx as the last path point before the PolyDraw is called. Also, your diff doesn't correctly check the point types. The test if( lpbTypes[i] == PT_MOVETO) (which was there before your changes) is wrong because it returns false for PT_MOVETO | PT_LINETO, when it should return true (according to my testing which was not a part of the test I submitted). Also, your diff does not MoveToEx to orig_pos at the second "return FALSE". This is incorrect but again does not show up in the tests.
So while a small and simple diff can make these specific tests conform, it is not correct. However I still don't understand how this influences whether the test patch got accepted. Your explanation of why the fix patch didn't get accepted on the other hand does make sense.