They will return 1 for ordinary DPI and 2 (and in the future perhaps more) for HiDPI. You can simply multiply these values with the imageWidth, imageHeight, thumbWidth and thumbHeight values to get the true pixel size of the corresponding image.
"scale" is the technical term for the scale factor that is applied to all coordinates when painting to various screens. A scale factor of 1 corresponds to a classic 1/72" dot pitch screen.
There are also engine.isHiDPIImages() and engine.isHiDPIThumbs() - simple booleans, but without telling you anything about the scaling. For now, it's always 2, but...
True, but multiplying getXXXScale with the width and height variables is always ensured to give you the true # of pixels, but if you're only interested in knowing if a "high" DPI is being used, then you can use the engine.isHiDPIImages() and engine.isHiDPIThumbs() calls.
Yes, for both Matrix and NoPages, I simply need to know whether the option has been selected (images for Matrix, both images and thumbs for NoPages). The option is just incompatible, regardless of the scaling factor.
I'm planning to update the API docs, but some Java update now puts increased syntactic rules on the existing Javadocs so they don't compile anymore. It's currently at 100 errors and then halted the javadoc compilation. Well well, I just have to find some tool that can replace all > and < references with > and < and & with & etc.