diff --git a/src/render_d3d9.c b/src/render_d3d9.c index 768fd56..6196bda 100644 --- a/src/render_d3d9.c +++ b/src/render_d3d9.c @@ -58,19 +58,19 @@ static void InitDirect3D(BOOL reset) float scaleW = (float)width / surfaceTexWidth;; float scaleH = (float)height / surfaceTexHeight; - float vpX = (float)ddraw->render.viewport.x - 0.5f; - float vpY = (float)ddraw->render.viewport.y - 0.5f; + float vpX = (float)ddraw->render.viewport.x; + float vpY = (float)ddraw->render.viewport.y; - float vpW = (float)(ddraw->render.viewport.width + vpX) - 0.5f; - float vpH = (float)(ddraw->render.viewport.height + vpY) - 0.5f; + float vpW = (float)(ddraw->render.viewport.width + vpX); + float vpH = (float)(ddraw->render.viewport.height + vpY); typedef struct CUSTOMVERTEX { float x, y, z, rhw, u, v; } CUSTOMVERTEX; CUSTOMVERTEX vertices[] = { - { vpX, vpH, 0.0f, 1.0f, 0.0f, scaleH }, - { vpX, vpY, 0.0f, 1.0f, 0.0f, 0.0f }, - { vpW, vpH, 0.0f, 1.0f, scaleW, scaleH }, - { vpW, vpY, 0.0f, 1.0f, scaleW, 0.0f } + { vpX - 0.5f, vpH - 0.5f, 0.0f, 1.0f, 0.0f, scaleH }, + { vpX - 0.5f, vpY - 0.5f, 0.0f, 1.0f, 0.0f, 0.0f }, + { vpW - 0.5f, vpH - 0.5f, 0.0f, 1.0f, scaleW, scaleH }, + { vpW - 0.5f, vpY - 0.5f, 0.0f, 1.0f, scaleW, 0.0f } }; D3ddev->lpVtbl->SetFVF(D3ddev, D3DFVF_XYZRHW | D3DFVF_TEX1); @@ -117,16 +117,13 @@ DWORD WINAPI render_d3d9_main(void) int maxfps = ddraw->render.maxfps; - if (ddraw->vsync) - maxfps = 1000; - if (maxfps < 0) maxfps = ddraw->mode.dmDisplayFrequency; if (maxfps == 0) maxfps = 125; - if (maxfps >= 1000) + if (maxfps >= 1000 || ddraw->vsync) maxfps = 0; if (maxfps > 0)