|
Rotate
Considerations Revision
1.18 – 13th May 2013 www.touch-base.com\documentation\general |
||||||||||||||||||||||||||||||||||||||
|
The normal orientation of computer screens is generally horizontal (also known as landscape) but monitors can also be placed vertically (also known as portrait mode - where height becomes greater than the width). Landscape can be either 0 or 180 degrees and Portrait can be either 90 or 270 degrees. Switching computer screen orientation is commonly known as video or desktop rotation. Rotate is particularly required for monitors that can physically be rotated, such as in these examples:
When rotation
occurs in a touch screen environment there are a number of issues that need
to be considered: 1) Touch screen
calibration must cater for rotated desktops As a minimum the driver and calibration procedure should be able to
cater for desktops that are rotated 90°, 180° and 270°. 2) Touch screen
calibration is automatically synchronized with the degree of rotation When rotation takes place with a touch screen it is desirable that the
touch screen calibration is automatically synchronised
with the degree of orientation. Most rotations are between 0° (landscape) and 90° (portrait) but others may rotate between
0°, 90°, 180° and 270°. 3) The touch
screen can be used to initiate rotation. The utilities supplied to perform rotation may not be appropriate for
a touch interface and therefore it may be more desirable to initiate rotate
via a touch control. This document describes the rotation support offered by UPDD in the
main operating systems. Calibration synchronisationWindows
Although UPDD
has specific rotational API calls it should not be necessary for end users to
make these calls as they are handled by UPDD when the desktop resolution
changes from portrait to landscape or a supported rotate method
is identified and rotate occurs. Under Windows,
UPDD implements a number of methods to automatically recognize that rotate
has occurred. Rotate methods have been added over time since 3.8.x and
depending on the version in use not all rotate methods will be available
unless the latest release is in use.
1.
Video resolution change detection 2.
Application broadcasting UPDD API rotate
messages 3.
Utilise an existing rotation method that is recognized by UPDD
|
||||||||||||||||||||||||||||||||||||||
|
Rotation
method |
Identification |
|
Window 7 native |
Recognise Windows 7 OS |
|
Portrait |
[windows]\system32\wpfb.dll |
|
iRotate |
HKLM\SOFTWARE\EnTech\iRotate |
|
Silicon Motion Cougar |
[windows]\ system32\3drapi.dll |
|
Silicon Motion Lynx |
[windows]\ system32\smhook.dll |
|
ATI chips |
[windows]\ system32\atipdlxx.dll |
|
Intel chipset |
HKLM\SYSTEM\CurrentControlSet\Services\ialmdevice0 |
|
DisplayLink
USB video |
HKLM\Software\DisplayLink\Core |
Important Notes
1)
Please note, that for automatic
calibration adjustment to work correctly it is important that the initial
calibration made on a monitor that can rotate is performed when the monitor
is in landscape mode (i.e. not rotated)
2)
UPDD supports automatic rotate recognition on all
connected monitors for the Intel video graphics chipset, iRotate
and DisplayLink. In all other interfaces rotate is
only supported on the primary monitor.
3)
Direct video chipset support may be dependent on
the correct video driver being installed. We have had situations where a
newer driver has broken our direct video chipset support and we have had to
make changes to cater for the differences introduced with the new driver. To
this end we recommend the usage of the software utility irotate
which offers our software a common interface to a rotate utility that is
responsible for the video chipset rotation process. We believe that irotate
is kept current with any driver changes and therefore offers a future proof
rotate solution.
Last time we looked (Aug 2007), irotate supported;
ATI Radeon, Intel Extreme Graphics, Matrox Parhelia, Nvidia GeForce, S3 DeltaChrome, VIA Unichrome, XGI
Volari, Some Rage128 Mobility and SiS drivers.
4)
On systems that have both hardware and software
UPDD supported rotate options then the software interface (i.e iRotate or Pivot) will take
priority.
5)
iRotate and pivot are
mutually exclusive and only one should be used.
A number of UPDD extensions are built into the UPDD Console and the
Video rotation extension shows if any of the supported auto-calibration or
touch initiation rotation methods have been found on
the system.

