Interface IDWriteBitmapRenderTarget (dwrite.h)
Encapsula um bitmap independente do dispositivo de 32 bits e o contexto do dispositivo, que pode ser usado para renderizar glifos.
Herança
A interface IDWriteBitmapRenderTarget herda da interface IUnknown . IDWriteBitmapRenderTarget também tem estes tipos de membros:
Métodos
A interface IDWriteBitmapRenderTarget tem esses métodos.
IDWriteBitmapRenderTarget::D rawGlyphRun Desenha uma execução de glifos para um destino bitmap na posição especificada. |
IDWriteBitmapRenderTarget::GetCurrentTransform Obtém a transformação que mapeia coordenadas abstratas para DIPs. Por padrão, essa é a transformação de identidade. Observe que isso não está relacionado à transformação mundial do contexto do dispositivo subjacente. |
IDWriteBitmapRenderTarget::GetMemoryDC Obtém um identificador para o contexto do dispositivo de memória. |
IDWriteBitmapRenderTarget::GetPixelsPerDip Obtém o número de pixels de bitmap por DIP. |
IDWriteBitmapRenderTarget::GetSize Obtém as dimensões do bitmap de destino. |
IDWriteBitmapRenderTarget::Resize Redimensiona o bitmap. |
IDWriteBitmapRenderTarget::SetCurrentTransform Define a transformação que mapeia a coordenada abstrata para DIPs (pixel independente do dispositivo). Isso não afeta a transformação mundial do contexto do dispositivo subjacente. |
IDWriteBitmapRenderTarget::SetPixelsPerDip Define o número de pixels de bitmap por DIP (pixel independente do dispositivo). Um DIP é de 1/96 polegada, portanto, esse valor é o número se pixels por polegada divididos por 96. |
Comentários
Você cria um método IDWriteBitmapRenderTarget usando o método IDWriteGdiInterop::CreateBitmapRenderTarget , conforme mostrado no código a seguir.
if (SUCCEEDED(hr))
{
hr = g_pGdiInterop->CreateBitmapRenderTarget(hdc, r.right, r.bottom, &g_pBitmapRenderTarget);
}
IDWriteGdiInterop::CreateBitmapRenderTarget leva um identificador para um DC e a largura e altura desejadas. No exemplo acima, a largura e a altura fornecidas são o tamanho da rect da janela.
Renderização
Uma maneira de usar um IDWriteBitmapRenderTarget, para renderização em um bitmap, é implementar uma interface de renderizador personalizada derivada da interface IDWriteTextRenderer . Na implementação do método DrawGlyphRun do renderizador personalizado, chame o método IDWriteBitmapRenderTarget::D rawGlyphRun para desenhar os glifos, conforme mostrado no código a seguir.STDMETHODIMP GdiTextRenderer::DrawGlyphRun(
__maybenull void* clientDrawingContext,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_MEASURING_MODE measuringMode,
__in DWRITE_GLYPH_RUN const* glyphRun,
__in DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription,
IUnknown* clientDrawingEffect
)
{
HRESULT hr = S_OK;
// Pass on the drawing call to the render target to do the real work.
RECT dirtyRect = {0};
hr = pRenderTarget_->DrawGlyphRun(
baselineOriginX,
baselineOriginY,
measuringMode,
glyphRun,
pRenderingParams_,
RGB(0,200,255),
&dirtyRect
);
return hr;
}
O IDWriteBitmapRenderTarget encapsula e renderiza para um bitmap na memória. A função GetMemoryDC retorna um identificador para o contexto do dispositivo desse bitmap.
Requisitos
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 | dwrite.h |