Showing changes from revision #1 to #2:
Added | Removed | Changed
Entry | |
---|---|
R0 | 4 (reason code) |
R1 | Pointer device number |
Exit (relative pointing device) | |
---|---|
R0 | -1 |
R1 | Signed 32bit change in X position |
R2 | Signed 32bit change in Y position |
R3 | Signed 32bit change in X position of alternate device (i.e. horizontal scroll wheel) |
Signed 32bit change in Y position of alternate device (i.e. vertical scroll wheel) | |
R4 | Signed 32bit change in Y position of alternate device (i.e. vertical scroll wheel) |
Positive = “Up” / away from user | |
R5 | Button states: |
Bit 0: Right button | |
Bit 1: Middle button | |
Bit 2: Left button | |
Bits 3-7: Extra buttons | |
Bits 8-31: Reserved, must be zero |
Exit (absolute pointing device) | |
---|---|
R0 | 5 |
R1 | Absolute X position, 16bit fraction |
R2 | Absolute Y position, 16bit fraction |
R3 | 0 |
R4 | 0 |
R5 | Button states (same as relative devices) |
This vector is called by the OSPointer module when it wants to receive an update from a pointer driver. If a driver recognises the pointer type as being its own, then it should claim the call and return with either reason code -1 (for relative devices, e.g. mice) or 5 (for absolute devices, e.g. touch screens).
A driver which responds to this call should not use KeyV to report button state. It should only report the button state in response to this call. This will require some care when crafting a driver which is intended to be compatible with PointerV 1 or PointerV 3.
For absolute devices, the coordinates provided must be in the range 0-65535 inclusive. The returned value will be scaled by the screen size in order to convert the position to pixels.
This particular reason code is only used by the RISC OS Select OSPointer module.