I have two questions, most likely they are unrelated.
First -
The codebase I am working with uses a transparent fixed-point format that is currently set to 16.16 representation internally. (In code it is treated as a float, e.g. we can set a value to 1.0f but it is stored as 65536.)
Edgelib seems to use multiple fixed-point formats, however - it appears that most numbers are 16.16 but 3D coordinates and rotation arguments are 20.12, and there may be others I don't know about.
Could you possibly explain which formats are used throughout Edgelib? We are running into issues when converting from our fixed-point format into Edge's, since the exact format each function takes is not documented well. (Searching the forums, it seems that texture coordinates and scale arguments are 16.16, but translation and rotation arguments and the internal matrix format are 20.12.)
Would there be any adverse effects from directly using 16.16 fixed-point translations/positions as if they were 20.12? Obviously things would appear 16 times larger than they actually should be and we would still have to convert rotational arguments from 16.16 to 20.12, but it seems as if that's it.
Second -
Is there any way to see the values for the perspective matrix that is being used? We are possibly getting some strange perspective distortion - a bounding box in the shape of a cube, for example, seems very flat in the z-direction (into the screen) until the camera is directly over it, at which time it starts to appear more regular. Has anyone else experienced issues like this?
It's possible this issue is just me being more used to a view frustum with a wider field of view - could you explain the values the default perspective matrix uses for construction?
Thanks for any help you can provide.