問題タブ [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.
directwrite - DirectWrite で混合色のテキストをレンダリングするにはどうすればよいですか?
混合色のテキストの書式設定 (正確には構文の強調表示) に DirectWrite を使用したいのですが、レイアウト オプションまたはタイポグラフィ オプションのいずれかで、それを行う方法が見つからないようです。唯一のオプションは、テキストをレンダリングするときにブラシを渡すことですが、基本的にレイアウトが 1 つしかないため、これはうまくいきません。ヘルプ!
c++ - SetLineSpacing() が DirectWrite で機能しない - なぜですか?
Direct2D/DirectWrite でテキストをレンダリングしていますがSetLineSpacing()
、TextFormat または TextLayout を呼び出しても効果がないようです。誰かが理由を知っていますか?
c# - Direct2DとDirectWriteが従来のCOMオブジェクトを使用しないのはなぜですか?
私はC#の小さな2Dゲームエンジンをいじっていて、レンダリングにDirect2DとDirectWriteを使用することにしました。Windows APIコードパックとSlimDXがあることは知っていますが、インターフェイスを最初から掘り下げて記述したいと思います。Managed C ++なしで実行しようとしていますが、Direct2DとDirectWriteは従来のCOMオブジェクトを使用していないようです。それらはから派生するインターフェイスを定義しますがIUnknown
、COM相互運用機能を使用してC#から実際にそれらを使用する方法はないようです。にはIIDがありますd2d1.h
が、CLSIDはありません。
もちろん、私はCOM相互運用機能を初めて使用するので、何かが足りないだけかもしれません。誰かがこの状況に光を当てることができますか?
c++ - 未解決の外部シンボル
主な記事には、ヘッダーファイルとソースファイルがあります。これらの2つのファイルをコピーし、いくつかのヘッダーを追加した後:
//安全な解放ファイル
このプロジェクトをコンパイルしようとすると、エラーが発生します。
エラー1エラーLNK2019:関数 "private:long __thiscall SimpleText :: CreateDeviceIndependentResources(void)"(?CreateDeviceIndependentResources @ SimpleText @@ AAEJXZ)で参照される未解決の外部シンボル__imp__DWriteCreateFactory @ 12
理由がわからない。全て?ヘッダーが含まれています。うまくいけば、あなたの何人かはこれを手伝うことができるでしょう。
ありがとうございました。
java - SWT 3.6 から WPF へのポートはありますか?
最近、レンダラーとして WPF (または DirectWrite) を使用するバージョンの SWT を探していました。
私が見つけた WPF に移植された SWT の最後のバージョンは 3.3 でした。
とにかく、SWT 3.6 から WPF へのポートはありますか?
ありがとう
c++ - Win32/Direct2D - 無限スクロール リストボックスをレンダリングする方法
Twitter からの比較的単純な項目のリストを表示する必要がある C++ を使用して Win32 アプリケーションを構築しています。リスト内の各項目には、いくつかのアイコンに沿って作成者とつぶやきのテキストが含まれます。OS X 上の Twitter クライアントのラインに沿ったスムーズなスクロールと加速があればいいのですが (おそらく Core Animation を使用して行われます)。Windows 7 のみをサポートする必要があります。
多くのアイテムを許可するために仮想化された、ある種の所有者描画リストボックスを作成する必要があると想定しています。似たようなことをする例がいくつかありますか?
Direct2D や DirectWrite を使おうと考えているのですが、制御開発には向いていないようです。これらの新しいテクノロジでは、各アイテムのレンダリングを担当するため、ヒット テストを実装する必要があり、リストをスクロールするための物理学も解決する必要があると思います。これを研究し続けるのは正気ですか?所有者が描画した Win32 コントロールの代わりとして Direct2D の例を入手した人はいますか?
css - プラットフォームによってテキストのサイズが異なる
各プラットフォームが異なるサイズでテキストをレンダリングする場合、異なるプラットフォームで正確なサイズを取得するにはどうすればよいですか? この問題は、 Firefox 4の最近のリリースで悪化しました。このバージョンでは、 DirectWriteを使用したテキストのハードウェア レンダリングが有効になります。DirectWrite で書かれたテキストのサイズは、ハードウェア アクセラレーションなしで書かれたテキストよりもはるかに大きくなります。次の例に注意してください。CSS を表示する必要がある場合は、ライブの例を次に示します。
- Windows 7 64 ビット ホーム
- ATI Radeon HD 4670
- ドライバーが更新されていないため、DirectWrite がオフになっています。
- 620×283
- Windows Vista 64 ビット ビジネス
- nVidia GeForce 8800GT
- ドライバーを更新したばかりなので、DirectWrite はオンになっています。
- 620×293
HTML
CSS
DirectWrite がオフのときはナビゲーションがコンテンツとどのように並んでいるかわかりますが、DirectWrite がオンのときはナビゲーションがコンテンツよりも高くなっていますか? 私はいくつかのハッキーな解決策があることを知っています。1 つは、すべて ( font-size, width, height
) を px で指定することです。コンポーネントはモジュール化されないため、これは理想的ではありません。つまり、別のサイズにスケーリングされた別の設定で再利用することはできません。また、IE6 のフォント サイズ オプションも壊れます。もう 1 つの解決策は、JavaScript を使用してナビゲーションの物理的な高さを読み取り、コンテンツを同じ高さにすることです。スタイルを設定するのは CSS の役割であるため、これは理想的ではありません。これに対するCSSソリューションはありますか?
これは多くの例の 1 つにすぎません。もう 1 つの問題は、Ubuntu 9 の Firefox 3 のテキストがはるかに広いため、すべてのリンクがメインのナビゲーションに収まらないことです。で最後のナビゲーションリンクを切り落とすことを余儀なくされましたmax-width: 37em; overflow: hidden
。
wpf - IE9でCleartype(テキストアンチエイリアシング)を無効にする
IE9がフォントスムージング(別名アンチエイリアシング)のOS全体の設定を無視することは十分に文書化されています(例:ここ)。WindowsでフォントスムージングとClearTypeが無効になっている場合でも、IEはアンチエイリアスフォントを表示します。これは、特に小さいフォントサイズでは、一部のユーザーが読むのに苦労します。
IE9ですべてのフォントアンチエイリアシング(ClearTypeまたはその他)を無効にするにはどうすればよいですか?
詳細:
当社は、多くの小さなフォントを使用するWebアプリケーションを構築しています。IE9のリリースに伴い、一部のユーザーは、IE9のデフォルトのアンチエイリアシングにより、小さなフォントがぼやけたりぼやけたりすることに不満を持っています。したがって、IE9をインストールしていて、アンチエイリアシングをオフにしたいユーザーを支援する必要があります。
また、個人的には、アンチエイリアス処理された小さなフォントを読むのに苦労しているので、自分で管理していないサイトでも、自分で使用できるソリューションが欲しいです。
IE8では、[HTMLには常にClearTypeを使用する]のチェックを外してから、OSでClearTypeを無効にすると、IE8はエイリアス化されたすべてのフォントを表示します。しかし、IE9では、このオプションはありません。
問題について調査した後、私が学んだことは次のとおりです。コアの問題は、IEがテキストレンダリングをDirectWriteに依存しており、アンチエイリアシングなしでテキストを描画し、ユーザーのOSを尊重する新しいレンダリングオプションをサポートしていないことです。幅広いデフォルトの選択肢。
さらに悪いことに、OSでClearTypeを無効にすると、IEはDirectWriteのデフォルトの非Cleartypeアンチエイリアシングにフォールバックします。これはClearTypeよりもさらにあいまいです。
c++ - Directwrite: フォントの高さを取得する
私の目的: 特定の高さの IDWriteTextLayout に収まるテキストの行数を計算できるように、IDWriteTextFormat のフォントの高さを取得したいと考えています。
私の問題: 現在、このコードを使用して表示可能な行数を計算しています:
計算は一部のフォントでは正確であるように見えますが、TrueType フォント (例: Courier New、Arial、Times New Roman) では正確ではありません。これらのフォントの場合、表示されるテキストは、レンダー ターゲットの垂直方向の境界線よりもかなり手前で切り取られます。
いくつかのコンテキスト: IDWriteTextLayout を使用してテキストをコントロールのレンダー ターゲットに配置するテキスト スクロール バック バッファー コントロールを作成しています。GetVisLines() の結果を使用して、(行ごとに std::strings にテキストを格納する) 循環バッファーから何行のテキストをレイアウトに取り込み、ウィンドウがスクロールまたはサイズ変更されるたびに再作成するかを決定します。
これは、「ネイティブ」Win32 API C++ を使用して行われています。
silverlight - Silverlight または WPF アプリケーションは、Direct2D または DirectWrite を使用してフォントと UI をレンダリングしますか?
IE9 が UI のレンダリングに GDI の代わりに DirectWrite と Direct2D を使用しているという多くの情報を見つけました。WPF と Silverlight アプリケーションにも同じことが当てはまりますか?