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)

Introducción a la interoperabilidad de Direct2D y Direct3D

ID2D1Factory