Freigeben über


ID3D11On12Device::ReleaseWrappedResources-Methode (d3d11on12.h)

Gibt D3D11-Ressourcen frei, die für D3D 11on12 umschlossen wurden.

Syntax

void ReleaseWrappedResources(
  [in] ID3D11Resource * const *ppResources,
       UINT           NumResources
);

Parameter

[in] ppResources

Typ: ID3D11Resource*

Gibt einen Zeiger auf eine Gruppe von D3D11-Ressourcen an, definiert durch ID3D11Resource.

NumResources

Typ: UINT

Anzahl der Ressourcen.

Rückgabewert

Keine

Bemerkungen

Rufen Sie diese Methode vor dem Aufrufen von Flush auf, um Ressourcenbarrieren in den entsprechenden "Out"-Zustand einzufügen und zu markieren, dass sie dann den Zustand "in" aufweisen sollen. Wenn keine Ressourcenliste bereitgestellt wird, werden alle umschlossenen Ressourcen übergehen. Diese Ressourcen werden in der Gefahrenverfolgung als "nicht erworben" gekennzeichnet, bis ID3D11On12Device::AcquireWrappedResources aufgerufen wird.

Schlüsselierte Mutex-Ressourcen können für diese Methode nicht bereitgestellt werden. verwenden Sie stattdessen IDXGIKeyedMutex::ReleaseSync .

Beispiele

Rendern von Text über D3D12 mithilfe von D2D über das 11On12-Gerät.

// Render text over D3D12 using D2D via the 11On12 device.
void D3D1211on12::RenderUI()
{
    D2D1_SIZE_F rtSize = m_d2dRenderTargets[m_frameIndex]->GetSize();
    D2D1_RECT_F textRect = D2D1::RectF(0, 0, rtSize.width, rtSize.height);
    static const WCHAR text[] = L"11On12";

    // Acquire our wrapped render target resource for the current back buffer.
    m_d3d11On12Device->AcquireWrappedResources(m_wrappedBackBuffers[m_frameIndex].GetAddressOf(), 1);

    // Render text directly to the back buffer.
    m_d2dDeviceContext->SetTarget(m_d2dRenderTargets[m_frameIndex].Get());
    m_d2dDeviceContext->BeginDraw();
    m_d2dDeviceContext->SetTransform(D2D1::Matrix3x2F::Identity());
    m_d2dDeviceContext->DrawTextW(
        text,
        _countof(text) - 1,
        m_textFormat.Get(),
        &textRect,
        m_textBrush.Get()
        );
    ThrowIfFailed(m_d2dDeviceContext->EndDraw());

    // Release our wrapped render target resource. Releasing 
    // transitions the back buffer resource to the state specified
    // as the OutState when the wrapped resource was created.
    m_d3d11On12Device->ReleaseWrappedResources(m_wrappedBackBuffers[m_frameIndex].GetAddressOf(), 1);

    // Flush to submit the 11 command list to the shared command queue.
    m_d3d11DeviceContext->Flush();
}

Weitere Informationen finden Sie im Beispielcode in der D3D12-Referenz.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d11on12.h
Bibliothek D3D11.lib
DLL D3D11.dll

Weitere Informationen

ID3D11On12Device