IDWriteTextAnalyzer::GetGlyphs メソッド
入力テキスト文字列を解析し、フォントおよび書記体系のレンダリング規則に従って、一連のグリフおよび関連するグリフ データにマップします。
構文
virtual HRESULT GetGlyphs(
[in] const WCHAR * textString,
UINT32 textLength,
IDWriteFontFace * fontFace,
BOOL isSideways,
BOOL isRightToLeft,
[in] const DWRITE_SCRIPT_ANALYSIS * scriptAnalysis,
[in, optional] const WCHAR * localeName,
[optional] IDWriteNumberSubstitution *numberSubstitution,
[in, optional] const DWRITE_TYPOGRAPHIC_FEATURES ** features,
[in, optional] const UINT32 * featureRangeLengths,
UINT32 featureRanges,
UINT32 maxGlyphCount,
[out] UINT16 * clusterMap,
[out] DWRITE_SHAPING_TEXT_PROPERTIES * textProps,
[out] UINT16 * glyphIndices,
[out] DWRITE_SHAPING_GLYPH_PROPERTIES * glyphProps,
[out] UINT32 * actualGlyphCount
) = 0;
パラメーター
textString [in]
グリフに変換される文字配列。textLength
textString の長さ。fontFace
出力グリフのソースであるフォント フェイス。isSideways
テキストを垂直方向に描画する場合に true に設定されるブール値のフラグ。isRightToLeft
テキストを右から左に記述する場合に TRUE に設定されるブール値のフラグ。scriptAnalysis [in]
AnalyzeScript の呼び出しによるスクリプト分析結果へのポインター。localeName [in, optional]
グリフの選択時に使用するロケール。たとえば、ja-jp と zh-chs では、同じ文字が異なるグリフにマップされます。この値が NULL の場合、スクリプトに基づいた既定のマッピングが使用されます。numberSubstitution [optional]
オプションの数字の置換へのポインター。数字の置換では、AnalyzeNumberSubstitution から取得された結果に応じて、数字と関連した数字に適したグリフを選択します。NULL を渡すと、置換は不要であり、数字は通常のグリフを受け取ることを示します。features [in, optional]
各機能範囲で使用する文字体裁機能のセットへのポインターの配列。featureRangeLengths [in, optional]
各機能範囲の長さ (文字数)。すべての長さの合計は、textLength と等しくなる必要があります。featureRanges
機能範囲の数。maxGlyphCount
返すことができるグリフの最大数。clusterMap [out]
このメソッドが返されるときに、文字の範囲からグリフの範囲へのマッピングが格納されます。textProps [out]
このメソッドが返されるときに、各文字の体裁プロパティを含む構造体の配列へのポインターが格納されます。glyphIndices [out]
出力グリフ インデックス。glyphProps [out]
このメソッドが返されるときに、各出力グリフの体裁プロパティを含む構造体の配列へのポインターが格納されます。actualGlyphCount [out]
このメソッドが返されるときに、呼び出しが成功した場合に返されるグリフの実際の数が格納されます。
戻り値
メソッドが成功した場合は、S_OK が返されます。 それ以外の場合は、エラー コードが返されます。HRESULT.
解説
文字とグリフのマッピングは通常は多対多です。グリフごとの出力バッファーに推奨される概算値は、(3 * textLength / 2 + 16) です。これで十分であるとは限りません。actualGlyphCount パラメーターの値は、呼び出しが成功した場合のみ有効です。maxGlyphCount が十分な大きさではない場合は、HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) が返されます。アプリケーションは、より大きなバッファーを割り当てて再試行する必要があります。
要件
クライアントの最小要件 |
Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム |
サーバーの最小要件 |
Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム |
ヘッダー |
Dwrite.h |
ライブラリ |
Dwrite.lib |
DLL |
Dwrite.dll |