gdi32: Use separate x and y parameters in the get_pixel primitive.

This commit is contained in:
Huw Davies 2012-01-18 14:48:24 +00:00 committed by Alexandre Julliard
parent 8d25bfd524
commit ff4045b110
4 changed files with 18 additions and 21 deletions

View File

@ -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 );
}

View File

@ -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);

View File

@ -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 );
}

View File

@ -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;
}