This dialog also handles the UPDD rotate system tray settings and
quick method of creating a toolbar to activate rotation if required, see Rotate Utility below.
Mac OS/X version 10.4
(Tiger) introduced video rotation where the video hardware supports it. UPDD
version 4 and above will work with rotated video in 2 scenarios.
1) Automatic when switching between landscape and a defined portrait
mode. Available from UPDD 4.1.10 onwards.
With UPDD version 5.0.2 the
software automatically determines the degree of rotation and adjusts
calibration accordingly. Only supports rotate on a singe monitor system. Version 5.1.0 (due
April 2013) will support any number of monitors and/or touch devices.
With UPDD 4.1.10, where the system
is switched between landscape and portrait modes UPDD will automatically
adjust calibration to match a defined degree of rotation. Only supports rotate on
the primary monitor.
Switching between landscape and
portrait mode is performed in the System Preferences, Display dialog. First
you need to select the degree of portrait rotation angle, either 90° or 270°.
This will rotate the screen. In Snow Leopard it will also adjust the video
resolution. Early versions of OS X will require that the resolution is set
manually. Once the resolution change is made the screen will be calibrated as
the UPDD rotate adjustment is trigged on the video resolution change. This is
because we have not found a way to programmatically determine the degree of
rotation selected in the Display dialog, only to determine that the video
resolution change represents a ‘portrait’ rotation (X < Y). Given that the
driver cannot determine the rotation angle it has to be manually set in UPDD
Console, Properties dialog, Portrait Rotate option to define what rotation
angle (90° or 270°) is being used in Portrait mode. This restricts automatic calibration
working to one defined portrait angle.
In this example the
user is switching between 0° and 90°:
2) Manual when using any rotation angle
Any combination of any video rotation and screen size can be used so long as:
1.
4 or more points are used for calibration
2.
The screen is recalibrated after the video display preferences are
changed. Note that the UPDD Console, Properties, "Portrait" setting
is irrelevant in this situation.
UPDD
only supports rotate on the primary monitor in Mac OS X.
Under
Linux you can rotate the video in a number of ways, such as predefined in the
X configuration file using the X directive Option “Rotate” “[rotate]”, using the xrandr
command or using the rotate request in the display console – should one
exist.
e.g. Option “Rotate” “CCW” or
/usr/bin/xrandr –o left
UPDD supports these rotation
methods as discussed below:
Calibration
is automatically adjusted to take into account the degree of rotation.
UPDD
adjusts calibration accordingly when a rotate is initiated. This may be due
to the direct use of the xrandr command or a rotate
request in the display console, should one be available.
If, after a rotate has
occurred, the calibration is not automatically adjusted then it should be
possible to conduct a manual calibration on the rotated screen to restore
calibration, see below:
This requires that calibration
is performed every time the system is rotated to a different rotation.
If using Option “Rotate” “[rotate]” check
whether your card is supported then look at the appropriate release notes
found at http://xfree86.org or http://www.x.org respectively. If your card
supports the “Rotate” option as mentioned in the release notes then it is
compatible with UPDD. Supported rotations in X-Windows are 90 and 270
degrees. As mentioned in the documentation for your video card, the device section
in the X config file should be either configured
for Option “Rotate” “CW” (clockwise) or Option “Rotate” “CCW”
(counter-clockwise). An example of a
Device section set up for rotation is below:-
Section “Device”
Identifier “VideoCard0”
Driver “nv”
VendorName “Videocard
vendor”
BoardName “VESA driver (generic)”
Option “Rotate” “CCW”
EndSection
Early versions of 5.0.2 UPDD only supported
rotate on the primary monitor in Linux. Since April 2013 5.0.2 now supports
rotate on all monitors.
UPDD
has been updated for specific devices to support rotate in CE but this will
be implementation specific. Please contact us to discuss your requirements.
This utility is currently only available for Windows systems and only
invokes rotation on the primary monitor.
Using rotate services offered by software rotate utilities or rotate
enabled video chips, desktops can be rotated through various rotation angles,
normally 0° to 90°/270° (Landscape to Portrait) or 0° to 180° for systems
that can be viewed from top or bottom. Software is often supplied that can be
used to switch to the desired degree of rotation and the method employed does
not always lend itself to quick selection in a touch only environment.
The section describes how we have implemented a touch method to
perform graphical rotation that uses a toolbar and
system tray utility to initiate rotation.
Please note - these touch
rotation methods can only be employed if UPDD detects a rotation method that
it supports to initiate rotate. At the time of writing UPDD Rotate initiation
will only work with iRotate and Silicon Motion chip
sets as shown in the UPDD Extension,
Video Rotation dialog, Touch Control column; e.g.

