http://bugs.winehq.org/show_bug.cgi?id=14609
Summary: Some DirectX vector math functions need to take a copy of the input vector. Product: Wine Version: 1.1.1 Platform: All OS/Version: All Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: andrew@nelless.net CC: spam@sentrika.net
Hi,
A friend (CC'd) reports that WINE's D3DXVec3TransformCoord() [dlls/d3dx8/math.c:1226] is producing different output to the native Windows version. He narrowed the problem down to the function not taking a copy of the input vector when the input vector and the output vector pointers are the same.
In TransformCoord(), when pout == pv, pout->x and pout->y are written and then used immediately through pv->x and pv->y, respectively, resulting in completely skewed output.
This most likely effects many other D3DXVec* functions too.