// Set the fullscreen mode to a desired state
//-----------------------------------------------------------------------------
void CPUT_OGL::CPUTSetFullscreenState(bool bIsFullscreen)
{
    // get the current fullscreen state
    bool bCurrentFullscreenState = CPUTGetFullscreenState();
    if((bool)bCurrentFullscreenState == bIsFullscreen)
    {
        // no need to call expensive state change, full screen state is already
        // in desired state
        return;
    }

    // set the fullscreen state
//    HRESULT hr = mpSwapChain->SetFullscreenState(bIsFullscreen, NULL);
//   ASSERT( SUCCEEDED(hr), _L("Failed toggling full screen mode.") );

    // trigger resize event so that all buffers can resize
    int x,y,width,height;
    mpWindow->GetClientDimensions(&x, &y, &width, &height);
    ResizeWindow(width,height);



    // trigger a fullscreen mode change call if the sample has decided to handle the mode change
    FullscreenModeChange( bIsFullscreen );
}
Esempio n. 2
0
// Toggle the fullscreen mode
// This routine keeps the current desktop resolution.  DougB suggested allowing
// one to go fullscreen in a different resolution
//-----------------------------------------------------------------------------
CPUTResult CPUT_DX11::CPUTToggleFullScreenMode()
{    
    // get the current fullscreen state
    bool bIsFullscreen = CPUTGetFullscreenState();
     
    // toggle the state
    bIsFullscreen = !bIsFullscreen;

    // set the fullscreen state
    HRESULT hr = mpSwapChain->SetFullscreenState(bIsFullscreen, NULL);
    ASSERT( SUCCEEDED(hr), _L("Failed toggling full screen mode.") );

    // trigger resize event so that all buffers can resize
    int x,y,width,height;
    CPUTOSServices::GetOSServices()->GetClientDimensions(&x, &y, &width, &height);
    ResizeWindow(width,height);

    // trigger a fullscreen mode change call if the sample has decided to handle the mode change
    FullscreenModeChange( bIsFullscreen );

    return CPUT_SUCCESS;
}