mirror of
https://github.com/terrymacdonald/DisplayMagician.git
synced 2024-08-30 18:32:20 +00:00
Now supports multiple display adapters. Has been tested by @matthex with his 7 screens and 2 display adapters and works. Should fix #60 finally. Also changed the way that cloned display configurations are patched. Was using the HDR structure previously as that contains a direct mapping, but of course it completely breaks if HDR information isn't supported by the monitor, or provided over the connection technology used. So the changes I made now use the display path priority order to figure out which cloned monitor belongs to which item. Firstly, the UID's are pulled from the physical displays so that we have a list of them. We then go through the paths, and for each target we check if there is a matching physical UID. If there is NOT a matching physical ID, then it is a cloned display target. We store that for later. Next, we go through the paths again, and we figure out which physical displays are NOT in use as display targets. When we have that list, we then map the left over physical displays to the cloned displays in path priority order. Finally, we then go through each cloned display target in the paths array, and set it to the configuration that windows needs so it will make a cloned display. We also go through the modes array, and set the physical display id to the corresponding mapped physical UID we calculated earlier. All of this results in Windows accepting the cloned display configuration as expected. |
||
---|---|---|
.. | ||
AMD | ||
NVIDIA | ||
Properties | ||
Resources | ||
UserControls | ||
Windows | ||
DisplayMagicianShared.csproj | ||
DisplayMagicianStartupAction.cs | ||
PixelShift.cs | ||
ProfileIcon.cs | ||
ProfileItem.cs | ||
ProfileRepository.cs | ||
ResizeDrawing.cs | ||
Rotation.cs | ||
Scaling.cs | ||
ScanLineOrdering.cs | ||
SharedLogger.cs | ||
ShellUtils.cs | ||
Wallpaper.cs |