Example #1
0
// virtual
void QD3D10Widget::resizeEvent( QResizeEvent* e )
{
    // resize swap chain and back buffer
    QSize size = e->size();
    int width = size.width();
    int height = size.height();

    // set render targets to null
    m_pDevice->OMSetRenderTargets( 0, NULL, NULL );

    // release the old render target view and make a new one
    m_pBackBufferRenderTargetView->Release();
    m_pBackBuffer->Release();

    // resize the swap chain
    resizeSwapChain( width, height );

    // recreate the render targets
    createBackBufferRenderTargetView();

    // resize depth stencil buffer
    resizeDepthStencilBuffer( width, height );

    // point device at new back buffers
    restoreBackBuffer();

    // resize viewport
    D3D10_VIEWPORT viewport = D3D10Utils::createViewport( width, height );
    m_pDevice->RSSetViewports( 1, &viewport );

    resizeD3D(width, height);
}
void QD3D12Window::resizeEvent(QResizeEvent *event)
{
    Q_UNUSED(event);
    Q_D(QD3D12Window);

    if (!isExposed() || size().isEmpty())
        return;

    d->resize();
    resizeD3D(size());
    paintD3D();
    afterPresent();
}