スワップチェーンとSwapChainBackgroundPanelとの結び付け

公開:2012-04-20 06:09
更新:2020-02-15 04:37
カテゴリ:directx,c++/cx,xaml,windows store apps,windows,c++

Simple3DGameXAMLサンプルコードをぼちぼちと読んでいる。興味のあるところはスワップチェーンとSwapChainBackgroundPanelとの結び付けの部分だ。こうなっていた。


// Create the swap chain and then associate it with the SwapChainBackgroundPanel
DX::ThrowIfFailed(
    dxgiFactory->CreateSwapChainForComposition(
        m_d3dDevice.Get(),
        &swapChainDesc,
        nullptr,
        &m_swapChain
        )
    );

ComPtr<ISwapChainBackgroundPanelNative> dxRootPanelAsNative;

// set the swap chain on the SwapChainBackgroundPanel
reinterpret_cast<IUnknown*>(m_swapChainPanel)->QueryInterface
    (__uuidof(ISwapChainBackgroundPanelNative), (void**)&dxRootPanelAsNative);

DX::ThrowIfFailed(
    dxRootPanelAsNative->SetSwapChain(m_swapChain.Get())
    );

スワップチェーンを作って、それをSwapChainBackgroundPanelに結び付けるのですな。

Direct3D関係のサンプルコードはDirectXBaseクラスをベースに作られている。SimpleSpritesサンプルもCreateWindowSizeDependentResourcesをオーバーライドして書き換えれば容易に移行できそうだ。