These were getting ignored.

Signed-off-by: Keith Packard <kei...@keithp.com>
---
 hw/xfree86/modes/xf86RandR12.c |    4 ++--
 randr/mirrcrtc.c               |   23 +++++++++++++++--------
 randr/randrstr.h               |    6 ++++--
 randr/rrcrtc.c                 |   27 ++++++++++++---------------
 4 files changed, 33 insertions(+), 27 deletions(-)

diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index b0eabdd..dfe2cc3 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1819,8 +1819,8 @@ xf86RRConvertCrtcConfig(xf86CrtcSetConfigPtr      
xf86_config,
        return FALSE;
     for (o = 0; o < rr_config->numOutputs; o++)
        xf86_config->outputs[o] = rr_config->outputs[o]->devPrivate;
-    xf86_config->sprite_position_transform = 
rr_config->sprite_position_transform;
-    xf86_config->sprite_image_transform = rr_config->sprite_image_transform;
+    xf86_config->sprite_position_transform = 
rr_config->sprite_position_f_transform;
+    xf86_config->sprite_image_transform = rr_config->sprite_image_f_transform;
     xf86_config->pixmap = rr_config->pixmap;
     xf86_config->pixmap_x = rr_config->pixmap_x;
     xf86_config->pixmap_y = rr_config->pixmap_y;
diff --git a/randr/mirrcrtc.c b/randr/mirrcrtc.c
index cc76797..d493a0e 100644
--- a/randr/mirrcrtc.c
+++ b/randr/mirrcrtc.c
@@ -60,14 +60,21 @@ miRRSetCrtcConfig(RRCrtcConfigPtr crtc_config)
        x = crtc_config->pixmap_x;
        y = crtc_config->pixmap_y;
     }
-    return RRCrtcSet(crtc_config->crtc,
-                    crtc_config->mode,
-                    x,
-                    y,
-                    crtc_config->rotation,
-                    crtc_config->numOutputs,
-                    crtc_config->outputs,
-                    crtc_config->pixmap);
+    if (!RRCrtcSet(crtc_config->crtc,
+                  crtc_config->mode,
+                  x,
+                  y,
+                  crtc_config->rotation,
+                  crtc_config->numOutputs,
+                  crtc_config->outputs,
+                  crtc_config->pixmap))
+       return FALSE;
+    RRCrtcSpriteTransformSet(crtc_config->crtc,
+                            &crtc_config->sprite_position_transform,
+                            &crtc_config->sprite_image_transform,
+                            &crtc_config->sprite_position_f_transform,
+                            &crtc_config->sprite_image_f_transform);
+    return TRUE;
 }
 
 Bool
diff --git a/randr/randrstr.h b/randr/randrstr.h
index c231972..8240824 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -154,8 +154,10 @@ struct _rrCrtcConfig {
     Rotation                   rotation;
     int                                numOutputs;
     RROutputPtr                        *outputs;
-    struct pict_f_transform    sprite_position_transform;
-    struct pict_f_transform    sprite_image_transform;
+    PictTransform              sprite_position_transform;
+    PictTransform              sprite_image_transform;
+    struct pict_f_transform    sprite_position_f_transform;
+    struct pict_f_transform    sprite_image_f_transform;
     PixmapPtr                  pixmap;
     int                                pixmap_x, pixmap_y;
 };
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index 12982a8..0b2bc28 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -430,8 +430,10 @@ RRCrtcCurrentConfig(RRCrtcPtr crtc,
     if (!crtc_config->outputs)
        return FALSE;
     memcpy(crtc_config->outputs, crtc->outputs, crtc->numOutputs * sizeof 
(RROutputPtr));
-    crtc_config->sprite_position_transform = 
crtc->client_sprite_f_position_transform;
-    crtc_config->sprite_image_transform = 
crtc->client_sprite_f_image_transform;
+    crtc_config->sprite_position_transform = 
crtc->client_sprite_position_transform;
+    crtc_config->sprite_image_transform = crtc->client_sprite_image_transform;
+    crtc_config->sprite_position_f_transform = 
crtc->client_sprite_f_position_transform;
+    crtc_config->sprite_image_f_transform = 
crtc->client_sprite_f_image_transform;
 
     /* XXX add pixmap stuff */
     crtc_config->pixmap = NULL;
@@ -718,8 +720,8 @@ RRScreenCoversCrtc(RRScreenConfigPtr screen_config,
                        crtc_config->mode->mode.width, 
crtc_config->mode->mode.height,
                        crtc_config->rotation,
                        client_transform,
-                       &crtc_config->sprite_position_transform,
-                       &crtc_config->sprite_image_transform,
+                       &crtc_config->sprite_position_f_transform,
+                       &crtc_config->sprite_image_f_transform,
                        NULL, &f_transform, NULL, NULL, NULL, NULL);
 
     RRModeGetScanoutSize (crtc_config->mode, &f_transform,
@@ -1469,15 +1471,6 @@ ProcRRGetCrtcTransform (ClientPtr client)
     return Success;
 }
 
-static void
-pixman_f_transform_from_xRenderTransform(struct pixman_f_transform 
*f_transform,
-                                        xRenderTransform *x_transform)
-{
-    struct pixman_transform    transform;
-    PictTransform_from_xRenderTransform(&transform, x_transform);
-    pixman_f_transform_from_pixman_transform(f_transform, &transform);
-}
-
 static int
 RRConvertCrtcConfig(ClientPtr client, ScreenPtr screen,
                    RRScreenConfigPtr screen_config,
@@ -1594,10 +1587,14 @@ RRConvertCrtcConfig(ClientPtr client, ScreenPtr screen,
     config->rotation = x->rotation;
     config->numOutputs = x->nOutput;
     config->outputs = outputs;
-    
pixman_f_transform_from_xRenderTransform(&config->sprite_position_transform,
+    PictTransform_from_xRenderTransform(&config->sprite_position_transform,
                                             &x->spritePositionTransform);
-    pixman_f_transform_from_xRenderTransform(&config->sprite_image_transform,
+    PictTransform_from_xRenderTransform(&config->sprite_image_transform,
                                             &x->spriteImageTransform);
+    
pixman_f_transform_from_pixman_transform(&config->sprite_position_f_transform,
+                                            
&config->sprite_position_transform);
+    pixman_f_transform_from_pixman_transform(&config->sprite_image_f_transform,
+                                            &config->sprite_image_transform);
     config->pixmap = pixmap;
     config->pixmap_x = x->xPixmap;
     config->pixmap_y = x->yPixmap;
-- 
1.7.2.3

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to