私はいくつかのフォントが選択されたデバイスコンテキストを持っています。ID2D1RenderTarget
のDrawText
にしたいと思います。DirectWrite GDI interop: `IDWriteFontFace`を使ってテキストを描く簡単な方法
現在、私はこれをacchieveするには、以下のルートを行く:
CreateFontFaceFromHdc
経由IDWriteFontFace
を取得します。IDWriteFontFace
からIDWriteFont
を取得してください(これはGetSystemFontCollection
経由で取得します - 次の手順を参照)。IDWriteFont
で指定されたパラメータを供給し、fontCollection
としてnullptr
を指定し、私は、デフォルトのシステムフォントコレクションを使用したいことを示す、CreateTextFormat
介しIDWriteTextFormat
を取得します。IDWriteTextFormat
をDrawText
に渡します。
私はこのことについて奇妙な見つけることは、私はすでに最初のステップでIDWriteFontFace
持っている、と明らかに「戻って」と、ちょうどDrawTextFormat
にそれを渡すために、IDWriteFont
用フォントの収集を依頼しなければならないことです次にDrawText
に使用することができます。これは不必要に複雑に思えます - 特にテキストを描画するために、おそらくシステムはおそらくIDWriteFontFace
に行かなければならないでしょうか?
DrawGlyphRun
が見つかりました。 baselineOrigin
、これはあらかじめ計算しておく必要があります(glyphRun
はもちろんです)。
すでにIDWriteFontFace
がある場合、ID2D1RenderTarget
にテキストを描画する簡単な方法はありませんか?
実際には、選択したフォントがAddFontMemResourceEx()から来た場合にどうなるかわかりません。この場合、システムコレクションでは利用できません。 – bunglehead