Alexandre Julliard : gdi32: Add an AlphaBlend entry point in the DIB driver .
Alexandre Julliard
julliard at winehq.org
Tue Oct 11 14:03:38 CDT 2011
Module: wine
Branch: master
Commit: 6c07876e87642feba0c18541b599be8fa64a58c7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6c07876e87642feba0c18541b599be8fa64a58c7
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Oct 11 15:23:04 2011 +0200
gdi32: Add an AlphaBlend entry point in the DIB driver.
---
dlls/gdi32/dibdrv/bitblt.c | 16 ++++++++++++++++
dlls/gdi32/dibdrv/dc.c | 2 +-
dlls/gdi32/dibdrv/dibdrv.h | 2 ++
3 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/dibdrv/bitblt.c b/dlls/gdi32/dibdrv/bitblt.c
index 48afa8e..f78f9a2 100644
--- a/dlls/gdi32/dibdrv/bitblt.c
+++ b/dlls/gdi32/dibdrv/bitblt.c
@@ -1133,3 +1133,19 @@ BOOL dibdrv_StretchBlt( PHYSDEV dst_dev, struct bitblt_coords *dst,
release_dc_ptr( dc_dst );
return ret;
}
+
+/***********************************************************************
+ * dibdrv_AlphaBlend
+ */
+BOOL dibdrv_AlphaBlend( PHYSDEV dst_dev, struct bitblt_coords *dst,
+ PHYSDEV src_dev, struct bitblt_coords *src, BLENDFUNCTION blend )
+{
+ BOOL ret;
+ DC *dc_dst = get_dc_ptr( dst_dev->hdc );
+
+ if (!dc_dst) return FALSE;
+
+ ret = dc_dst->nulldrv.funcs->pAlphaBlend( &dc_dst->nulldrv, dst, src_dev, src, blend );
+ release_dc_ptr( dc_dst );
+ return ret;
+}
diff --git a/dlls/gdi32/dibdrv/dc.c b/dlls/gdi32/dibdrv/dc.c
index 9d8391a..f610390 100644
--- a/dlls/gdi32/dibdrv/dc.c
+++ b/dlls/gdi32/dibdrv/dc.c
@@ -501,7 +501,7 @@ const DC_FUNCTIONS dib_driver =
{
NULL, /* pAbortDoc */
NULL, /* pAbortPath */
- NULL, /* pAlphaBlend */
+ dibdrv_AlphaBlend, /* pAlphaBlend */
NULL, /* pAngleArc */
NULL, /* pArc */
NULL, /* pArcTo */
diff --git a/dlls/gdi32/dibdrv/dibdrv.h b/dlls/gdi32/dibdrv/dibdrv.h
index 5f9a31e..0be8ffa 100644
--- a/dlls/gdi32/dibdrv/dibdrv.h
+++ b/dlls/gdi32/dibdrv/dibdrv.h
@@ -100,6 +100,8 @@ typedef struct dibdrv_physdev
#define DEFER_PEN 2
#define DEFER_BRUSH 4
+extern BOOL dibdrv_AlphaBlend( PHYSDEV dst_dev, struct bitblt_coords *dst,
+ PHYSDEV src_dev, struct bitblt_coords *src, BLENDFUNCTION blend ) DECLSPEC_HIDDEN;
extern DWORD dibdrv_GetImage( PHYSDEV dev, HBITMAP hbitmap, BITMAPINFO *info,
struct gdi_image_bits *bits, struct bitblt_coords *src ) DECLSPEC_HIDDEN;
extern BOOL dibdrv_LineTo( PHYSDEV dev, INT x, INT y ) DECLSPEC_HIDDEN;
More information about the wine-cvs
mailing list