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 表面轉譯目標,將 2D 內容繪製到 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取得 PBackBuffer (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 |
程式庫 | D2d1.lib |
Dll | D2d1.dll |
另請參閱
CreateDxgiSurfaceRenderTarget (IDXGISurface,const D2D1_RENDER_TARGET_PROPERTIES &,ID2D1RenderTarget)