It would be interesting to replace the longword type for a single type (or Double)?
Why an integer type was used?
This has been fixed in FPC Trunk as commit r34060.
"Fixed Point" mathematics is sometime faster or more convenient than floating point mathematics. Also in was often used in the olden days (eg: The DOOM game from ID Software) where not all target CPU types had FPU functionality (eg: Intel 386).
Wikipedia has a good explanation of Fixed Point mathematics.
What will be the type of Free Pascal data that most fits the definition of Fixed shown on the Microsoft website?
One also needs to take into account if the fixed point data type is signed or unsigned. The 'Fixed' data type used by TTF's ItalicAngle is a Signed Fixed Point 16.16, thus in Object Pascal you have to use a
Int32 data type, and that is what I've done.
So the
TPostScript.ItalicAngle uses a custom TF16Dot16 data type, which in turn is a
Int32 (signed). So the TPostScript.ItalicAngle will return the exact fixed point value from the TTF file.
For convenience, I've also modified the
TTFFileInfo.ItalicAngle() function which returns the ItalicAngle value as a
Single data type. So this is probably what you would want to use.