問題タブ [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.
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 に似ています。)
ハードコードされたアルゴリズム/置換スキームが実際に何であるかをまだ正確に説明していません。
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.
delphi - テキストの周りの Direct2D ボーダー
見栄えを良くするために、テキストの周りに黒い境界線を描きたいと思います。
現在、同じテキストを5回描画しています。
x = 5、y = 10 にテキストを描画したい場合、実際の位置にテキストを 1 回描画します。
次に、同じテキストを黒色で少し異なる位置に描画します。
- x = 4、y = 10
x = 5、y = 9
...
これはパフォーマンスが悪いとしか思えません。それともこれが正しい方法ですか?
c++ - IDWriteFactory::CreateTextFormat() の失敗
私は自分自身を殺している問題に直面しています。次のコードがあります。
最後の行 textFormat の後、null を指します。CreateTextFormat() は値 E_INVALIDARG を返します。MSDN によれば、2 つの nullptr パラメータが許可されているため、何が無効なのかわかりません。誰でもこれに光を当てることができますか?
c# - SharpDX DirectWrite 回転テキスト
Direct2DでレンダリングしたテキストをSharpDXで回転させる方法を考えてみました。
で可能性を見つけることができません
RenderTarget2D.DrawText()
また
RenderTarget2D.DrawTextLayout()
c++ - Direct2D: テキストをパスに変換する
私は Direct2D と DirectWrite に非常に慣れていないので、これらの API が提供する可能性をまだ調べています。潜在的なグラフィック アプリケーションについて、ベクトル グラフィック エディタのように個々のポイントを変更できるように、テキストをパスとしてレンダリングできるかどうか疑問に思っていました。Direct2D と DirectWrite で直接そのようなことを行うことは可能ですか、または少なくとも必要な情報を取得して、テキストに似たパス オブジェクトを手動で構築する方法はありますか?
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) にも付属していることがわかりました。私の質問には答えませんが、アプリを正しく実行するためにそれを要求することができます。これは私の問題を解決します。