Condividi tramite


Interfaccia IDWriteGlyphRunAnalysis (dwrite.h)

Contiene informazioni di basso livello usate per eseguire il rendering di un glifo.

Ereditarietà

L'interfaccia IDWriteGlyphRunAnalysis eredita dall'interfaccia IUnknown . IDWriteGlyphRunAnalysis include anche questi tipi di membri:

Metodi

L'interfaccia IDWriteGlyphRunAnalysis include questi metodi.

 
IDWriteGlyphRunAnalysis::CreateAlphaTexture

Crea una trama alfa del tipo specificato per i glifi all'interno di un rettangolo di delimitazione specificato.
IDWriteGlyphRunAnalysis::GetAlphaBlendParams

Ottiene le proprietà di fusione alfa necessarie per la fusione ClearType.
IDWriteGlyphRunAnalysis::GetAlphaTextureBounds

Ottiene il rettangolo di delimitazione dei pixel fisici interessati dall'esecuzione del glifo.

Commenti

La trama alfa può essere una trama alfa a due livelli o una trama alfa ClearType.

Una trama alfa a due livelli contiene un byte per pixel, pertanto le dimensioni del buffer per una trama a due livelli saranno l'area dei limiti di trama, in byte. Ogni byte in una trama alfa a due livelli creata da CreateAlphaTexture è impostata su DWRITE_ALPHA_MAX (ovvero 255) o zero.

Una trama alfa ClearType contiene tre byte per pixel, pertanto le dimensioni del buffer per una trama alfa ClearType sono tre volte l'area dei limiti della trama, in byte.

Esempio

Nell'esempio di codice seguente viene illustrato come creare un oggetto di analisi dell'esecuzione del glifo. In questo esempio viene usata un'esecuzione di glifi vuota.

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;
}

Requisiti

   
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione dwrite.h