23 Apr 2013, 7:40
Hi!
Yes, you can obtain physical screen properties through the Murl::IPlatformConfiguration object, by using one of these methods:
- GetPhysicalPixelSizeX()
- GetPhysicalPixelSizeY()
- GetPhysicalScreenSizeX()
- GetPhysicalScreenSizeY()
All of these methods return a size value in millimeters. From that you can easily calculate the actual screen DPI values in X and Y direction, for example in the app's Configure() method:
This works well for iOS and Android devices. However on Windows and MacOS, the operating system unfortunately does not provide exact monitor information, so the DPI values reported to the engine are only some sort of "good guess". (For example, MacOS X always reports DPI values of 72, even for built-in screens of a MacBook)
Best regards,
dizzy
Yes, you can obtain physical screen properties through the Murl::IPlatformConfiguration object, by using one of these methods:
- GetPhysicalPixelSizeX()
- GetPhysicalPixelSizeY()
- GetPhysicalScreenSizeX()
- GetPhysicalScreenSizeY()
All of these methods return a size value in millimeters. From that you can easily calculate the actual screen DPI values in X and Y direction, for example in the app's Configure() method:
Bool App::MyApplication::Configure(IEngineConfiguration* engineConfig)
{
const IPlatformConfiguration* platformConfig = engineConfig->GetPlatformConfiguration();
Real dpiX = 1.0 / (platformConfig->GetPhysicalPixelSizeX() * Math::MM_TO_INCHES);
Real dpiY = 1.0 / (platformConfig->GetPhysicalPixelSizeY() * Math::MM_TO_INCHES);
// Do something spectacular using these values :)
return true;
}
This works well for iOS and Android devices. However on Windows and MacOS, the operating system unfortunately does not provide exact monitor information, so the DPI values reported to the engine are only some sort of "good guess". (For example, MacOS X always reports DPI values of 72, even for built-in screens of a MacBook)
Best regards,
dizzy