xrender: don't use XRenderFindStandardFormat

Huw D M Davies h.davies1 at physics.ox.ac.uk
Tue Aug 23 05:43:46 CDT 2005


        Huw Davies <huw at codeweavers.com>
        Avoid using XRenderFindStandardFormat as older libraries don't
        have it.
-- 
Huw Davies
huw at codeweavers.com
Index: dlls/x11drv/xrender.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/xrender.c,v
retrieving revision 1.68
diff -u -p -r1.68 xrender.c
--- dlls/x11drv/xrender.c	23 Aug 2005 09:38:58 -0000	1.68
+++ dlls/x11drv/xrender.c	23 Aug 2005 10:41:47 -0000
@@ -47,14 +47,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(xrender);
 #include <X11/Xlib.h>
 #include <X11/extensions/Xrender.h>
 
-/* Older version of the Xrender headers don't define these */
-#ifndef PictStandardARGB32
-
-#define PictStandardARGB32 0
-XRenderPictFormat * XRenderFindStandardFormat (Display *dpy, int format);
-
-#endif
-
 static XRenderPictFormat *screen_format; /* format of screen */
 static XRenderPictFormat *mono_format; /* format of mono bitmap */
 
@@ -130,7 +122,6 @@ MAKE_FUNCPTR(XRenderCreateGlyphSet)
 MAKE_FUNCPTR(XRenderCreatePicture)
 MAKE_FUNCPTR(XRenderFillRectangle)
 MAKE_FUNCPTR(XRenderFindFormat)
-MAKE_FUNCPTR(XRenderFindStandardFormat)
 MAKE_FUNCPTR(XRenderFindVisualFormat)
 MAKE_FUNCPTR(XRenderFreeGlyphSet)
 MAKE_FUNCPTR(XRenderFreePicture)
@@ -178,7 +169,6 @@ LOAD_FUNCPTR(XRenderCreateGlyphSet)
 LOAD_FUNCPTR(XRenderCreatePicture)
 LOAD_FUNCPTR(XRenderFillRectangle)
 LOAD_FUNCPTR(XRenderFindFormat)
-LOAD_FUNCPTR(XRenderFindStandardFormat)
 LOAD_FUNCPTR(XRenderFindVisualFormat)
 LOAD_FUNCPTR(XRenderFreeGlyphSet)
 LOAD_FUNCPTR(XRenderFreePicture)
@@ -1404,6 +1394,34 @@ BOOL X11DRV_AlphaBlend(X11DRV_PDEVICE *d
 {
     XRenderPictureAttributes pa;
     XRenderPictFormat *src_format;
+    XRenderPictFormat argb32_templ = {
+        0,                          /* id */
+        PictTypeDirect,             /* type */
+        32,                         /* depth */
+        {                           /* direct */
+            16,                     /* direct.red */
+            0xff,                   /* direct.redMask */
+            8,                      /* direct.green */
+            0xff,                   /* direct.greenMask */
+            0,                      /* direct.blue */
+            0xff,                   /* direct.blueMask */
+            24,                     /* direct.alpha */
+            0xff,                   /* direct.alphaMask */
+        },
+        0,                          /* colormap */
+    };
+    unsigned long argb32_templ_mask = 
+        PictFormatType |
+        PictFormatDepth |
+        PictFormatRed |
+        PictFormatRedMask |
+        PictFormatGreen |
+        PictFormatGreenMask |
+        PictFormatBlue |
+        PictFormatBlueMask |
+        PictFormatAlpha |
+        PictFormatAlphaMask;
+
     Picture dst_pict, src_pict;
     Pixmap xpm;
     DIBSECTION dib;
@@ -1482,8 +1500,11 @@ BOOL X11DRV_AlphaBlend(X11DRV_PDEVICE *d
     image = XCreateImage(gdi_display, visual, 32, ZPixmap, 0,
                          (char*) data, widthSrc, heightSrc, 32, widthSrc * 4);
 
-    src_format = pXRenderFindStandardFormat(gdi_display, PictStandardARGB32);
-
+    /*
+      Avoid using XRenderFindStandardFormat as older libraries don't have it
+      src_format = pXRenderFindStandardFormat(gdi_display, PictStandardARGB32);
+    */
+    src_format = pXRenderFindFormat(gdi_display, argb32_templ_mask, &argb32_templ, 0);
 
     TRACE("src_format %p\n", src_format);
 



More information about the wine-patches mailing list