Alexandre Julliard : gdi32: Add driver entry points for GetImage and PutImage.
Alexandre Julliard
julliard at winehq.org
Thu Jul 14 13:08:12 CDT 2011
Module: wine
Branch: master
Commit: cf05fca87837ac3223c2f332c4023c3f7086eb7c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cf05fca87837ac3223c2f332c4023c3f7086eb7c
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Jul 14 11:30:58 2011 +0200
gdi32: Add driver entry points for GetImage and PutImage.
---
dlls/gdi32/dibdrv/dc.c | 2 ++
dlls/gdi32/driver.c | 14 ++++++++++++++
dlls/gdi32/enhmfdrv/init.c | 2 ++
dlls/gdi32/mfdrv/init.c | 2 ++
dlls/wineps.drv/init.c | 2 ++
dlls/winex11.drv/init.c | 2 ++
include/wine/gdi_driver.h | 11 +++++++++++
7 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/dlls/gdi32/dibdrv/dc.c b/dlls/gdi32/dibdrv/dc.c
index 89246d8..3ec44d1 100644
--- a/dlls/gdi32/dibdrv/dc.c
+++ b/dlls/gdi32/dibdrv/dc.c
@@ -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 */
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
index 04db5e0..6cdf35d 100644
--- a/dlls/gdi32/driver.c
+++ b/dlls/gdi32/driver.c
@@ -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 */
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index 4920266..e7cbf2e 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -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 */
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index ae791c2..4685470 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -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 */
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c
index ca80f4e..84d4b45 100644
--- a/dlls/wineps.drv/init.c
+++ b/dlls/wineps.drv/init.c
@@ -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 */
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c
index f86c17c..d1800d4 100644
--- a/dlls/winex11.drv/init.c
+++ b/dlls/winex11.drv/init.c
@@ -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 */
diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h
index d8040ac..811cf80 100644
--- a/include/wine/gdi_driver.h
+++ b/include/wine/gdi_driver.h
@@ -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);
More information about the wine-cvs
mailing list