[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 02/10] spice: split qemu_spice_create_update
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 02/10] spice: split qemu_spice_create_update |
Date: |
Fri, 14 Sep 2012 18:16:12 +0000 |
On Thu, Sep 13, 2012 at 8:45 AM, Gerd Hoffmann <address@hidden> wrote:
> Creating one function which creates a single update for a given
> rectangle. And one (for now) pretty simple wrapper around it to
> queue up screen updates for the dirty region.
>
> [ v2: also update bounding box ]
>
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
> ui/spice-display.c | 31 ++++++++++++++++++-------------
> 1 files changed, 18 insertions(+), 13 deletions(-)
>
> diff --git a/ui/spice-display.c b/ui/spice-display.c
> index 59c5fd7..6f68f28 100644
> --- a/ui/spice-display.c
> +++ b/ui/spice-display.c
> @@ -164,7 +164,8 @@ int qemu_spice_display_is_running(SimpleSpiceDisplay *ssd)
> #endif
> }
>
> -static void qemu_spice_create_update(SimpleSpiceDisplay *ssd)
> +static void qemu_spice_create_one_update(SimpleSpiceDisplay *ssd,
> + QXLRect *rect)
> {
> SimpleSpiceUpdate *update;
> QXLDrawable *drawable;
> @@ -174,24 +175,20 @@ static void qemu_spice_create_update(SimpleSpiceDisplay
> *ssd)
> int by, bw, bh;
> struct timespec time_space;
>
> - if (qemu_spice_rect_is_empty(&ssd->dirty)) {
> - return;
> - };
> -
> trace_qemu_spice_create_update(
> - ssd->dirty.left, ssd->dirty.right,
> - ssd->dirty.top, ssd->dirty.bottom);
> + rect->left, rect->right,
> + rect->top, rect->bottom);
>
> update = g_malloc0(sizeof(*update));
> drawable = &update->drawable;
> image = &update->image;
> cmd = &update->ext.cmd;
>
> - bw = ssd->dirty.right - ssd->dirty.left;
> - bh = ssd->dirty.bottom - ssd->dirty.top;
> + bw = rect->right - rect->left;
> + bh = rect->bottom - rect->top;
> update->bitmap = g_malloc(bw * bh * 4);
>
> - drawable->bbox = ssd->dirty;
> + drawable->bbox = *rect;
> drawable->clip.type = SPICE_CLIP_TYPE_NONE;
> drawable->effect = QXL_EFFECT_OPAQUE;
> drawable->release_info.id = (uintptr_t)update;
> @@ -226,8 +223,8 @@ static void qemu_spice_create_update(SimpleSpiceDisplay
> *ssd)
> }
>
> src = ds_get_data(ssd->ds) +
> - ssd->dirty.top * ds_get_linesize(ssd->ds) +
> - ssd->dirty.left * ds_get_bytes_per_pixel(ssd->ds);
> + rect->top * ds_get_linesize(ssd->ds) +
> + rect->left * ds_get_bytes_per_pixel(ssd->ds);
> dst = update->bitmap;
> for (by = 0; by < bh; by++) {
> qemu_pf_conv_run(ssd->conv, dst, src, bw);
> @@ -238,10 +235,18 @@ static void qemu_spice_create_update(SimpleSpiceDisplay
> *ssd)
> cmd->type = QXL_CMD_DRAW;
> cmd->data = (uintptr_t)drawable;
>
> - memset(&ssd->dirty, 0, sizeof(ssd->dirty));
> QTAILQ_INSERT_TAIL(&ssd->updates, update, next);
> }
>
> +static void qemu_spice_create_update(SimpleSpiceDisplay *ssd)
> +{
> + if (qemu_spice_rect_is_empty(&ssd->dirty)) {
> + return;
> + };
Minor nitpick: useless semicolon after brace.
> + qemu_spice_create_one_update(ssd, &ssd->dirty);
> + memset(&ssd->dirty, 0, sizeof(ssd->dirty));
> +}
> +
> /*
> * Called from spice server thread context (via interface_release_ressource)
> * We do *not* hold the global qemu mutex here, so extra care is needed
> --
> 1.7.1
>
>
- [Qemu-devel] [PATCH 01/10] spice: switch to queue for vga mode updates, (continued)
- [Qemu-devel] [PATCH 01/10] spice: switch to queue for vga mode updates, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 08/10] hw/qxl: tracing fixes, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 03/10] spice: add screen mirror, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 10/10] hw/qxl: support client monitor configuration via device, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 06/10] qxl: Ignore set_client_capabilities pre/post migrate, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 04/10] spice: send updates only for changed screen content, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 07/10] qxl: better cleanup for surface destroy, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 09/10] qxl: add trace-event for QXL_IO_LOG, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 05/10] qxl: dont update invalid area, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 02/10] spice: split qemu_spice_create_update, Gerd Hoffmann, 2012/09/13
- Re: [Qemu-devel] [PATCH 02/10] spice: split qemu_spice_create_update,
Blue Swirl <=
- Re: [Qemu-devel] [PULL 00/10] spice patch queue, Michael Tokarev, 2012/09/14
- Re: [Qemu-devel] [PULL 00/10] spice patch queue, Anthony Liguori, 2012/09/17