On 08/31/2010 11:24 AM, Gerd Hoffmann wrote:
On 08/31/10 10:11, Yonit Halperin wrote:
On 08/31/2010 11:05 AM, Gerd Hoffmann wrote:
+static inline int is_drawable_independent_from_surfaces(Drawable
*drawable)
+{
+ int x;
+
+ for (x = 0; x< 3; ++x) {
+ if (drawable->surfaces_dest[x] != -1) {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
What happens if this meets qemu without the surfaces init fix?
Will it break or just work less efficient?
cheers,
Gerd
I think that if the server will decide to video stream an area, it can
cause a delay in between frames if the pipe is busy.
Ok, no breakage, good.
While we are at it: How should surfaces_dest (and surfaces_rect) be
filled for spice 0.4 commands? Right now they are just zero-initialized
(see red_get_compat_drawable() in red_parse_qxl.c).
Best to fill surfaces_dest with -1. For consistency (though not
necessary right now), in QXL_COPY_BITS scenario, fill surfaces_dest[0]
with the drawable surface id, and surfaces_rect[0] with the rect of the
drawabele transformed to src_pos (i.e., starts at src_pos and its width
and hight are equal to the drawable destination).
Oh, and I've just seen self bitmaps are not handled yet.
spice 0.4 has:
uint16_t bitmap_offset;
QXLRect bitmap_area;
spice 0.6 has:
uint8_t self_bitmap;
QXLRect self_bitmap_area;
I suspect the area can just be used as-is. What about bitmap_offset /
self_bitmap?
if bitmap_offset != 0, it means self_bitmap = TRUE
cheers,
Gerd
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel