Método IDWriteFactory::CreateGlyphRunAnalysis (dwrite.h)

Cria um objeto de análise de execução de glifo, que encapsula as informações usadas para renderizar uma execução de glifo.

Sintaxe

HRESULT CreateGlyphRunAnalysis(
  [in]           DWRITE_GLYPH_RUN const  *glyphRun,
                 FLOAT                   pixelsPerDip,
  [in, optional] DWRITE_MATRIX const     *transform,
                 DWRITE_RENDERING_MODE   renderingMode,
                 DWRITE_MEASURING_MODE   measuringMode,
                 FLOAT                   baselineOriginX,
                 FLOAT                   baselineOriginY,
  [out]          IDWriteGlyphRunAnalysis **glyphRunAnalysis
);

Parâmetros

[in] glyphRun

Tipo: const DWRITE_GLYPH_RUN*

Uma estrutura que contém as propriedades da execução do glifo (face da fonte, avanços e assim por diante).

pixelsPerDip

Tipo: FLOAT

Número de pixels físicos por DIP (pixel independente do dispositivo). Por exemplo, se for renderizado em um bitmap de 96 DPI, pixelsPerDip será 1. Se a renderização for em um bitmap de 120 DPI, pixelsPerDip será 1,25.

[in, optional] transform

Tipo: const DWRITE_MATRIX*

Transformação opcional aplicada aos glifos e suas posições. Essa transformação é aplicada depois que o dimensionamento especifica o emSize e pixelsPerDip.

renderingMode

Tipo: DWRITE_RENDERING_MODE

Um valor que especifica o modo de renderização, que deve ser um dos modos de renderização de varredura (ou seja, não padrão e não estrutura de tópicos).

measuringMode

Tipo: DWRITE_MEASURING_MODE

Especifica o modo de medição a ser usado com glifos.

baselineOriginX

Tipo: FLOAT

A posição horizontal (coordenada X) da origem da linha de base, em DIPs.

baselineOriginY

Tipo: FLOAT

Posição vertical (coordenada Y) da origem da linha de base, em DIPs.

[out] glyphRunAnalysis

Tipo: IDWriteGlyphRunAnalysis**

Quando esse método retorna, contém um endereço de um ponteiro para o objeto de análise de execução de glifo recém-criado.

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

O objeto de análise de execução de glifo contém os resultados da análise da execução do glifo, incluindo as posições de todos os glifos e referências a todos os glifos rasterizados no cache de fontes.

Exemplos

O exemplo de código a seguir mostra como criar um objeto de análise de execução de glifo. Neste exemplo, uma execução de glifo vazia está sendo usada.

HRESULT CreateGlyphRunAnalysis(IDWriteFontFace *pFontFace, IDWriteGlyphRunAnalysis **ppGlyphRunAnalysis)
{
    HRESULT hr = S_OK;
    IDWriteFactory* pDWriteFactory = NULL;

    // Create the DirectWrite factory.
    hr = DWriteCreateFactory(
            DWRITE_FACTORY_TYPE_SHARED,
            __uuidof(IDWriteFactory),
            reinterpret_cast<IUnknown**>(&pDWriteFactory)
            );

    DWRITE_GLYPH_RUN emptyGlyphRun = { 0 };
    UINT16 glyphIndex = 0;
    
    emptyGlyphRun.fontFace = pFontFace;
    emptyGlyphRun.glyphIndices = &glyphIndex;
    emptyGlyphRun.glyphCount = 0;
   
    emptyGlyphRun.fontEmSize = 12;

    IDWriteGlyphRunAnalysis* pGlyphRunAnalysis = NULL;

    if (SUCCEEDED(hr))
    {
        hr = pDWriteFactory->CreateGlyphRunAnalysis(
            &emptyGlyphRun,
            1.0f, // pixelsPerDip,
            NULL, // transform,
            DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
            DWRITE_MEASURING_MODE_GDI_CLASSIC,
            0.0f, // baselineOriginX,
            0.0f, // baselineOriginY,
            &pGlyphRunAnalysis);
    }
    
    *ppGlyphRunAnalysis = pGlyphRunAnalysis;

    SafeRelease(&pDWriteFactory);

    return S_OK;
}

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 Platform Update para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho dwrite.h
Biblioteca Dwrite.lib
DLL Dwrite.dll

Confira também

IDWriteFactory