From a9cc078b0e4340d36da2fdef08d45987f8e67145 Mon Sep 17 00:00:00 2001 From: Karl Schultz Date: Mon, 3 Apr 2006 16:54:25 +0000 Subject: [PATCH] Fix problem reported by Bill Newman in read_rgba_pixels for 16 and 32 bit (GDI driver). Bug would cause the wrong pixel to be read if more than one pixel requested and could cause memory access violations. --- src/mesa/drivers/windows/gdi/wmesa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/windows/gdi/wmesa.c b/src/mesa/drivers/windows/gdi/wmesa.c index 21292494242..8e861da5081 100644 --- a/src/mesa/drivers/windows/gdi/wmesa.c +++ b/src/mesa/drivers/windows/gdi/wmesa.c @@ -782,7 +782,7 @@ static void read_rgba_pixels_32(const GLcontext *ctx, for (i=0; ipbPixels + pwfb->ScanWidth * y2)) + x[i]; - pixel = lpdw[i]; + pixel = *lpdw; rgba[i][RCOMP] = (pixel & 0x00ff0000) >> 16; rgba[i][GCOMP] = (pixel & 0x0000ff00) >> 8; rgba[i][BCOMP] = (pixel & 0x000000ff); @@ -966,7 +966,7 @@ static void read_rgba_pixels_16(const GLcontext *ctx, for (i=0; ipbPixels + pwfb->ScanWidth * y2)) + x[i]; - pixel = lpw[i]; + pixel = *lpw; /* Windows uses 5,5,5 for 16-bit */ rgba[i][RCOMP] = (pixel & 0x7c00) >> 7; rgba[i][GCOMP] = (pixel & 0x03e0) >> 2; -- 2.30.2