gdi32: Add driver entry points for GetImage and PutImage.

This commit is contained in:
Alexandre Julliard 2011-07-14 11:30:58 +02:00
parent 340643af30
commit cf05fca878
7 changed files with 35 additions and 0 deletions

View file

@ -469,6 +469,7 @@ const DC_FUNCTIONS dib_driver =
NULL, /* pGetDeviceCaps */
NULL, /* pGetDeviceGammaRamp */
NULL, /* pGetICMProfile */
NULL, /* pGetImage */
NULL, /* pGetNearestColor */
NULL, /* pGetPixel */
NULL, /* pGetPixelFormat */
@ -494,6 +495,7 @@ const DC_FUNCTIONS dib_driver =
NULL, /* pPolygon */
NULL, /* pPolyline */
NULL, /* pPolylineTo */
NULL, /* pPutImage */
NULL, /* pRealizeDefaultPalette */
NULL, /* pRealizePalette */
dibdrv_Rectangle, /* pRectangle */

View file

@ -347,6 +347,12 @@ static BOOL nulldrv_GetICMProfile( PHYSDEV dev, LPDWORD size, LPWSTR filename )
return FALSE;
}
static DWORD nulldrv_GetImage( PHYSDEV dev, HBITMAP hbitmap, BITMAPINFO *info,
struct gdi_image_bits *bits, const RECT *rect )
{
return ERROR_NOT_SUPPORTED;
}
static COLORREF nulldrv_GetPixel( PHYSDEV dev, INT x, INT y )
{
return 0;
@ -421,6 +427,12 @@ static BOOL nulldrv_Polyline( PHYSDEV dev, const POINT *points, INT count )
return TRUE;
}
static DWORD nulldrv_PutImage( PHYSDEV dev, HBITMAP hbitmap, BITMAPINFO *info,
const struct gdi_image_bits *bits, const RECT *rect, DWORD rop )
{
return ERROR_SUCCESS;
}
static UINT nulldrv_RealizeDefaultPalette( PHYSDEV dev )
{
return 0;
@ -701,6 +713,7 @@ const DC_FUNCTIONS null_driver =
nulldrv_GetDeviceCaps, /* pGetDeviceCaps */
nulldrv_GetDeviceGammaRamp, /* pGetDeviceGammaRamp */
nulldrv_GetICMProfile, /* pGetICMProfile */
nulldrv_GetImage, /* pGetImage */
nulldrv_GetNearestColor, /* pGetNearestColor */
nulldrv_GetPixel, /* pGetPixel */
nulldrv_GetPixelFormat, /* pGetPixelFormat */
@ -726,6 +739,7 @@ const DC_FUNCTIONS null_driver =
nulldrv_Polygon, /* pPolygon */
nulldrv_Polyline, /* pPolyline */
nulldrv_PolylineTo, /* pPolylineTo */
nulldrv_PutImage, /* pPutImage */
nulldrv_RealizeDefaultPalette, /* pRealizeDefaultPalette */
nulldrv_RealizePalette, /* pRealizePalette */
nulldrv_Rectangle, /* pRectangle */

View file

@ -77,6 +77,7 @@ static const DC_FUNCTIONS EMFDRV_Funcs =
EMFDRV_GetDeviceCaps, /* pGetDeviceCaps */
NULL, /* pGetDeviceGammaRamp */
NULL, /* pGetICMProfile */
NULL, /* pGetImage */
NULL, /* pGetNearestColor */
NULL, /* pGetPixel */
NULL, /* pGetPixelFormat */
@ -102,6 +103,7 @@ static const DC_FUNCTIONS EMFDRV_Funcs =
EMFDRV_Polygon, /* pPolygon */
EMFDRV_Polyline, /* pPolyline */
NULL, /* pPolylineTo */
NULL, /* pPutImage */
NULL, /* pRealizeDefaultPalette */
NULL, /* pRealizePalette */
EMFDRV_Rectangle, /* pRectangle */

View file

@ -121,6 +121,7 @@ static const DC_FUNCTIONS MFDRV_Funcs =
MFDRV_GetDeviceCaps, /* pGetDeviceCaps */
NULL, /* pGetDeviceGammaRamp */
NULL, /* pGetICMProfile */
NULL, /* pGetImage */
NULL, /* pGetNearestColor */
NULL, /* pGetPixel */
NULL, /* pGetPixelFormat */
@ -146,6 +147,7 @@ static const DC_FUNCTIONS MFDRV_Funcs =
MFDRV_Polygon, /* pPolygon */
MFDRV_Polyline, /* pPolyline */
NULL, /* pPolylineTo */
NULL, /* pPutImage */
NULL, /* pRealizeDefaultPalette */
MFDRV_RealizePalette, /* pRealizePalette */
MFDRV_Rectangle, /* pRectangle */

View file

@ -843,6 +843,7 @@ static const struct gdi_dc_funcs psdrv_funcs =
PSDRV_GetDeviceCaps, /* pGetDeviceCaps */
NULL, /* pGetDeviceGammaRamp */
NULL, /* pGetICMProfile */
NULL, /* pGetImage */
NULL, /* pGetNearestColor */
NULL, /* pGetPixel */
NULL, /* pGetPixelFormat */
@ -868,6 +869,7 @@ static const struct gdi_dc_funcs psdrv_funcs =
PSDRV_Polygon, /* pPolygon */
PSDRV_Polyline, /* pPolyline */
NULL, /* pPolylineTo */
NULL, /* pPutImage */
NULL, /* pRealizeDefaultPalette */
NULL, /* pRealizePalette */
PSDRV_Rectangle, /* pRectangle */

View file

@ -486,6 +486,7 @@ static const struct gdi_dc_funcs x11drv_funcs =
X11DRV_GetDeviceCaps, /* pGetDeviceCaps */
X11DRV_GetDeviceGammaRamp, /* pGetDeviceGammaRamp */
X11DRV_GetICMProfile, /* pGetICMProfile */
NULL, /* pGetImage */
X11DRV_GetNearestColor, /* pGetNearestColor */
X11DRV_GetPixel, /* pGetPixel */
X11DRV_GetPixelFormat, /* pGetPixelFormat */
@ -511,6 +512,7 @@ static const struct gdi_dc_funcs x11drv_funcs =
X11DRV_Polygon, /* pPolygon */
X11DRV_Polyline, /* pPolyline */
NULL, /* pPolylineTo */
NULL, /* pPutImage */
X11DRV_RealizeDefaultPalette, /* pRealizeDefaultPalette */
X11DRV_RealizePalette, /* pRealizePalette */
X11DRV_Rectangle, /* pRectangle */

View file

@ -44,6 +44,15 @@ struct bitblt_coords
DWORD layout; /* DC layout */
};
struct gdi_image_bits
{
void *ptr; /* pointer to the bits */
unsigned int offset; /* x offset of first requested pixel */
BOOL is_copy; /* whether this is a copy of the bits that can be modified */
void (*free)(struct gdi_image_bits *); /* callback for freeing the bits */
void *param; /* extra parameter for callback private use */
};
struct gdi_dc_funcs
{
INT (*pAbortDoc)(PHYSDEV);
@ -87,6 +96,7 @@ struct gdi_dc_funcs
INT (*pGetDeviceCaps)(PHYSDEV,INT);
BOOL (*pGetDeviceGammaRamp)(PHYSDEV,LPVOID);
BOOL (*pGetICMProfile)(PHYSDEV,LPDWORD,LPWSTR);
DWORD (*pGetImage)(PHYSDEV,HBITMAP,BITMAPINFO*,struct gdi_image_bits*,const RECT*);
COLORREF (*pGetNearestColor)(PHYSDEV,COLORREF);
COLORREF (*pGetPixel)(PHYSDEV,INT,INT);
INT (*pGetPixelFormat)(PHYSDEV);
@ -112,6 +122,7 @@ struct gdi_dc_funcs
BOOL (*pPolygon)(PHYSDEV,const POINT*,INT);
BOOL (*pPolyline)(PHYSDEV,const POINT*,INT);
BOOL (*pPolylineTo)(PHYSDEV,const POINT*,INT);
DWORD (*pPutImage)(PHYSDEV,HBITMAP,BITMAPINFO*,const struct gdi_image_bits*,const RECT*,DWORD);
UINT (*pRealizeDefaultPalette)(PHYSDEV);
UINT (*pRealizePalette)(PHYSDEV,HPALETTE,BOOL);
BOOL (*pRectangle)(PHYSDEV,INT,INT,INT,INT);