locked
Is there a way to do resize a swap chain without the screen flashing?

    Question

  • I'm trying to dynamically change the swap chain resolution depending on content (low power hungry high quality scene demanding native screen resolution and more power hungry scene where full resolution is not needed). This mostly works, but the screen flashes for a frame or so when I create a new swap chain or resize the old one.

    My swap chain is created with CreateSwapChainForComposition. When I simply create a new swap chain at a different resolution and associate it with my ISwapChainBackgroundPanelNative by calling SetSwapChain - it obviously flashes because it is a new swap chain. When I call IDXGISwapChain1::ResizeBuffers on an existing one - I think it does not flash, but it doesn't adjust to the screen size, so I only see a stretched portion of the scene. If I call SetSwapChain after ResizeBuffers - it looks good again, but it also flashes again.

    Is there any way around it?


    Filip Skakun

    Wednesday, January 2, 2013 7:31 PM