Hi, > 1. Guest enables a new monitor: > 2. Guest pushes QXLHead command to command ring > 3. Server sends SpiceHead message on the ring's display channel. > 4. Client creates a window out of [x, y, width, height] scanning out of the primary surface (there is one associated primary with the display channel) Iziks original idea for that one was to just use additional surfaces for the additional heads. QXL_IO_{CREATE,DESTROY}_PRIMARY write an id because of that, which is forced to be zero right now. IIRC the plan was to just allow non-zero values for more heads there, so each display/head has its own primary surface. One obvious issue with that is that the QXLDevSurfaceCreate struct lacks an field to pass on the surface id. A possible alternative approach is to just use a normal SurfaceCmd and use a flag to indicate that this specific surface is supposed to be a new head. > Some other notes: > a. To disable a monitor, send (id, 0, 0, 0, 0) (So there remain invalid range of > values {(id, x, y, width, height) | max(x, y, width, height)!=0 and min(width, > height) = 0}) Would be a simple surface destroy in that case. cheers, Gerd _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel