Fullscreen rendering across multiple monitors

When I try to render in fullscreen across two horizontally spanned or dual-view monitors (which is required to display to two eyes of an HMD), Panda displays everything fullscreen in the primary monitor (or the left half of the horizontal span) and nothing in the other monitor. Fullscreen mode also seems to automatically adjust the system’s display settings temporarily, which is not desirable.

Does anyone know a reason why fullscreen doesn’t work like it should for multiple monitors or a workaround to fix this?

Thanks

Fullscreen 3-D graphics windows across multiple monitors is a relatively new feature that is only just being added to modern graphics cards, and only newly supported by Windows. Panda simply doesn’t contain the proper low-level calls to open these fullscreen windows correctly.

However, there is a workaround, which is to open one or two windows in non-fullscreen mode, that happen to cover the entire desktop. If your only goal is to eliminate the window decorations like title bar and resize border, you can make them “undecorated” windows, for instance by putting:

undecorated 1

in your Config.prc.

David

Hey,

Is there a way to probe the system to tell you the screen resolution at runtime so i can fake full screen two windows over different monitors.

For ex: if the resolution is 1280, 1024, then i could setSize() to that. I want to query the system rather than hard code those values.

  • Thanks
    Maria

Hmm, oops. That would be a useful interface, wouldn’t it? :slight_smile:

We designed such an interface into Panda–you can query base.pipe.getDisplayWidth() / getDisplayHeight()–but a quick test shows that these methods are just returning 0. It looks like no one’s used this interface in a very long time.

I’ll see about getting this fixed. Sorry about that.

David

Thanks, that would be great!

Is there an issue with the “setUndecorated(1)” command when used on a window already created.

I applied windowProperties, like setting origin and size as well, they are effected almost immediately but the undecorated worked only for the window where I sent the windows properties as a parameter to the “openWindow” call.

The undecoration works perfectly if undecorate is set in the config.prc but doesnt work through code for existing windows.

Any insights would be appreciated

  • Maria

The undecorated property may only be specified at window creation time; you can’t change a window to undecorated after it has already been created, sorry.

David

Is there any way to specify the undecorated for the default window, programmatically?

You can specify any config variable programatically:

from pandac.PandaModules import *
loadPrcFileData('setup', 'undecorated 1')
from direct.directbase.DirectStart import *

David

Thanks David.