Module: wine Branch: master Commit: e2d8e291d6a3e77ec621f1322b245aed9f40d707 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2d8e291d6a3e77ec621f1322b...
Author: Alexander Dorofeyev alexd4@inbox.lv Date: Sun Mar 23 17:18:44 2008 +0200
ddraw: Fix vertex processing.
---
dlls/ddraw/executebuffer.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c index fce3c4f..fe24fe3 100644 --- a/dlls/ddraw/executebuffer.c +++ b/dlls/ddraw/executebuffer.c @@ -437,9 +437,9 @@ IDirect3DExecuteBufferImpl_Execute(IDirect3DExecuteBufferImpl *This, dst->u3.sz = (src->u1.x * mat._13) + (src->u2.y * mat._23) + (src->u3.z * mat._33) + (1.0 * mat._43); dst->u4.rhw = (src->u1.x * mat._14) + (src->u2.y * mat._24) + (src->u3.z * mat._34) + (1.0 * mat._44);
- dst->u1.sx = dst->u1.sx / dst->u4.rhw * Viewport->dwWidth / 2 + dst->u1.sx = dst->u1.sx / dst->u4.rhw * Viewport->dvScaleX + Viewport->dwX + Viewport->dwWidth / 2; - dst->u2.sy = (-dst->u2.sy) / dst->u4.rhw * Viewport->dwHeight / 2 + dst->u2.sy = (-dst->u2.sy) / dst->u4.rhw * Viewport->dvScaleY + Viewport->dwY + Viewport->dwHeight / 2; dst->u3.sz /= dst->u4.rhw; dst->u4.rhw = 1 / dst->u4.rhw; @@ -460,8 +460,8 @@ IDirect3DExecuteBufferImpl_Execute(IDirect3DExecuteBufferImpl *This, dump_D3DMATRIX(&proj_mat); TRACE(" View Matrix : (%p)\n",&view_mat); dump_D3DMATRIX(&view_mat); - TRACE(" World Matrix : (%p)\n", &mat); - dump_D3DMATRIX(&mat); + TRACE(" World Matrix : (%p)\n", &world_mat); + dump_D3DMATRIX(&world_mat); }
multiply_matrix(&mat,&view_mat,&world_mat); @@ -479,8 +479,11 @@ IDirect3DExecuteBufferImpl_Execute(IDirect3DExecuteBufferImpl *This, dst->u3.sz = (src->u1.x * mat._13) + (src->u2.y * mat._23) + (src->u3.z * mat._33) + (1.0 * mat._43); dst->u4.rhw = (src->u1.x * mat._14) + (src->u2.y * mat._24) + (src->u3.z * mat._34) + (1.0 * mat._44);
- dst->u1.sx /= dst->u4.rhw * Viewport->dvScaleX * Viewport->dwWidth / 2 + Viewport->dwX; - dst->u2.sy /= dst->u4.rhw * Viewport->dvScaleY * Viewport->dwHeight / 2 + Viewport->dwY; + dst->u1.sx = dst->u1.sx / dst->u4.rhw * Viewport->dvScaleX + + Viewport->dwX + Viewport->dwWidth / 2; + dst->u2.sy = (-dst->u2.sy) / dst->u4.rhw * Viewport->dvScaleY + + Viewport->dwY + Viewport->dwHeight / 2; + dst->u3.sz /= dst->u4.rhw; dst->u4.rhw = 1 / dst->u4.rhw;