From a663b9c637fa7e3726e5bf524f863ef3b155b59a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 19 Jul 2013 22:43:14 -0700 Subject: [PATCH] Fixed bug 1977 - D3D_UpdateClipRect() sets the wrong width for the clip rect Bithika Mookherjee SDL_RenderSetClipRect() calls into renderer->UpdateClipRect(renderer). I am not sure if UpdateClipRect() can point to a number of clip rect update functions, but on my platform it calls D3D_UpdateClipRect(). In that function, the rect to pass to IDirect3DDevice9_SetScissorRect() has it's right field set as: r.right = rect->w + rect->w; But actually, this should be: r.right = rect->x + rect->w; --- src/render/direct3d/SDL_render_d3d.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c index a16c111eb..7ace3eed5 100644 --- a/src/render/direct3d/SDL_render_d3d.c +++ b/src/render/direct3d/SDL_render_d3d.c @@ -902,7 +902,7 @@ D3D_UpdateClipRect(SDL_Renderer * renderer) IDirect3DDevice9_SetRenderState(data->device, D3DRS_SCISSORTESTENABLE, TRUE); r.left = rect->x; r.top = rect->y; - r.right = rect->w + rect->w; + r.right = rect->x + rect->w; r.bottom = rect->y + rect->h; result = IDirect3DDevice9_SetScissorRect(data->device, &r);