Interface IDWriteGlyphRunAnalysis (dwrite.h)

Contém informações de baixo nível usadas para renderizar uma execução de glifo.

Herança

A interface IDWriteGlyphRunAnalysis herda da interface IUnknown . IDWriteGlyphRunAnalysis também tem estes tipos de membros:

Métodos

A interface IDWriteGlyphRunAnalysis tem esses métodos.

 
IDWriteGlyphRunAnalysis::CreateAlphaTexture

Cria uma textura alfa do tipo especificado para glifos em um retângulo delimitador especificado.
IDWriteGlyphRunAnalysis::GetAlphaBlendParams

Obtém as propriedades de mesclagem alfa necessárias para a mesclagem ClearType.
IDWriteGlyphRunAnalysis::GetAlphaTextureBounds

Obtém o retângulo delimitador dos pixels físicos afetados pela execução do glifo.

Comentários

A textura alfa pode ser uma textura alfa de nível bi ou uma textura alfa ClearType.

Uma textura alfa de nível bi contém um byte por pixel, portanto, o tamanho do buffer para uma textura de nível bi será a área dos limites de textura, em bytes. Cada byte em uma textura alfa de nível bi criada por CreateAlphaTexture é definido como DWRITE_ALPHA_MAX (ou seja, 255) ou zero.

Uma textura alfa ClearType contém três bytes por pixel, portanto, o tamanho do buffer para uma textura alfa ClearType é três vezes a área dos limites de textura, em bytes.

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

   
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