summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2012-07-27 11:29:46 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2012-08-23 17:34:32 -0400
commitfab769258da86fedd7c2b090076ef97688aa0f9d (patch)
tree2b223af1e075b26e1aa5aed7681697329cc03825
parentdb8cdc85c54cc80f17ceba41194591f1172ca8f0 (diff)
asdf
-rw-r--r--src/qxl_surface.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/qxl_surface.c b/src/qxl_surface.c
index 72fa3e5..58b4914 100644
--- a/src/qxl_surface.c
+++ b/src/qxl_surface.c
@@ -1409,9 +1409,8 @@ image_from_picture (qxl_screen_t *qxl, PicturePtr picture, qxl_surface_t *surfac
image->descriptor.width = 0;
image->descriptor.height = 0;
image->surface_image.surface_id = surface->id;
-
- /* FIXME */
- return NULL;
+
+ return image;
}
static QXLTransform *
@@ -1452,6 +1451,8 @@ qxl_surface_composite (qxl_surface_t *dest,
struct QXLDrawable *drawable;
QXLComposite *composite;
QXLRect rect;
+ QXLImage *img;
+ QXLTransform *trans;
rect.left = dest_x;
rect.right = dest_x + width;
@@ -1466,18 +1467,26 @@ qxl_surface_composite (qxl_surface_t *dest,
composite->flags |= (op & 0xff);
- composite->src = image_from_picture (qxl, src, qsrc);
+ img = image_from_picture (qxl, src, qsrc);
+ composite->src = physical_address (qxl, img, qxl->main_mem_slot);
composite->flags |= (src->filter << 8);
composite->flags |= (src->repeat << 14);
- composite->src_transform = get_transform (qxl, src->transform);
-
+ trans = get_transform (qxl, src->transform);
+ composite->src_transform = trans?
+ physical_address (qxl, trans, qxl->main_mem_slot) : 0x00000000;
+
if (mask)
{
- composite->mask = image_from_picture (qxl, mask, qmask);
+ img = image_from_picture (qxl, mask, qmask);
+
+ composite->mask = physical_address (qxl, img, qxl->main_mem_slot);
composite->flags |= (mask->filter << 11);
composite->flags |= (mask->repeat << 16);
composite->flags |= (mask->componentAlpha << 18);
- composite->mask_transform = get_transform (qxl, mask->transform);
+
+ trans = get_transform (qxl, src->transform);
+ composite->mask_transform = trans?
+ physical_address (qxl, trans, qxl->main_mem_slot) : 0x00000000;
}
composite->src_origin.x = src_x;