IDWriteTextAnalyzer1::GetJustifiedGlyphs 方法 (dwrite_1.h)
填入複雜字集的新圖像,其中理由會增加字元的前進,例如使用 kashida 的阿拉伯文。
語法
HRESULT GetJustifiedGlyphs(
IDWriteFontFace *fontFace,
FLOAT fontEmSize,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
UINT32 textLength,
UINT32 glyphCount,
UINT32 maxGlyphCount,
[in, optional] UINT16 const *clusterMap,
[in] UINT16 const *glyphIndices,
[in] FLOAT const *glyphAdvances,
[in] FLOAT const *justifiedGlyphAdvances,
[in] DWRITE_GLYPH_OFFSET const *justifiedGlyphOffsets,
[in] DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProperties,
[out] UINT32 *actualGlyphCount,
[out, optional] UINT16 *modifiedClusterMap,
[out] UINT16 *modifiedGlyphIndices,
[out] FLOAT *modifiedGlyphAdvances,
[out] DWRITE_GLYPH_OFFSET *modifiedGlyphOffsets
);
參數
fontFace
類型: IDWriteFontFace*
用於成形的字型臉部。
可能是 NULL。
fontEmSize
類型: FLOAT
用於字元執行的字型 em 大小。
scriptAnalysis
來自專案化程式的文字腳本。
textLength
類型: UINT32
文字的長度。
glyphCount
類型: UINT32
字元數。
maxGlyphCount
類型: UINT32
呼叫端配置的輸出字元數目上限。
[in, optional] clusterMap
類型: const UINT16*
從成形產生的 Clustermap。
[in] glyphIndices
類型: const UINT16*
從成形所產生的原始圖像。
[in] glyphAdvances
類型: const FLOAT*
從成形產生的原始圖像進階。
[in] justifiedGlyphAdvances
類型: const FLOAT*
從 IDWriteTextAnalyzer1::JustifyGlyphAdvances 對齊圖像。
[in] justifiedGlyphOffsets
類型:const DWRITE_GLYPH_OFFSET*
來自 IDWriteTextAnalyzer1::JustifyGlyphAdvances的對齊圖像位移。
[in] glyphProperties
類型:const DWRITE_SHAPING_GLYPH_PROPERTIES*
來自 IDWriteTextAnalyzer::GetGlyphs 的每個圖像屬性。
[out] actualGlyphCount
類型: UINT32*
寫入修改陣列的新字元計數,如果大小不夠大,則為所需的字元計數。
[out, optional] modifiedClusterMap
類型: UINT16*
已更新 clustermap。
[out] modifiedGlyphIndices
類型: UINT16*
已更新字元,並視需要插入新的圖像。
[out] modifiedGlyphAdvances
類型: FLOAT*
更新的字元前進。
[out] modifiedGlyphOffsets
類型: DWRITE_GLYPH_OFFSET*
更新的字元位移。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
您會線上條對齊之後呼叫 GetJustifiedGlyphs ,而且會逐一執行。
如果IDWriteTextAnalyzer1::GetScriptProperties傳回該腳本的非 null DWRITE_SCRIPT_PROPERTIES.justificationCharacter,您應該呼叫GetJustifiedGlyphs。
使用 GetJustifiedGlyphs 主要適用于阿拉伯文之類的 Cursive 腳本。 如果 maxGlyphCount 不夠大, GetJustifiedGlyphs 會傳回錯誤E_NOT_SUFFICIENT_BUFFER,並將 actualGlyphCount 指向所需的字元計數填入變數。
需求
最低支援的用戶端 | 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | 適用于 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | dwrite_1.h |
程式庫 | Dwrite.lib |
Dll | Dwrite.dll |
另請參閱
IDWriteTextAnalyzer1::GetScriptProperties