Metodo ID2D1Factory::CreateDxgiSurfaceRenderTarget(IDXGISurface*,constD2D1_RENDER_TARGET_PROPERTIES*,ID2D1RenderTarget**) (d2d1.h)
Crea una destinazione di rendering che disegna su una superficie DXGI (DirectX Graphics Infrastructure).
Sintassi
HRESULT CreateDxgiSurfaceRenderTarget(
[in] IDXGISurface *dxgiSurface,
[in] const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
[out] ID2D1RenderTarget **renderTarget
);
Parametri
[in] dxgiSurface
Tipo: IDXGISurface*
IDXGISurface in cui verrà disegnare la destinazione di rendering.
[in] renderTargetProperties
Tipo: const D2D1_RENDER_TARGET_PROPERTIES*
La modalità di rendering, il formato pixel, le opzioni di comunicazione remota, le informazioni DPI e il supporto minimo di DirectX necessario per il rendering hardware. Per informazioni sui formati pixel supportati, vedere Formati pixel supportati e modalità alfa.
[out] renderTarget
Tipo: ID2D1RenderTarget**
Quando termina, questo metodo contiene l'indirizzo del puntatore all'oggetto ID2D1RenderTarget creato da questo metodo.
Valore restituito
Tipo: HRESULT
Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
Per scrivere in una superficie Direct3D, ottenere un IDXGISurface e passarlo al metodo CreateDxgiSurfaceRenderTarget per creare una destinazione di rendering della superficie DXGI; è quindi possibile usare la destinazione di rendering della superficie DXGI per disegnare contenuto 2D sulla superficie DXGI.
Una destinazione di rendering della superficie DXGI è un tipo di ID2D1RenderTarget. Analogamente ad altre destinazioni di rendering Direct2D, è possibile usarla per creare risorse ed eseguire comandi di disegno.
La destinazione di rendering della superficie DXGI e la superficie DXGI devono usare lo stesso formato DXGI. Se si specifica il formato di DXGI_FORMAT_UNKOWN quando si crea la destinazione di rendering, verrà utilizzato automaticamente il formato della superficie.
La destinazione di rendering della superficie DXGI non esegue la sincronizzazione della superficie DXGI.
Per altre informazioni sulla creazione e sull'uso di destinazioni di rendering della superficie DXGI, vedere Panoramica dell'interoperabilità direct2D e Direct3D.
Per usare Direct2D, il dispositivo Direct3D che fornisce IDXGISurface deve essere creato con il flag D3D10_CREATE_DEVICE_BGRA_SUPPORT .
Quando si crea una destinazione di rendering e l'accelerazione hardware è disponibile, allocare risorse nella GPU del computer. Creando una destinazione di rendering una sola volta e conservandola il più a lungo possibile, si ottengono vantaggi in termini di prestazioni. L'applicazione deve creare destinazioni di rendering una sola volta e mantenerle per la durata dell'applicazione o fino a quando il metodo EndDraw della destinazione di rendering non restituisce l'errore D2DERR_RECREATE_TARGET . Quando viene visualizzato questo errore, è necessario ricreare la destinazione di rendering e tutte le risorse create.
Esempio
L'esempio seguente ottiene una superficie DXGI (pBackBuffer) da un IDXGISwapChain e la usa per creare una destinazione di rendering della superficie 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);
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d2d1.h |
Libreria | D2d1.lib |
DLL | D2d1.dll |
Vedi anche
CreateDxgiSurfaceRenderTarget(IDXGISurface,const D2D1_RENDER_TARGET_PROPERTIES &,ID2D1RenderTarget)