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