1. move the pointer to the far left of the screen.
2. move your finger from left side of trackpad to the right, slowly... (observe where the pointer stopped)
3. move the pointer back to the far left of the screen for the second test
4. move your finger from left side of trackpad to the right, quickly... (observe where the pointer stopped)
You will notice that although you moved your finger across the trackpad surface the same distance in each step 2 and 4, the mouse pointer moves further in step 4 than step 2. This is acceleration.
but in steps 2 and 4, with this table, there was a significant difference in acceleration, if the upper left to move your finger slowly, reaching the edge of the touchpad, the cursor is not even 1/4 of the screen, as if moving your finger quickly, the cursor goes to the very end of the screen.
Here is a table of acceleration by default :
OSData * IOHIPointing::copyAccelerationTable()
{
static const UInt8 accl[] = {
0x00, 0x00, 0x80, 0x00,
0x40, 0x32, 0x30, 0x30, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x09, 0x00, 0x00, 0x71, 0x3B, 0x00, 0x00,
0x60, 0x00, 0x00, 0x04, 0x4E, 0xC5, 0x00, 0x10,
0x80, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x5F,
0x00, 0x00, 0x00, 0x16, 0xEC, 0x4F, 0x00, 0x8B,
0x00, 0x00, 0x00, 0x1D, 0x3B, 0x14, 0x00, 0x94,
0x80, 0x00, 0x00, 0x22, 0x76, 0x27, 0x00, 0x96,
0x00, 0x00, 0x00, 0x24, 0x62, 0x76, 0x00, 0x96,
0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x96,
0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x96,
0x00, 0x00
};
OSData * data = OSDynamicCast( OSData,
getProperty( kIOHIDPointerAccelerationTableKey ));
if( data)
data->retain();
else
data = OSData::withBytesNoCopy( (void *) accl, sizeof( accl ) );
return( data );
}