Método ID2D1Factory::CreateDxgiSurfaceRenderTarget(IDXGISurface*,constD2D1_RENDER_TARGET_PROPERTIES*,ID2D1RenderTarget**) (d2d1.h)
Cria um destino de renderização que se desenha em uma superfície DXGI (DirectX Graphics Infrastructure).
Sintaxe
HRESULT CreateDxgiSurfaceRenderTarget(
[in] IDXGISurface *dxgiSurface,
[in] const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
[out] ID2D1RenderTarget **renderTarget
);
Parâmetros
[in] dxgiSurface
Tipo: IDXGISurface*
O IDXGISurface para o qual o destino de renderização será desenhado.
[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 obter informações sobre formatos de pixel com suporte, consulte Formatos de pixel com suporte e modos alfa.
[out] renderTarget
Tipo: ID2D1RenderTarget**
Quando esse método retorna, contém o endereço do ponteiro para o objeto ID2D1RenderTarget criado por esse 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
Para gravar em uma superfície Direct3D, você obtém um IDXGISurface e passa-o para o método CreateDxgiSurfaceRenderTarget para criar um destino de renderização de superfície DXGI; Em seguida, você pode usar o destino de renderização da superfície DXGI para desenhar conteúdo 2D para a superfície DXGI.
Um destino de renderização de superfície DXGI é um tipo de ID2D1RenderTarget. Como outros Direct2D destinos de renderização, você pode usá-lo para criar recursos e emitir comandos de desenho.
O destino de renderização da superfície DXGI e a superfície DXGI devem usar o mesmo formato DXGI. Se você especificar o formato DXGI_FORMAT_UNKOWN ao criar o destino de renderização, ele usará automaticamente o formato da superfície.
O destino de renderização da superfície DXGI não executa a sincronização de superfície DXGI.
Para obter mais informações sobre como criar e usar destinos de renderização de superfície DXGI, consulte o Direct2D e Visão geral da interoperabilidade do Direct3D.
Para trabalhar com Direct2D, o dispositivo Direct3D que fornece o IDXGISurface deve ser criado com o sinalizador D3D10_CREATE_DEVICE_BGRA_SUPPORT.
Quando você cria um destino de renderização e a aceleração de hardware está disponível, você aloca recursos na GPU do computador. Ao criar um destino de renderização uma vez e mantê-lo o maior tempo possível, você obtém benefícios de desempenho. 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, você precisa recriar o destino de renderização (e todos os recursos que ele criou).
Exemplos
O exemplo a seguir obtém uma superfície DXGI (pBackBuffer) de um IDXGISwapChain e a usa para criar um destino de renderização de superfície 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 | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | d2d1.h |
Biblioteca | D2d1.lib |
DLL | D2d1.dll |
Confira também
CreateDxgiSurfaceRenderTarget(IDXGISurface,const D2D1_RENDER_TARGET_PROPERTIES &,ID2D1RenderTarget)