| 142 | } |
| 143 | |
| 144 | Settings BuildSettingsForRatio(float ratio) |
| 145 | { |
| 146 | ratio = SanitizeRatio(ratio); |
| 147 | |
| 148 | Settings settings{}; |
| 149 | if (ratio >= kBaseRatio) |
| 150 | { |
| 151 | settings.leftFOV = kBaseTopFov * ratio; |
| 152 | settings.topFOV = kBaseTopFov; |
| 153 | |
| 154 | const float uiWidth = kBaseRatio / ratio; |
| 155 | const float insetX = (1.0f - uiWidth) * 0.5f; |
| 156 | settings.uiTopLeftX = insetX; |
| 157 | settings.uiTopLeftY = 0.0f; |
| 158 | settings.uiBottomRightX = 1.0f - insetX; |
| 159 | settings.uiBottomRightY = 1.0f; |
| 160 | return settings; |
| 161 | } |
| 162 | |
| 163 | settings.leftFOV = kBaseLeftFov; |
| 164 | settings.topFOV = kBaseLeftFov / ratio; |
| 165 | |
| 166 | const float uiHeight = ratio / kBaseRatio; |
| 167 | const float insetY = (1.0f - uiHeight) * 0.5f; |
| 168 | settings.uiTopLeftX = 0.0f; |
| 169 | settings.uiTopLeftY = insetY; |
| 170 | settings.uiBottomRightX = 1.0f; |
| 171 | settings.uiBottomRightY = 1.0f - insetY; |
| 172 | return settings; |
| 173 | } |
| 174 | |
| 175 | PolicyResult ResolvePolicy(const PolicyInput& input) |
| 176 | { |
no test coverage detected