| 17 | const Tr2RenderContextEnum::PixelFormat BACK_BUFFER_FORMAT = Tr2RenderContextEnum::PIXEL_FORMAT_B8G8R8A8_UNORM; |
| 18 | |
| 19 | ALResult PopulatePresentParams( Tr2PresentParametersAL& presentParams, Tr2WindowMode::Type windowMode, uint32_t adapter, uint32_t width, uint32_t height, Tr2RenderContextEnum::PresentInterval presentInterval ) |
| 20 | { |
| 21 | unsigned adapterCount; |
| 22 | CR_RETURN_HR( Tr2VideoAdapterInfo::GetAdapterCount( adapterCount ) ); |
| 23 | if( adapter >= adapterCount ) |
| 24 | { |
| 25 | return E_INVALIDARG; |
| 26 | } |
| 27 | |
| 28 | presentParams.backBufferCount = 1; |
| 29 | presentParams.presentInterval = presentInterval; |
| 30 | presentParams.msaaType = 1; |
| 31 | presentParams.msaaQuality = 0; |
| 32 | presentParams.software = false; |
| 33 | presentParams.windowed = windowMode != Tr2WindowMode::FULL_SCREEN; |
| 34 | presentParams.swapEffect = Tr2RenderContextEnum::SWAP_EFFECT_DISCARD; |
| 35 | |
| 36 | if( windowMode == Tr2WindowMode::FULL_SCREEN ) |
| 37 | { |
| 38 | bool found = false; |
| 39 | unsigned modeCount; |
| 40 | CR_RETURN_HR( Tr2VideoAdapterInfo::GetAdapterModeCount( adapter, BACK_BUFFER_FORMAT, modeCount ) ); |
| 41 | for( unsigned i = 0; i < modeCount; ++i ) |
| 42 | { |
| 43 | Tr2DisplayModeInfo info; |
| 44 | CR_RETURN_HR( Tr2VideoAdapterInfo::GetAdapterMode( adapter, BACK_BUFFER_FORMAT, i, info ) ); |
| 45 | if( info.width == width && info.height == height ) |
| 46 | { |
| 47 | presentParams.mode = info; |
| 48 | found = true; |
| 49 | break; |
| 50 | } |
| 51 | } |
| 52 | if( !found ) |
| 53 | { |
| 54 | return E_INVALIDARG; |
| 55 | } |
| 56 | } |
| 57 | else |
| 58 | { |
| 59 | presentParams.mode = Tr2DisplayModeInfo(); |
| 60 | presentParams.mode.format = BACK_BUFFER_FORMAT; |
| 61 | presentParams.mode.width = width; |
| 62 | presentParams.mode.height = height; |
| 63 | } |
| 64 | return S_OK; |
| 65 | } |
| 66 | |
| 67 | std::string ToString( Tr2WindowMode::Type windowMode ) |
| 68 | { |
no test coverage detected