On Fri, May 13, 2011 at 05:15:56PM -0600, Eric Blake wrote:
On 05/13/2011 02:56 AM, Daniel P. Berrange wrote:
> On Fri, May 13, 2011 at 10:34:24AM +0200, Michal Prívozník wrote:
>>> Then, screen is calculated as
>>>
>>> Screen Device Head
>>> 0 video0 0
>>> 1 video0 1
>>> 2 video1 0
>>> 3 video1 1
>>> 4 video1 2
>>> 5 video1 3
>>>
>>>
>>>
>>> Incidentally an RFE is needed against QEMU, since it can only do screen
>>> dump of the first device :-(
>>>
>>> Daniel
>>
>> Yes, that is what I had in my mind when creating this concept.
>
> Ok, please document that in the API docs for the public API
>
>> Or would it be better to split screen ID into video # and head #?
>
> No, I think that's probably overkill, unless anyone can think of
> something we can do with them separated, that we can't do with them
> combined...
Good thing we have the flags argument. When you have a card that
supports multiple monitors, I could see it being worth capturing a
screenshot of just one monitor, vs. a combined screenshot of both
monitors as a single image. With the above layout, this could be done as:
virDomainScreenshot(dom, st, 1, 0) - just screen 1 (head 1 of video0)
virDomainScreenshot(dom, st, 1, VIR_DOMAIN_SCREENSHOT_DEVICE) -
composite of all screens on video1 (that is, screens 2-5)
of course, supposing that the hypervisors support combined imaging.
The only way I could see that being possible, is if there was actually
a guest OS agent that captured the screenshot, because the hypervisor
has no way of knowing what the layout of the screens are. ie if the
device has 2 outputs and you want a single image of both outputs
how do you know if the output 1 is left of output 2, or right of it,
or above it, or below it, etc.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|