ScriptPositionSingleGlyph 関数 (usp10.h)
OpenType 処理用のフォントで指定された機能を使用して、1 つの調整で 1 つのグリフを配置します。 ほとんどの場合、アプリケーションでは、この関数を使用して、行の先頭または末尾にグリフを光学式で配置します。
構文
HRESULT ScriptPositionSingleGlyph(
[in, optional] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in, optional] SCRIPT_ANALYSIS *psa,
[in] OPENTYPE_TAG tagScript,
[in] OPENTYPE_TAG tagLangSys,
[in] OPENTYPE_TAG tagFeature,
[in] LONG lParameter,
[in] WORD wGlyphId,
[in] int iAdvance,
[in] GOFFSET GOffset,
[out] int *piOutAdvance,
[out] GOFFSET *pOutGoffset
);
パラメーター
[in, optional] hdc
デバイス コンテキストを処理します。 詳細については、「 キャッシュ」を参照してください。
[in, out] psc
スクリプト キャッシュを識別する SCRIPT_CACHE 構造体へのポインター。
[in, optional] psa
ScriptItemizeOpenType の以前の呼び出しから取得したSCRIPT_ANALYSIS構造体へのポインター。 この構造体は、事前の幅を取得できるように、シェーピング エンジンを識別します。
または、アプリケーションでこのパラメーターを NULL に設定して、フィルター処理されていない結果を取得することもできます。
[in] tagScript
シェイプ用のスクリプト タグを定義する OPENTYPE_TAG 構造体。
[in] tagLangSys
シェイプ用の言語タグを定義する OPENTYPE_TAG 構造体。
[in] tagFeature
代替グリフの整形に使用する特徴タグを定義する OPENTYPE_TAG 構造体。
[in] lParameter
wGlyphId で指定された識別子に単一の置換を適用するかどうかを指定するフラグ。 アプリケーションは、このパラメーターを 1 に設定して、識別子に単一の置換機能を適用します。 関数が機能を適用しない場合、アプリケーションは パラメーターを 0 に設定します。
[in] wGlyphId
整形されている元のグリフの識別子。
[in] iAdvance
元のグリフの前の幅。
[in] GOffset
元のグリフオフセット。 通常、この値は ScriptPlaceOpenType または ScriptPlace の出力です。
[out] piOutAdvance
この関数が代替グリフ用に調整された新しい事前幅を取得する場所へのポインター。
[out] pOutGoffset
この関数が代替グリフ用に調整された新しいグリフ オフセットを取得する場所へのポインター。
戻り値
処理が正常に終了した場合は 0 を返します。 関数が成功しない場合は、0 以外の HRESULT 値を返します。 アプリケーションは、 SUCCEEDED マクロと FAILED マクロを使用して戻り値をテストできます。
注釈
この関数は、特定のグリフの事前の幅やオフセットを調整することによって、個々のグリフを配置します。 関数は、フォントに必要な調整が 1 つだけであることを前提としています。
この関数の一般的な用途は、特定の文字によって行われた視覚的な印象を考慮する余白のわずかな調整です。 たとえば、ラテン語のスクリプトでは、行の先頭で、グリフの左側に垂直線がない初期大文字 ("T" や "O" など) を左に少し調整するのが一般的です。 これを行うと厳密な線形マージンが壊れますが、目は余白をより均等に認識します。
次の例は、この効果を示しています。 最初の例は厳密な配置を示しています。次の 2 つの例では、左側の最初の "T" の調整を示します。 調整は、それぞれ 1 ピクセルと 2 ピクセルずつです。 右側の拡大画像は、連続する各ケースで "T" が左余白に少し遠くに押し込む様子を示しています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | usp10.h |
Library | Usp10.lib |
[DLL] | Usp10.dll |
再頒布可能パッケージ | Windows XP Usp10.dll バージョン 1.600 以降 |