問題タブ [directwrite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2020 参照

fonts - DirectWrite (CreateTextFormat) はどのようにフォールバック フォントを選択しますか?

CreateTextFormatのドキュメントには、フォント フォールバックの選択については何も記載されていませんが、デフォルト (NULL = システム) コレクションが選択されている場合、DirectWrite はフォント フォールバックを明確に実装します。たとえば、Gabriola フォントにない 2 つのグリフを DirectWrite SDK デモ アプリで使用するテスト文字列に追加すると、DirectWrite は Segoe UI シンボル フォントから不足しているグリフを選択します。これは、以下に示すように、基本的なDrawText呼び出しとカスタム レンダラー (フォント フォールバックのカスタムは何も行わない) で発生します (唯一の変更はテスト文字列です)。

ここに画像の説明を入力

デモ アプリでは Gabriola のみが指定されていますが、チェックマークと星形は Gabriola ではなく Segoe UI Symbol から取得されています。では、フォールバック フォントが DirectWrite (CreateTextFormat) によってどのように選択されているかを知っている人はいますか?

更新しますフォールバック フォントを一覧表示できるGetSystemFontFallbackがあるようですが、Windows 8.1 でのみ使用できます (IDWriteFactory2 にあるため)。フォールバック フォントの列挙に関する API のギャップに気付いたようです。したがって、Windows 8.1 より前にこれを行う方法はないと思いますが、誰かがハック/回避策を知っていれば...

Update2 . MSFTの従業員の引用:

DirectWrite には、レジストリから読み取られない、または構成可能な方法ではないフォールバック データがあります。ただし、Windows 8.1 では、アプリが独自のフォールバックを指定できるようにする API が導入されました。(これは、複合フォント定義を作成するための WPF API に似ています。)

ハードコードされたアルゴリズム/置換スキームが実際に何であるかをまだ正確に説明していません。

0 投票する
1 に答える
310 参照

c++ - Use of TABs in DirectWrite

I am just working my way through DirectWrite in C++ which appears to be solving my demands for having equal layouts in different render targets (screen and printer).

I have closely inspected the HelloWorld sample (http://msdn.microsoft.com/en-us/library/windows/desktop/dd368048%28v=vs.85%29.aspx) and already learned a lot from that.

The HelloWorld example was even topped (my opinion) by an article from Charles Petzold which was throwing much more light on advanced features of DirectWrite: "Character Formatting Extensions with DirectWrite" (http://www.charlespetzold.com/blog/2014/01/Character-Formatting-Extensions-with-DirectWrite.html).

But there is still one subject missing in all the documentation and examples I found so far: The documentation about use of TABstops in DirectWrite. All I found so far is a (very) short documentation about setting of "incremental tabs" which does not even mention how the text in each individual tab can be aligned.

Does anybody know about a more in-depth description about TABs in DirectWrite? Thanks in advance.

0 投票する
2 に答える
1175 参照

delphi - テキストの周りの Direct2D ボーダー

見栄えを良くするために、テキストの周りに黒い境界線を描きたいと思います。

例の写真

現在、同じテキストを5回描画しています。

x = 5、y = 10 にテキストを描画したい場合、実際の位置にテキストを 1 回描画します。

次に、同じテキストを黒色で少し異なる位置に描画します。

  1. x = 4、y = 10
  2. x = 5、y = 9

    ...

これはパフォーマンスが悪いとしか思えません。それともこれが正しい方法ですか?

0 投票する
1 に答える
1204 参照

c++ - IDWriteFactory::CreateTextFormat() の失敗

私は自分自身を殺している問題に直面しています。次のコードがあります。

最後の行 textFormat の後、null を指します。CreateTextFormat() は値 E_INVALIDARG を返します。MSDN によれば、2 つの nullptr パラメータが許可されているため、何が無効なのかわかりません。誰でもこれに光を当てることができますか?

0 投票する
1 に答える
1504 参照

c# - SharpDX DirectWrite 回転テキスト

Direct2DでレンダリングしたテキストをSharpDXで回転させる方法を考えてみました。

で可能性を見つけることができません

RenderTarget2D.DrawText()

また

RenderTarget2D.DrawTextLayout()

0 投票する
1 に答える
1491 参照

c++ - Direct2D: テキストをパスに変換する

私は Direct2D と DirectWrite に非常に慣れていないので、これらの API が提供する可能性をまだ調べています。潜在的なグラフィック アプリケーションについて、ベクトル グラフィック エディタのように個々のポイントを変更できるように、テキストをパスとしてレンダリングできるかどうか疑問に思っていました。Direct2D と DirectWrite で直接そのようなことを行うことは可能ですか、または少なくとも必要な情報を取得して、テキストに似たパス オブジェクトを手動で構築する方法はありますか?

0 投票する
1 に答える
689 参照

c++ - DirectWrite: Windows 7 での文字間隔

DirectWrite を使用するために、GDI および GDI+ を使用している既存の C++ コードのテキストからビットマップへのレンダリング ルーチンを変換する必要があります (CFF サポートと OTF 機能のサポートが必要です)。

DirectWrite は初めてです。既存の機能の移行に必要なものについての調査に時間を費やし、いくつかのプロトタイプを作成したところ、問題が発生しました。私の問題は、DirectWrite (すぐに使用できる) が文字間隔の調整をサポートしていないことです (これは、既存の機能の要件です)。アプリ)、少なくとも Windows 7 ではありません。Windows 8 に付属していることは知っていますが、残念ながら、この既存のアプリの別の要件は Windows 7 で実行することです。

これまでの調査でわかったことは、カスタム DirectWrite テキスト レイアウトを実装する方法のように見えるということですが、特に文字間隔に関して、これを行う方法に関する適切なガイドラインは見つかりませんでした (ドキュメント/例カスタム テキスト レイアウトの作成方法に関する MSDN は、私の好みでは少しあいまいです)。

ホイールの再発明に数日または数週間の研究開発を費やす前に、これは以前に行われたに違いないと思うので、最初に使用できるカスタム文字間隔を使用した DirectWrite テキストレイアウトのサンプル実装を知っている人はいますか?ポイントまたはチュートリアル?

UPDATE1 : 答えではありませんが、IDWriteTextLayout1 インターフェイス (文字スペースの設定をサポートする) は、Windows 8 だけでなく、Windows 7 の「Windows 7 Platform Update for SP1」(KB 2670838) にも付属していることがわかりました。私の質問には答えませんが、アプリを正しく実行するためにそれを要求することができます。これは私の問題を解決します。