diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-07-27 11:29:46 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-08-23 17:34:32 -0400 |
commit | fab769258da86fedd7c2b090076ef97688aa0f9d (patch) | |
tree | 2b223af1e075b26e1aa5aed7681697329cc03825 | |
parent | db8cdc85c54cc80f17ceba41194591f1172ca8f0 (diff) |
asdf
-rw-r--r-- | src/qxl_surface.c | 25 |
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; |