Compartilhar via


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