Метод 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
Значение типа , указывающее режим отрисовки, который должен быть одним из режимов отрисовки растра (то есть не по умолчанию, а не контура).
measuringMode
Задает режим измерения для использования с глифами.
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 |