Поделиться через


Метод ID3D11On12Device::ReleaseWrappedResources (d3d11on12.h)

Выпуски ресурсов D3D11, которые были упакованы для D3D 11on12.

Синтаксис

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

Параметры

[in] ppResources

Тип: ID3D11Resource*

Указывает указатель на набор ресурсов D3D11, определенный id3D11Resource.

NumResources

Тип: UINT

Количество ресурсов.

Возвращаемое значение

None

Remarks

Вызовите этот метод перед вызовом flush, чтобы вставить барьеры ресурсов в соответствующее состояние "out" и пометить, что они должны находиться в состоянии "в". Если список ресурсов не указан, переносятся все упакованные ресурсы. Эти ресурсы будут помечены как "не получены" в отслеживании опасности, пока не будет вызван ID3D11On12Device::AcquireWrappedResources .

Этот метод не может предоставлять ресурсы мьютекса с ключами; вместо этого используйте IDXGIKeyedMutex::ReleaseSync .

Примеры

Отрисовка текста по D3D12 с помощью D2D через устройство 11On12.

// 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();
}

См. пример кода в справочнике по D3D12.

Требования

   
Целевая платформа Windows
Header d3d11on12.h
Библиотека D3D11.lib
DLL D3D11.dll

См. также раздел

ID3D11On12Device