Hello - I am back to using vvvv after many years away.
I am working on a project that will be running for several months in an exhibition setting, with a series of computers each feeding a number of different monitors via different graphics outputs.
My memory (from long ago!) was that in order to set up renderers to automatically go fullscreen on different video outputs, I had to physically drag them to parts of an extended Windows desktop, and then use some combination of ‘onactivate’ and ‘toggle’ to trigger each renderer to go into fullscreen mode when the main patch was launched via a batch script or similar. If the renderers were positioned correctly on the extended desktop, this would work.
I am wondering - is there a more robust way of doing this, that is not so dependent on the physical position of renderers on a windows extended desktop? Something that can be set explicitly in the inspector, without dragging things to different screens?
Apologies in advance if this is clear in the new documentation - I am back to my old tricks circa 2005 / 2006 and hoping to adapt - so any help would be appreciated!
as far as i know you have to create your window/renderer management yourself, depending on your specs.
you can get connected screens with screeninfo. based on that, you can move your renderer windows with the window node to the display you like. this can all be done programatically. you can even react to a missing display, in case it is not connected.
this has been patched at least a couple of times but nobody released a ready to go module…or has someone ?
@u7angel - I see what you mean about programming this with screeninfo etc. Designing for a disconnected monitor is exactly what I want to take into account / so that the whole thing isn’t crippled by a single monitor being accidentally disconnected.
@antokhio - thanks - let me know what you come up with.
One thing I see is the Device (manual) settings which are described here:
“Simply drag the renderer on the second monitor and ALT+Enter to make it fullscreen. If you want a renderer to be on one monitor in windowed mode and have it go fullscreen on the second monitor you have to use a Device (EX9 Manual) node.”
This would be ideal (renderers all on main monitor in windowed mode / then set to fullscreen across all connected displays on fullscreen command). I’ll try it later and update.
@readme - great suggestion! I had never heard of those devices before. Quick searching locates less expensive versions for HDMI. We will use something like this for sure - but still, from a design perspective (in terms of having a patch that is efficient and manageable), I need to pursue the options within vvvv.
I use a combination of SetRenderer(DX11) and ScreenInfo(Windows). At startup you can verify with ScreenInfo the desktop is what it should be, and then use SetRenderer to position the windowed Renderers on the correct monitor by setting its desktop X Y position and a size of say 100, 100. Then pop them all fullscreen.
I then do an update of ScreenInfo say every 15 seconds to check for a change in the display count, and if so take all the renderers out of fullscreen and reallocate them (and send myself a message via the Email and/or Telegram nodes!).
This has been the most flexible non-hardware solution I’ve been able to come up with - love to hear others! This also has the side benefit of it does not matter where the Renderers were when you saved the patch - as long as they were not fullscreen when you did so (seems like a bug to me).
Oh and yes, with that series of card you can have up to four outputs per card. Or do three each and still can pull a console display off one. For remote PCs, I stick an HDMI dummy plug in an output so I can have a console desktop when I VNC into it without disturbing the show.
The HDMI dummy plugs I am referring to are for “headless” setups that are not pass-through, which you can also use to create a virtual monitor to use for the main display. So when you access the system through things like VNC, RemoteUtilities, or Teamviewer, you can still work on your patches and do things without it showing to the world, and not have to have another monitor sitting there. Like I said, good for remote systems or compact ones that you could not have a physical monitor and keyboard on.
And yes, I like knowing something is amiss before someone notices and thinks to tell me, which I’ve found even in museums can be many days.