次の方法で共有


IDWriteTextAnalyzer::GetGlyphs メソッド (dwrite.h)

入力テキスト文字列を解析し、フォントと書き込みシステムのレンダリング ルールに従って、グリフと関連するグリフ データのセットにマップします。

構文

HRESULT GetGlyphs(
  [in]           WCHAR const                       *textString,
                 UINT32                            textLength,
                 IDWriteFontFace                   *fontFace,
                 BOOL                              isSideways,
                 BOOL                              isRightToLeft,
  [in]           DWRITE_SCRIPT_ANALYSIS const      *scriptAnalysis,
  [in, optional] WCHAR const                       *localeName,
  [optional]     IDWriteNumberSubstitution         *numberSubstitution,
  [in, optional] DWRITE_TYPOGRAPHIC_FEATURES const **features,
  [in, optional] UINT32 const                      *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
);

パラメーター

[in] textString

型: const WCHAR*

グリフに変換する文字の配列。

textLength

型: UINT32

textString の長さ。

fontFace

種類: IDWriteFontFace*

出力グリフのソースであるフォント面。

isSideways

種類: BOOL

テキストを垂直方向に描画する場合は、ブール値フラグを TRUE に設定します。

isRightToLeft

種類: BOOL

右から左へのテキストの場合、ブール型のフラグを TRUE に設定します。

[in] scriptAnalysis

型: const DWRITE_SCRIPT_ANALYSIS*

AnalyzeScript 呼び出しからのスクリプト分析結果へのポインター。

[in, optional] localeName

型: const WCHAR*

グリフを選択するときに使用するロケール。 たとえば、同じ文字が ja-jp と zh-chs の異なるグリフにマップされる場合があります。 これが NULL の場合は、スクリプトに基づく既定のマッピングが使用されます。

[optional] numberSubstitution

型: IDWriteNumberSubstitution*

AnalyzeNumberSubstitution から取得した結果に応じて、数字と関連する数値の適切なグリフを選択するオプションの数値置換へのポインター。 NULL を渡すと、置換は必要なく、数字は名目上のグリフを受け取る必要があることを示します。

[in, optional] features

型: const DWRITE_TYPOGRAPHIC_FEATURES**

各機能範囲で使用する文字体裁機能のセットへのポインターの配列。

[in, optional] featureRangeLengths

型: const UINT32*

各特徴範囲の長さ (文字数)。
すべての長さの合計は textLength と等しい必要があります。

featureRanges

型: UINT32

特徴範囲の数。

maxGlyphCount

型: UINT32

返すことができるグリフの最大数。

[out] clusterMap

型: UINT16*

このメソッドが戻るときに、 には文字範囲からグリフ範囲へのマッピングが含まれます。

[out] textProps

種類: DWRITE_SHAPING_TEXT_PROPERTIES*

このメソッドが戻るときに、 には、各文字の整形プロパティを含む構造体の配列へのポインターが含まれます。

[out] glyphIndices

型: UINT16*

出力グリフのインデックス。

[out] glyphProps

種類: DWRITE_SHAPING_GLYPH_PROPERTIES*

このメソッドが戻るときに、 には、各出力グリフの整形プロパティを含む構造体の配列へのポインターが含まれます。

[out] actualGlyphCount

種類: UINT32*

このメソッドから制御が戻るときに、呼び出しが成功した場合に返されるグリフの実際の数が格納されます。

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

解説

文字からグリフへのマッピングは、一般に多対多であることに注意してください。 グリフごとの出力バッファーの推奨される推定値は (3 * textLength / 2 + 16) です。 これで十分であるとは限りません。

actualGlyphCount パラメーターの値は、呼び出しが成功した場合にのみ有効です。 maxGlyphCount が十分な大きさでない場合は、HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) が返されます。 アプリケーションは、より大きなバッファーを割り当ててからもう一度試す必要があります。

要件

   
サポートされている最小のクライアント Windows 7、Windows Vista SP2 と Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー dwrite.h
Library Dwrite.lib
[DLL] Dwrite.dll

関連項目

IDWriteTextAnalyzer