ID2D1Factory::CreateDxgiSurfaceRenderTarget(IDXGISurface*,constD2D1_RENDER_TARGET_PROPERTIES*,ID2D1RenderTarget**) (d2d1.h)
Crea un destino de representación que se dibuja en una superficie de Infraestructura de gráficos DirectX (DXGI).
Sintaxis
HRESULT CreateDxgiSurfaceRenderTarget(
[in] IDXGISurface *dxgiSurface,
[in] const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
[out] ID2D1RenderTarget **renderTarget
);
Parámetros
[in] dxgiSurface
Tipo: IDXGISurface*
IdXGISurface al que se dibujará el destino de representación.
[in] renderTargetProperties
Tipo: const D2D1_RENDER_TARGET_PROPERTIES*
El modo de representación, el formato de píxeles, las opciones de comunicación remota, la información de PPP y la compatibilidad mínima con DirectX que se necesita para la representación de hardware. Para obtener información sobre los formatos de píxeles admitidos, vea Formatos de píxeles admitidos y Modos alfa.
[out] renderTarget
Tipo: ID2D1RenderTarget**
Cuando este método finaliza, contiene la dirección del puntero al objeto ID2D1RenderTarget creado por este método.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT .
Comentarios
Para escribir en una superficie de Direct3D, obtienes un IDXGISurface y lo pasas al método CreateDxgiSurfaceRenderTarget para crear un destino de representación de superficie DXGI; A continuación, puedes usar el destino de representación de superficie DXGI para dibujar contenido 2D en la superficie DXGI.
Un destino de representación de superficie DXGI es un tipo de ID2D1RenderTarget. Al igual que otros destinos de representación de Direct2D, puedes usarlo para crear recursos y emitir comandos de dibujo.
El destino de representación de la superficie DXGI y la superficie DXGI deben usar el mismo formato DXGI. Si especifica el formato de DXGI_FORMAT_UNKOWN al crear el destino de representación, usará automáticamente el formato de la superficie.
El destino de representación de superficie DXGI no realiza la sincronización de superficie DXGI.
Para obtener más información sobre cómo crear y usar destinos de representación de superficie DXGI, consulta La introducción a la interoperabilidad de Direct2D y Direct3D.
Para trabajar con Direct2D, el dispositivo Direct3D que proporciona IDXGISurface debe crearse con la marca D3D10_CREATE_DEVICE_BGRA_SUPPORT .
Cuando se crea un destino de representación y la aceleración de hardware está disponible, se asignan recursos en la GPU del equipo. Al crear un destino de representación una vez y conservarlo siempre que sea posible, obtendrá ventajas de rendimiento. La aplicación debe crear destinos de representación una vez y mantenerlos durante la vida útil de la aplicación o hasta que el método EndDraw del destino de representación devuelva el error D2DERR_RECREATE_TARGET . Cuando reciba este error, debe volver a crear el destino de representación (y los recursos que creó).
Ejemplos
En el ejemplo siguiente se obtiene una superficie DXGI (pBackBuffer) de un IDXGISwapChain y se usa para crear un destino de representación de 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);
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d2d1.h |
Library | D2d1.lib |
Archivo DLL | D2d1.dll |
Consulte también
CreateDxgiSurfaceRenderTarget(IDXGISurface,const D2D1_RENDER_TARGET_PROPERTIES &,ID2D1RenderTarget)