| 199 | } |
| 200 | |
| 201 | void DeviceManager::Reset() |
| 202 | { |
| 203 | Assert_(swapChain); |
| 204 | |
| 205 | // Release all references |
| 206 | if(bbTexture) |
| 207 | bbTexture.Release(); |
| 208 | |
| 209 | if(bbRTView) |
| 210 | bbRTView.Release(); |
| 211 | |
| 212 | immediateContext->ClearState(); |
| 213 | |
| 214 | if(fullScreen) |
| 215 | PrepareFullScreenSettings(); |
| 216 | else |
| 217 | { |
| 218 | refreshRate.Numerator = 60; |
| 219 | refreshRate.Denominator = 1; |
| 220 | } |
| 221 | |
| 222 | DXCall(swapChain->SetFullscreenState(fullScreen, NULL)); |
| 223 | |
| 224 | DXCall(swapChain->ResizeBuffers(2, backBufferWidth, backBufferHeight, |
| 225 | backBufferFormat, DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH)); |
| 226 | |
| 227 | if(fullScreen) |
| 228 | { |
| 229 | DXGI_MODE_DESC mode; |
| 230 | mode.Format = backBufferFormat; |
| 231 | mode.Width = backBufferWidth; |
| 232 | mode.Height = backBufferHeight; |
| 233 | mode.RefreshRate.Numerator = 0; |
| 234 | mode.RefreshRate.Denominator = 0; |
| 235 | mode.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; |
| 236 | mode.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; |
| 237 | DXCall(swapChain->ResizeTarget(&mode)); |
| 238 | } |
| 239 | |
| 240 | AfterReset(); |
| 241 | } |
| 242 | |
| 243 | void DeviceManager::Present() |
| 244 | { |
no test coverage detected