次の方法で共有


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*

グリフとその位置に適用されるオプションの変換。 この変換は、スケーリングで emSizepixelsPerDip が指定された後に適用されます。

renderingMode

種類: DWRITE_RENDERING_MODE

レンダリング モードを指定する値。これはラスター レンダリング モードのいずれかである必要があります (つまり、既定ではなく、アウトラインではありません)。

measuringMode

種類: DWRITE_MEASURING_MODE

グリフで使用する測定モードを指定します。

baselineOriginX

型: FLOAT

基準原点の水平位置 (X 座標) (DIP 単位)。

baselineOriginY

型: FLOAT

基準原点の垂直方向の位置 (Y 座標)。

[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 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

こちらもご覧ください

IDWriteFactory