[TestCase(480, 320, 96, SetDisplayAction.DisplayType.Desktop, 0.64f)] //Scale on desktop public void UIHelper_TestScaleFactor(int width, int height, float dpi, SetDisplayAction.DisplayType displayType, float expectedScaleFactor) { //when var scaleFactor = UIUtils.GetScaleFactor(width, height, dpi, displayType); //Then Assert.IsTrue(Math.Abs(expectedScaleFactor - scaleFactor) < 0.1f, $"Expected Scale Factor was {expectedScaleFactor.ToString()}, but {scaleFactor.ToString()} was found", null); }
static float FindMinimumDeviceHeight(SetDisplayAction.DisplayType displayType) { if (displayType == SetDisplayAction.DisplayType.Tablet) { return(k_MinimumHeightTablet); } return(k_MinimumHeightPhone); }
public static float GetScaleFactor(float width, float height, float dpi, SetDisplayAction.DisplayType displayType) { var scaleFactor = dpi / GetTargetDpi(dpi, displayType); Vector2 screenSize = new Vector2(width / scaleFactor, height / scaleFactor); var minimalHeight = FindMinimumDeviceHeight(displayType); if (screenSize.y < minimalHeight) { scaleFactor = height / minimalHeight; } return(scaleFactor); }
public static float GetTargetDpi(float dpi, SetDisplayAction.DisplayType displayType) { return(displayType == SetDisplayAction.DisplayType.Desktop? dpi : k_TargetDPIWindows); }