Jump to content

Documentation for Viewport placement algorithm in DCS?


Recommended Posts

If you set the "Resolution" to something that is smaller than the entire desktop, and your main display is not the left-most display, then DCS tries to be smart about how it places your views. Even though the left offset is not specified anywhere in monitor setup, it will try to fit to your main screen and any screens to the right of that. If it can't, then it will do the pessimistic thing and start at the left edge of your desktop. However, it still seems to try to fit it to include the main display. For example, if you have a tall screen on the left like I do, it will fit the specified extent such that it hits the main screen instead of being off to the top of it.

 

In short, it is trying to be clever. Sometimes it ends up with a good result, sometimes not.

 

Here is my question:

 

Is this algorithm documented anywhere? I am implementing Helios features for viewports and monitors, and I am trying to make Helios correctly generate the monitor setup and viewports. But in these scenarios, DCS won't do what it's told. :)

 

So I really need to know precisely what it will do. This would be a lot of wasted time testing if I have to figure it out from scratch.


Edited by derammo
Link to comment
Share on other sites

PS: I can always get a deterministic result by just including the whole desktop or at least the left edge in the layout. That's not the question. There are folks who have a left screen they don't want to have DCS draw on, so they can use it for other stuff.

Link to comment
Share on other sites

Hey mods: Could you please try to get me an answer of some sort? I assume you like Helios. If you don’t and don’t want to support its development, that is cool too. Just let me know either way so I don’t spend my time on questions like this :)

Link to comment
Share on other sites

  • 2 weeks later...
  • ED Team

We have a unofficial guide here for multimonitor

 

https://forums.eagle.ru/forumdisplay.php?f=454

 

thanks for the ping on discord, I have asked the team.

 

edit: 0,0 coordinates are always DCS top left corner.


Edited by BIGNEWY

smallCATPILOT.PNG.04bbece1b27ff1b2c193b174ec410fc0.PNG

Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status

Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, HP Reverb G2

Link to comment
Share on other sites

  • ED Team

part of 'Config\MonitorSetup\3Cameras.lua'

 

--[[
also you can use "displays" table  to perfectly match you configuration .
it is generated by DCS automatically.
displays table is contains information about all currently attached displays 

for example my setup is :

displays = 
{
[1] = 
{
	x = 0,   -- note : x == 0 and y == 0 is always mark primary windows display 
	y = 0,
	width  = 1920,
	height = 1200
},
[2] = 
{
	x = -1440,   -- mark that secondary display is on left side of primary display
	y = 0,
	width  = 1440,
	height = 900
},
...  for all displays 
}

screen table also contain x, y members which mark top left corner of DCS window 

note about fullscreen :  directx  doesn't allow fullscreen applications with resolutions more than primary display can handle,
so multimonitor presets in DCS will fall back to windowed mode if fullscreen initialization failed  ( this info also will be printed to dcs.log)

for reconfigure viewports setup for each unit type independently you can declare here function 

function  reconfigure_for_unit(unit_type)   --unit type is string with unit name
if unit_type == "A-10C" then
         
	Viewports  = ... define new Viewports table 
	-- also you can define cockpit displays viewports here 
	RIGHT_MFCD = ... define new RIGHT_MFCD  viewport 
	  
else 
    Viewports = ... define default for others 
	RIGHT_MFCD = nil  -- remove for others 
end
end

--]]

sigpic2354_5.gif
Link to comment
Share on other sites

Hi and thank you for your responses. I don't think I was clear enough in explaining my question so I created this write up to show exactly what I am talking about.

 

I also linked this in Discord.

 

I created this page to document what I am seeing and document the resolution (when we get one) for future Helios developers:

 

https://github.com/BlueFinBima/Helios/wiki/Monitor-Setup-Logic

 

You can see clearly that DCS (0,0) coordinate is not in fact a constant location and it is non trivial to predict where it will be. I don't know if case 3 is a bug. But at least this clearly documents that there is some algorithm trying to "intelligently" interpret the settings from the monitor setup, because it doesn't get any "Left" and "Top" offsets from options.lua, so it tries to do something smarter than just always take top-left or 0,0 windows coordinate.


Edited by derammo
Link to comment
Share on other sites

  • 1 year later...
On 4/26/2020 at 7:53 PM, derammo said:

PS: I can always get a deterministic result by just including the whole desktop or at least the left edge in the layout. That's not the question. There are folks who have a left screen they don't want to have DCS draw on, so they can use it for other stuff.

Hi derammo, i am trying to achieve and understand very much what you are asking for and have had no luck. I also want to have other "stuff" displayed on part of my left screen.  to make it more complicated, that screen is also my secondary monitor as my touch screen has to be my primary monitor in order for it to work.

 

have you had any further luck? cheers!

image.png

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...