qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Guest mouse cursor drawing in SDL


From: andrzej zaborowski
Subject: Re: [Qemu-devel] [PATCH] Guest mouse cursor drawing in SDL
Date: Tue, 20 Mar 2007 17:06:02 +0100

On 20/03/07, Anthony Liguori <address@hidden> wrote:
Thiemo Seufer wrote:
> andrzej zaborowski wrote:
>
>> This should allow the emulated video cards that support hardware
>> accelerated cursors to relay the cursor drawing to host, possibly
>> using real hardware cursor. This way the guest and host effectively
>> share one cursor. Only SDL support is included. Not tested with mice
>> that report absolute coordinates.
>>
>> The cursor does not appear in the framebuffer seen by the guest, it's
>> only drawn on the host. One funny effect is that it's not clipped to
>> the size of the framebuffer and can stick out of the SDL window.
>>
>> I think the sdl.c could use a small rewrite to have all cursor hiding
>> and showing in one place instead of spread across the file.
>>
>> VNC support would need employing an extension for this, according to
>> Anthony Liguori. VMware made a documented VNC extension that does it.
>>
>
>
>> From 3cf77a8b3c80b0306a0e73677ac6faeb1f83e0a2 Mon Sep 17 00:00:00 2001
>> From: Andrzej Zaborowski <address@hidden>
>> Date: Sun, 11 Mar 2007 15:31:12 +0100
>> Subject: [PATCH] Host-accelerated mouse cursor support in SDL.
>>
>
> This patch breaks scrolling in the cirrus vga framebuffer.
>

I will try to see why it breaks scrolling after I fix the VMware SVGA.
It shouldn't affect anything other than the mouse cursor, and only
when enabled by the SVGA.


I think we want to expose these functions via DisplayState.  It would be
nice if the semantics of too were similar to the rest of the functions

Agreed. They should be accessed through ds->mouse_set.

> (the pixel format of the cursor was the same as the pixel format of
DisplayState).

I'm not sure if we want to always use the same pixel format - for
example with VMware SVGA and SDL in 16 bit mode, the cursor pixel
format reported by guest Xorg was 8 bpp. This would mean two
conversions instead of one: first VMware SVGA would have to convert 8
-> 16 bpp then SDL 16 -> 1 bpp.

One question in my mind is what the alpha mask should look like.  All
that VNC (and SDL) can use is a 1-bit alpha depth.  That's all Cirrus
supports too.  VMware SVGA supports an 8-bit alpha channel though so it
may make sense to design the interface now to support that.

VMware SVGA without CAP_ALPHA_CURSOR also does only 1-bit alpha. Maybe
we should keep two masks - if the frontend (e.g SDL) supports only
1-bit alpha it would use only this basic mask - if the emulated VGA
supports only 1-bit alpha it would leave the other mask opaque.

Regards,
Andrzej




reply via email to

[Prev in Thread] Current Thread [Next in Thread]