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