Unless there is a green tick in
the Touch Control column UPDD rotate utilities cannot be used to rotate the
video!
In UPDD Version 4 toolbars can be associated with UPDD specific
functions which include a rotate action. To create a rotate toolbar you can
use the standard toolbar dialog and associate a rotate function, as shown
below:

In this Windows example a toolbar, Rotate, has been created with the
‘Add a new toolbar’ function. Using the ‘Change cell options’ a the UPDD Rotate Action has been associated with the
toolbar to rotate between 0° and 90°.
Thereafter the ‘Calibrate toolbar’ is used to calibrate the toolbar on
the touch screen. The toolbar can also
be associated with a Toolbar image if required so that the user can have a
visual reference to the rotate toolbar.
The UPDD rotate action can be used to rotate through any combination
of degrees of rotation or associated to one specific rotation angle by only
enabling the checkbox next to the required rotation angle.
Once the Rotate toolbar is created and calibrated, touching the rotate
toolbar on the touch screen will rotate the display using one of the
supported rotate methods which caters for external rotation requests.
The UPDD Extension, Video Rotation
dialog offers a quick link to create and calibrate a rotate toolbar used
to initiate rotation, as shown:
![]()
By default this rotate toolbar will rotate between 0° and 90° but can
be changed as required. If more than one method is found then rotation could
cause an issue. In this situation, if
you have a supported hardware chip consider uninstalling the software
methods.
When a rotate interface is identified that can support rotate requests
from UPDD, as shown in the UPDD
Extension, Video Rotation dialog and if the system tray rotate utility is
enabled then a UPDD Rotate system tray icon will be shown
that can also be used to rotate the screen
though the enabled Rotate states.

If either
the rotate system tray utility or the rotate toolbar is set to confirm before
rotation the following dialog is shown:

At
system startup most systems will power up in landscape mode (0°
rotation) although some can power up in the previous rotated mode. For
calibration accuracy it is important that the driver knows the initial
rotation mode. If, prior to reboot, the previous Windows session was rotated
using Pivot software, one of the supported video chipsets, or the WM_UPDDRotateEvent message it is important that the
driver is informed of the initial rotate state at start up using the same method. Automatic detection is deliberately
disabled in the assumption that one of these methods will be used at startup
to inform of the start up rotation angle and to ensure there is no conflict
between one of these methods (which can identify and inform of all 4 rotation
angles and auto-detection that can only identify 2 rotation angles).
If none of the
above methods were used to perform rotation the UPDD daemon process will
auto-detect rotation but only be able to inform the driver of landscape (0°) or Portrait (90°/270°) initial rotation (depending on the UPDD PortraitAngle registry setting **).
It is important
that correct orientation settings (swap X/Y) are set if the system is
starting in a rotated mode. If
the number of calibration points is 4 or more then the calibration procedure will
automatically calculate the orientation and therefore it is highly
recommended that in this environment 4 calibration points or more are
used. If this is not the case and
orientation is incorrectly set the calibration may be incorrect when starting
with a rotated desktop.
UPDD Toolbars
are described in the Toolbar document. Toolbars
are either associated with a physical area on the pointer device or
associated with a position on the desktop. Toolbars can also have associated
images that are displayed on the desktop at the position of the toolbar. When
a display rotates the position of the toolbar is recalculated if the toolbar
is associated with the desktop. If the toolbar is associated to a physical
area on the pointer device and has an associated image then the image
position is recalculated.
For further information or technical assistance please email the technical support team at technical@touch-base.com