ID3D11On12Device::ReleaseWrappedResources 方法 (d3d11on12.h)
释放为 D3D 11on12 包装的 D3D11 资源。
语法
void ReleaseWrappedResources(
[in] ID3D11Resource * const *ppResources,
UINT NumResources
);
参数
[in] ppResources
类型: ID3D11Resource*
指定指向 ID3D11Resource 定义的一组 D3D11 资源的指针。
NumResources
类型: UINT
资源数的计数。
返回值
无
备注
在调用 Flush 之前调用此方法,将资源屏障插入到相应的“out”状态,并标记它们随后应处于“in”状态。 如果未提供资源列表,则会转换所有包装的资源。 在调用 ID3D11On12Device::AcquireWrappedResources 之前,这些资源将在危险跟踪中标记为“未获取”。
无法向此方法提供键式互斥资源;请改用 IDXGIKeyedMutex::ReleaseSync 。
示例
使用 D2D 通过 11On12 设备在 D3D12 上呈现文本。
// 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 |
标头 | d3d11on12.h |
Library | D3D11.lib |
DLL | D3D11.dll |