http://bugs.winehq.org/show_bug.cgi?id=17982
Summary: PatBlt cannot draw arbitrary parallelograms based on the world transform Product: Wine Version: 1.1.18 Platform: Other OS/Version: other Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: winex11.drv AssignedTo: wine-bugs@winehq.org ReportedBy: madewokherd@gmail.com
Using the functions SetGraphicsMode and (Set|Modify)WorldTransform, it is possible to define an arbitrary matrix to transform all points as things are drawn to device contexts. Using this matrix, it should be possible to apply arbitrary rotation/shear effects. Thus, rectangles drawn on the hdc can be transformed into arbitrary parallelograms.
This only works on systems where GM_ADVANCED is supported (NT but not 9x, according to MSDN).
I have written a test program that demonstrates this on Windows. On Wine, it can only draw rectangles.