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


Метод IDWriteFactory::CreateGlyphRunAnalysis (dwrite.h)

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

Синтаксис

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

Параметры

[in] glyphRun

Тип: const DWRITE_GLYPH_RUN*

Структура, содержащая свойства выполнения глифа (лицо шрифта, авансы и т. д.).

pixelsPerDip

Тип: FLOAT

Количество физических пикселей на DIP (аппаратно-независимый пиксель). Например, при отрисовке на точечный рисунок с разрешением 96 DPI значение pixelsPerDip равно 1. При отрисовке на растровом рисунке с разрешением 120 DPI значение pixelsPerDip равно 1,25.

[in, optional] transform

Тип: const DWRITE_MATRIX*

Необязательное преобразование, применяемое к глифам и их позициям. Это преобразование применяется после масштабирования, заданного emSize и pixelsPerDip.

renderingMode

Тип: DWRITE_RENDERING_MODE

Значение типа , указывающее режим отрисовки, который должен быть одним из режимов отрисовки растра (то есть не по умолчанию, а не контура).

measuringMode

Тип: DWRITE_MEASURING_MODE

Задает режим измерения для использования с глифами.

baselineOriginX

Тип: FLOAT

Горизонтальное положение (координата X) базового источника в DIP.

baselineOriginY

Тип: FLOAT

Вертикальная позиция (координата Y) базового источника в dip.

[out] glyphRunAnalysis

Тип: IDWriteGlyphRunAnalysis**

При возврате этого метода содержит адрес указателя на созданный объект анализа выполнения глифа.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Объект анализа выполнения глифа содержит результаты анализа выполнения глифа, включая позиции всех глифов и ссылки на все растровые глифы в кэше шрифтов.

Примеры

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

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
Библиотека Dwrite.lib
DLL Dwrite.dll

См. также раздел

IDWriteFactory