ID2D1Factory::CreateDxgiSurfaceRenderTarget (IDXGISurface*,constD2D1_RENDER_TARGET_PROPERTIES*,ID2D1RenderTarget**) 方法 (d2d1.h)
创建绘制到 DirectX 图形基础结构 (DXGI) 图面的呈现目标。
语法
HRESULT CreateDxgiSurfaceRenderTarget(
[in] IDXGISurface *dxgiSurface,
[in] const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
[out] ID2D1RenderTarget **renderTarget
);
参数
[in] dxgiSurface
类型: IDXGISurface*
呈现器目标将绘制到的 IDXGISurface。
[in] renderTargetProperties
类型: const D2D1_RENDER_TARGET_PROPERTIES*
呈现模式、像素格式、远程处理选项、DPI 信息和硬件呈现所需的最低 DirectX 支持。 有关支持的像素格式的信息,请参阅 支持的像素格式和 Alpha 模式。
[out] renderTarget
类型: ID2D1RenderTarget**
此方法返回时,包含指向此方法创建的 ID2D1RenderTarget 对象的指针的地址。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
注解
若要写入 Direct3D 图面,请获取 IDXGISurface 并将其传递给 CreateDxgiSurfaceRenderTarget 方法来创建 DXGI 表面呈现目标;然后,可以使用 DXGI 表面呈现目标将二维内容绘制到 DXGI 图面。
DXGI 表面呈现目标是 一种 ID2D1RenderTarget。 与其他 Direct2D 呈现目标一样,可以使用它创建资源并发出绘图命令。
DXGI 表面呈现目标和 DXGI 图面必须使用相同的 DXGI 格式。 如果在创建呈现目标时指定 DXGI_FORMAT_UNKOWN 格式,则它将自动使用图面的格式。
DXGI 表面呈现目标不执行 DXGI 表面同步。
有关创建和使用 DXGI 表面呈现目标的详细信息,请参阅 Direct2D 和 Direct3D 互操作性概述。
若要使用 Direct2D,必须使用 D3D10_CREATE_DEVICE_BGRA_SUPPORT 标志创建提供 IDXGISurface 的 Direct3D 设备。
创建呈现目标且硬件加速可用时,可以在计算机的 GPU 上分配资源。 通过创建一次呈现器目标并尽可能长时间地保留它,可以获得性能优势。 应用程序应创建呈现目标一次,并在应用程序的生命周期内保留这些目标,或者直到呈现目标的 EndDraw 方法返回 D2DERR_RECREATE_TARGET 错误为止。 收到此错误时,需要重新创建呈现目标 (以及它) 创建的任何资源。
示例
以下示例从 IDXGISwapChain 获取一个 DXGI 图面 (pBackBuffer) ,并使用它来创建 DXGI 表面呈现目标。
// Initialize *hwnd* with the handle of the window displaying the rendered content.
HWND hwnd;
// Get a surface in the swap chain
hr = m_pSwapChain->GetBuffer(
0,
IID_PPV_ARGS(&pBackBuffer));
if (SUCCEEDED(hr))
{
// Create the DXGI Surface Render Target.
float dpi = GetDpiForWindow(hwnd);
D2D1_RENDER_TARGET_PROPERTIES props =
D2D1::RenderTargetProperties(
D2D1_RENDER_TARGET_TYPE_DEFAULT,
D2D1::PixelFormat(DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_PREMULTIPLIED),
dpi,
dpi
);
// Create a Direct2D render target that can draw into the surface in the swap chain.
hr = m_pD2DFactory->CreateDxgiSurfaceRenderTarget(
pBackBuffer,
&props,
&m_pBackBufferRT);
}
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d2d1.h |
Library | D2d1.lib |
DLL | D2d1.dll |
另请参阅
CreateDxgiSurfaceRenderTarget (IDXGISurface,const D2D1_RENDER_TARGET_PROPERTIES &,ID2D1RenderTarget)