Windows


These notes refer to single user, multiple monitor configuration.  Please contact Touch-Base if using multi-monitors in a multi-user/seat environment as further development work would be needed to support this usage.

Windows can be configured in a number of ways to support multiple monitors and this document described how these different setups affect the UPDD configuration.

UPDD employs a number of system interfaces to post touch data into the operating system, one being a virtual HID touch device interface and for Win 7,8 and 10 this will be the default interface. There will be a UPDD Virtual HID in the Device Manager, HID branch, for each monitor connected to the system and more are added as monitors are connected. Each VHID is bound to a video display and prior to UPDD version 6.0.400 this was a static binding and required a reboot to be effective.

In build 400 we have improved the method of notifying Windows of changes in the association such that it will work without a reboot. Different techniques are required for Windows 7 and 10; both are implemented. Windows 8 is not tested but is expected to work. Build 400 also reacts to a change in the primary monitor assignment in addition to the changes in screen geometry previously checked and binds all virtual touch devices to the correct screen with each such change. This means that touch continues to work following changes in screen configuration that were not previously supported and without a reboot. The techniques used are not published or supported by Microsoft and so we cannot be certain this will work in all scenarios; but it does work in a wider range of scenarios compared to the previous implementation. In some cases it may still be necessary to reboot after a screen configuration change.

Once the Virtual HID device(s) have been recognosed by Windows then touch data pasted thro' them will be directed to the correct monitor (assuming they have been correctly assigned using the UPDD configuration procedure).

Desktop resolution and monitor layout
We are all familiar with a single monitor displaying a complete Windows desktop, as this is the standard system configuration. We are also familiar with the concept of different video resolutions and most of us work on systems with a screen resolution of 1024 x 768 or above. The first figure defines the number of pixels in the X plane (left to right) and the last figure defines the number of pixels in the Y plane (top to bottom). Although these video resolutions are familiar to us, Windows remaps these ‘video pixel’ resolutions to its own internal desktop resolution of 65535 (X plane) x 65535 (Y plane).

Pointer device calibration data relates to the internal resolution. When UPDD interfaces with the operating system’s virtual mouse port driver to request the system pointer to be moved to a specific X, Y co-ordinate it references the internal desktop resolution, hence the change of user screen resolution does not affect the performance of UPDD.

Depending on the type of multi-monitor support employed within the system, as discussed below, each monitor will either have its own internal resolution of range 65535 X and 65535 Y or share one internal resolution across all monitors, thereby each controlling a segment of the internal desktop resolution. The user sees the same results, that is, the desktop is spread over all the available monitors, but internally this process is handled differently.

In the two examples below the X and Y co-ordinates are spread across the monitors in a 4 x 1 configuration but they are configured differently in Windows.

Windows layout matches physical monitors

In this case the internal layout directly relates to the number of physical monitors and each desktop has its own internal range:

Windows layout does not match physical monitors

In this case the internal layout directly relates to more than one monitor, in this example 4 in the horizontal plane. The Y co-ordinates will be in the range 0 to 65535 but the X co-ordinates will be in the range 262140. In this type of configuration, if the monitors were stacked in a square (2x2) then the range would be 0 to 131070 and 0 to 131070.

Video driver support

In the standard setup whereby the number of monitors seen by Windows matches the physical then the native video driver will be used whereas in the case where there are more physical monitors than seen by Windows then specialized video hardware and custom driver will be in play.

Native video support

This allows for individual video cards to be placed in the system and for Windows to automatically recognize that the system has more than one video card and to show this in the desktop properties. Each monitor can then be enabled/disabled via the desktop display properties and each can have its own settings.

In the above setup the UPDD configure function will associate a touch device with a defined monitor; monitor 1, monitor 2 etc

In this case UPDD Status will show the association between the touch device and the complete desktop/monitor:

Segmented / Stretched video support

In some cases a individual logical desktops (the OS sees a single monitor) can be stretched across (mapped to) individual physical monitors, as in this custom example:

In this case the one logical monitor represents two physical monitors, side by side.

You now need to defined the logical / physical relationship within the UPDD Console, Advanced dialog or using the command line utility to set monitor_segment_map setting accordingly, in this case 2 x 1 layout:

 
Now run configure to associate each touch screen with the correct segment:

In this case UPDD Status will show the association between the touch device and the desktop/monitor segment:

Search