From ff4045b110d1f6d020281a03e29e7badd4ce3f12 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Wed, 18 Jan 2012 14:48:24 +0000 Subject: [PATCH] gdi32: Use separate x and y parameters in the get_pixel primitive. --- dlls/gdi32/dibdrv/bitblt.c | 5 +---- dlls/gdi32/dibdrv/dibdrv.h | 2 +- dlls/gdi32/dibdrv/graphics.c | 2 +- dlls/gdi32/dibdrv/primitives.c | 30 +++++++++++++++--------------- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/dlls/gdi32/dibdrv/bitblt.c b/dlls/gdi32/dibdrv/bitblt.c index 3ae53b2c909..c3acb8c8f32 100644 --- a/dlls/gdi32/dibdrv/bitblt.c +++ b/dlls/gdi32/dibdrv/bitblt.c @@ -1350,13 +1350,10 @@ DWORD gradient_bitmapinfo( const BITMAPINFO *info, void *bits, TRIVERTEX *vert_a COLORREF get_pixel_bitmapinfo( const BITMAPINFO *info, void *bits, struct bitblt_coords *src ) { dib_info dib; - POINT pt; DWORD pixel; init_dib_info_from_bitmapinfo( &dib, info, bits, default_color_table ); - pt.x = src->x; - pt.y = src->y; - pixel = dib.funcs->get_pixel( &dib, &pt ); + pixel = dib.funcs->get_pixel( &dib, src->x, src->y ); return dib.funcs->pixel_to_colorref( &dib, pixel ); } diff --git a/dlls/gdi32/dibdrv/dibdrv.h b/dlls/gdi32/dibdrv/dibdrv.h index 2c980fe7ad3..fb7eb21f3ab 100644 --- a/dlls/gdi32/dibdrv/dibdrv.h +++ b/dlls/gdi32/dibdrv/dibdrv.h @@ -186,7 +186,7 @@ typedef struct primitive_funcs BOOL (* gradient_rect)(const dib_info *dib, const RECT *rc, const TRIVERTEX *v, int mode); void (* draw_glyph)(const dib_info *dst, const RECT *rc, const dib_info *glyph, const POINT *origin, DWORD text_pixel, const struct intensity_range *ranges); - DWORD (* get_pixel)(const dib_info *dib, const POINT *pt); + DWORD (* get_pixel)(const dib_info *dib, int x, int y); DWORD (* colorref_to_pixel)(const dib_info *dib, COLORREF color); COLORREF (* pixel_to_colorref)(const dib_info *dib, DWORD pixel); void (* convert_to)(dib_info *dst, const dib_info *src, const RECT *src_rect); diff --git a/dlls/gdi32/dibdrv/graphics.c b/dlls/gdi32/dibdrv/graphics.c index 166c577208b..515f339c144 100644 --- a/dlls/gdi32/dibdrv/graphics.c +++ b/dlls/gdi32/dibdrv/graphics.c @@ -720,7 +720,7 @@ COLORREF dibdrv_GetPixel( PHYSDEV dev, INT x, INT y ) pt.y < 0 || pt.y >= pdev->dib.height) return CLR_INVALID; - pixel = pdev->dib.funcs->get_pixel( &pdev->dib, &pt ); + pixel = pdev->dib.funcs->get_pixel( &pdev->dib, pt.x, pt.y ); return pdev->dib.funcs->pixel_to_colorref( &pdev->dib, pixel ); } diff --git a/dlls/gdi32/dibdrv/primitives.c b/dlls/gdi32/dibdrv/primitives.c index 122e750207e..55c17b74865 100644 --- a/dlls/gdi32/dibdrv/primitives.c +++ b/dlls/gdi32/dibdrv/primitives.c @@ -1276,47 +1276,47 @@ static void copy_rect_null(const dib_info *dst, const RECT *rc, return; } -static DWORD get_pixel_32(const dib_info *dib, const POINT *pt) +static DWORD get_pixel_32(const dib_info *dib, int x, int y) { - DWORD *ptr = get_pixel_ptr_32( dib, pt->x, pt->y ); + DWORD *ptr = get_pixel_ptr_32( dib, x, y ); return *ptr; } -static DWORD get_pixel_24(const dib_info *dib, const POINT *pt) +static DWORD get_pixel_24(const dib_info *dib, int x, int y) { - BYTE *ptr = get_pixel_ptr_24( dib, pt->x, pt->y ); + BYTE *ptr = get_pixel_ptr_24( dib, x, y ); return ptr[0] | ((DWORD)ptr[1] << 8) | ((DWORD)ptr[2] << 16); } -static DWORD get_pixel_16(const dib_info *dib, const POINT *pt) +static DWORD get_pixel_16(const dib_info *dib, int x, int y) { - WORD *ptr = get_pixel_ptr_16( dib, pt->x, pt->y ); + WORD *ptr = get_pixel_ptr_16( dib, x, y ); return *ptr; } -static DWORD get_pixel_8(const dib_info *dib, const POINT *pt) +static DWORD get_pixel_8(const dib_info *dib, int x, int y) { - BYTE *ptr = get_pixel_ptr_8( dib, pt->x, pt->y ); + BYTE *ptr = get_pixel_ptr_8( dib, x, y ); return *ptr; } -static DWORD get_pixel_4(const dib_info *dib, const POINT *pt) +static DWORD get_pixel_4(const dib_info *dib, int x, int y) { - BYTE *ptr = get_pixel_ptr_4( dib, pt->x, pt->y ); + BYTE *ptr = get_pixel_ptr_4( dib, x, y ); - if (pt->x & 1) + if (x & 1) return *ptr & 0x0f; else return (*ptr >> 4) & 0x0f; } -static DWORD get_pixel_1(const dib_info *dib, const POINT *pt) +static DWORD get_pixel_1(const dib_info *dib, int x, int y) { - BYTE *ptr = get_pixel_ptr_1( dib, pt->x, pt->y ); - return (*ptr & pixel_masks_1[pt->x & 0x7]) ? 1 : 0; + BYTE *ptr = get_pixel_ptr_1( dib, x, y ); + return (*ptr & pixel_masks_1[x & 0x7]) ? 1 : 0; } -static DWORD get_pixel_null(const dib_info *dib, const POINT *pt) +static DWORD get_pixel_null(const dib_info *dib, int x, int y) { return 0; }