Поделиться через


Интерфейс IDWriteGlyphRunAnalysis (dwrite.h)

Содержит низкоуровневую информацию, используемую для отрисовки выполнения глифа.

Наследование

Интерфейс IDWriteGlyphRunAnalysis наследуется от интерфейса IUnknown . IDWriteGlyphRunAnalysis также имеет следующие типы элементов:

Методы

Интерфейс IDWriteGlyphRunAnalysis содержит следующие методы.

 
IDWriteGlyphRunAnalysis::CreateAlphaTexture

Создает альфа-текстуру указанного типа для глифов в заданном ограничивающем прямоугольнике.
IDWriteGlyphRunAnalysis::GetAlphaBlendParams

Возвращает свойства альфа-наложения, необходимые для смешивания ClearType.
IDWriteGlyphRunAnalysis::GetAlphaTextureBounds

Возвращает ограничивающий прямоугольник физических пикселей, затронутых выполнением глифа.

Комментарии

Альфа-текстура может быть двухуровневой альфа-текстурой или альфа-текстурой ClearType.

Двухуровневая альфа-текстура содержит один байт на пиксель, поэтому размер буфера для двухуровневой текстуры будет составлять область границ текстуры в байтах. Каждый байт в двухуровневой альфа-текстуре, созданной CreateAlphaTexture , имеет значение DWRITE_ALPHA_MAX (то есть 255) или ноль.

Альфа-текстура ClearType содержит три байта на пиксель, поэтому размер буфера для альфа-текстуры ClearType в три раза больше площади границ текстуры в байтах.

Примеры

В следующем примере кода показано, как создать объект анализа запуска глифа. В этом примере используется пустой запуск глифа.

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

Требования

   
Минимальная версия клиента Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header dwrite.h