Alexander Dorofeyev : ddraw: Fix vertex processing.
Alexandre Julliard
julliard at winehq.org
Mon Mar 24 15:21:46 CDT 2008
Module: wine
Branch: master
Commit: e2d8e291d6a3e77ec621f1322b245aed9f40d707
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2d8e291d6a3e77ec621f1322b245aed9f40d707
Author: Alexander Dorofeyev <alexd4 at 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;
More information about the wine-cvs
mailing list