[Spice-commits] display/surface.c

Izik Eidus izik at kemper.freedesktop.org
Wed Apr 7 08:42:40 PDT 2010


 display/surface.c |   30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

New commits:
commit 37d77fc12e2fad77dff9b165495ec73b320c1660
Author: Izik Eidus <ieidus at redhat.com>
Date:   Wed Apr 7 18:47:58 2010 +0300

    spice qxl: for now remove alphablend operations on off screens
    
    We still need to sort some stuff about alpha and surfaces...
    So for now allow it to happen just on the display surface
    
    Thanks.
    
    Signed-off-by: Izik Eidus <ieidus at redhat.com>

diff --git a/display/surface.c b/display/surface.c
index f15255a..0baf6af 100644
--- a/display/surface.c
+++ b/display/surface.c
@@ -109,16 +109,30 @@ HBITMAP CreateDeviceBitmap(PDev *pdev, SIZEL size, ULONG format, QXLPHYSICAL *ph
         goto out_error1;
     }
 
-    if (!EngAssociateSurface((HSURF)surf, pdev->eng,  HOOK_SYNCHRONIZE | HOOK_COPYBITS |
-                             HOOK_BITBLT | HOOK_TEXTOUT | HOOK_STROKEPATH | HOOK_STRETCHBLT |
-                             HOOK_STRETCHBLTROP | HOOK_TRANSPARENTBLT | HOOK_ALPHABLEND
+    if (allocation_type == DEVICE_BITMAP_ALLOCATION_TYPE_SURF0) {
+        if (!EngAssociateSurface((HSURF)surf, pdev->eng,  HOOK_SYNCHRONIZE | HOOK_COPYBITS |
+                                 HOOK_BITBLT | HOOK_TEXTOUT | HOOK_STROKEPATH | HOOK_STRETCHBLT |
+                                 HOOK_STRETCHBLTROP | HOOK_TRANSPARENTBLT
 #ifdef CALL_TEST
-                             | HOOK_PLGBLT | HOOK_FILLPATH | HOOK_STROKEANDFILLPATH | HOOK_LINETO |
-                             HOOK_GRADIENTFILL 
+                                 | HOOK_PLGBLT | HOOK_FILLPATH | HOOK_STROKEANDFILLPATH | HOOK_LINETO |
+                                 HOOK_GRADIENTFILL 
 #endif
-                             )) {
-        DEBUG_PRINT((pdev, 0, "%s: EngAssociateSurface failed\n", __FUNCTION__));
-        goto out_error2;
+                                 )) {
+            DEBUG_PRINT((pdev, 0, "%s: EngAssociateSurface failed\n", __FUNCTION__));
+            goto out_error2;
+        }
+    } else {
+        if (!EngAssociateSurface((HSURF)surf, pdev->eng,  HOOK_SYNCHRONIZE | HOOK_COPYBITS |
+                                 HOOK_BITBLT | HOOK_TEXTOUT | HOOK_STROKEPATH | HOOK_STRETCHBLT |
+                                 HOOK_STRETCHBLTROP | HOOK_TRANSPARENTBLT | HOOK_ALPHABLEND
+    #ifdef CALL_TEST
+                                 | HOOK_PLGBLT | HOOK_FILLPATH | HOOK_STROKEANDFILLPATH | HOOK_LINETO |
+                                 HOOK_GRADIENTFILL 
+    #endif
+                                 )) {
+            DEBUG_PRINT((pdev, 0, "%s: EngAssociateSurface failed\n", __FUNCTION__));
+            goto out_error2;
+        }
     }
 
     pdev->surfaces_info[surface_id].pdev = pdev;


More information about the Spice-commits mailing list