From ccd502719ba4aa6e07986a6f57cdc9fc15ceaf4d Mon Sep 17 00:00:00 2001 From: TomW Date: Wed, 25 Nov 2015 21:23:33 +0000 Subject: [PATCH] Added clipping to DirectDraw blit function. --- src/win-ddraw.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/win-ddraw.cc b/src/win-ddraw.cc index 90ed957..42df38f 100644 --- a/src/win-ddraw.cc +++ b/src/win-ddraw.cc @@ -165,7 +165,10 @@ static void ddraw_blit_memtoscreen(int x, int y, int y1, int y2, int w, int h) } if (!ddsd.lpSurface) return; for (yy = y1; yy < y2; yy++) - memcpy(ddsd.lpSurface + (yy * ddsd.lPitch), &(((uint32_t *)buffer32->line[y + yy])[x]), w * 4); + { + if ((y + yy) >= 0 && (y + yy) < buffer->h) + memcpy(ddsd.lpSurface + (yy * ddsd.lPitch), &(((uint32_t *)buffer32->line[y + yy])[x]), w * 4); + } lpdds_back->Unlock(NULL); po.x = po.y = 0;