Hi,
Attached is a series of patches to add better tests and fix Wine's implementation of the conversion between D3DVIEWPORT and D3DVIEWPORT2 structures in IDirect3DViewport / IDirect3DViewport2 / IDirect3DViewport3 implementation.
I'm sending this to to wine-devel because next commit round will be on Monday, so I hope to get some feedback until then and fix any issues before sending to wine-patches. I'm also working on fixing IDirect3DViewport::TransformVertices, which at the very least does not work if viewport data is set using D3DVIEWPORT2. This will fix bug http://bugs.winehq.org/show_bug.cgi?id=11819, which is actually caused by Wine's buggy implementation of TransformVertices and has nothing to do with the z-buffer locking not begin implemented. I'm working on some tests and a fix, and will post them here when they are ready.
Octavian
--
Octavian Voicu (5): ddraw/tests: Remove some redundant d3d viewport tests. ddraw/tests: Add macro to verify viewport data bounds. ddraw/tests: Make ViewportTest loop through an array of tests. ddraw: Add error checking for IDirect3DViewportImpl_[GS]etViewport, with tests. ddraw: Add more viewport tests and make them pass under Windows and Wine.
dlls/ddraw/tests/d3d.c | 329 ++++++++++++++++++++++++++++-------------------- dlls/ddraw/viewport.c | 114 ++++++++++------- 2 files changed, 260 insertions(+), 183 deletions(-)