Compartilhar via


Método ID2D1Factory::CreateDCRenderTarget (d2d1.h)

Cria um destino de renderização que se baseia em um contexto de dispositivo GDI (Interface do Dispositivo Gráfico do Windows).

Sintaxe

HRESULT CreateDCRenderTarget(
  [in]  const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
  [out] ID2D1DCRenderTarget                 **dcRenderTarget
);

Parâmetros

[in] renderTargetProperties

Tipo: const D2D1_RENDER_TARGET_PROPERTIES*

O modo de renderização, o formato de pixel, as opções de comunicação remota, as informações de DPI e o suporte mínimo do DirectX necessário para a renderização de hardware. Para habilitar o destino de renderização do dc (contexto do dispositivo) para trabalhar com GDI, defina o formato DXGI como DXGI_FORMAT_B8G8R8A8_UNORM e o modo alfa como D2D1_ALPHA_MODE_PREMULTIPLIED ou D2D1_ALPHA_MODE_IGNORE. Para obter mais informações sobre formatos de pixel, consulte Formatos de pixel com suporte e modos alfa.

[out] dcRenderTarget

Tipo: ID2D1DCRenderTarget**

Quando esse método retorna, dcRenderTarget contém o endereço do ponteiro para o ID2D1DCRenderTarget criado pelo método .

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT .

Comentários

Antes de renderizar com um destino de renderização dc, você deve usar o método BindDC do destino de renderização para associá-lo a um DC GDI. Faça isso para cada DC diferente e sempre que houver uma alteração no tamanho da área para a qual você deseja desenhar.

Para habilitar o destino de renderização de DC para trabalhar com GDI, defina o formato DXGI do destino de renderização como DXGI_FORMAT_B8G8R8A8_UNORM e modo alfa para D2D1_ALPHA_MODE_PREMULTIPLIED ou D2D1_ALPHA_MODE_IGNORE.

Seu aplicativo deve criar destinos de renderização uma vez e mantê-los durante a vida útil do aplicativo ou até que o método EndDraw do destino de renderização retorne o erro D2DERR_RECREATE_TARGET . Ao receber esse erro, recrie o destino de renderização (e todos os recursos que ele criou).

Exemplos

O código a seguir cria um destino de renderização dc.

// Create a DC render target.
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(
    D2D1_RENDER_TARGET_TYPE_DEFAULT,
    D2D1::PixelFormat(
        DXGI_FORMAT_B8G8R8A8_UNORM,
        D2D1_ALPHA_MODE_IGNORE),
    0,
    0,
    D2D1_RENDER_TARGET_USAGE_NONE,
    D2D1_FEATURE_LEVEL_DEFAULT
    );

hr = m_pD2DFactory->CreateDCRenderTarget(&props, &m_pDCRT);

No código anterior, m_pD2DFactory é um ponteiro para um ID2D1Factory e m_pDCRT é um ponteiro para um ID2D1DCRenderTarget.

O próximo exemplo de código associa um DC ao ID2D1DCRenderTarget.

HRESULT DemoApp::OnRender(const PAINTSTRUCT &ps)
{

// Get the dimensions of the client drawing area.
GetClientRect(m_hwnd, &rc);

// Bind the DC to the DC render target.
hr = m_pDCRT->BindDC(ps.hdc, &rc);

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Atualização de Plataforma para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho d2d1.h
Biblioteca D2d1.lib
DLL D2d1.dll

Confira também

Visão geral da interoperação de Direct2D e GDI

ID2D1Factory

Formatos de pixel e modos alfa com suporte