問題タブ [direct2d]

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 に答える
1464 参照

windows - Direct2D に関して利用できるパフォーマンス テストはありますか?

特に描画プリミティブのパフォーマンス (CAD、GIS など) に関心がありますが、GDI/GDI+ との速度比較は非常に興味深いものです。

0 投票する
6 に答える
1080 参照

c++ - SetLineSpacing() が DirectWrite で機能しない - なぜですか?

Direct2D/DirectWrite でテキストをレンダリングしていますがSetLineSpacing()、TextFormat または TextLayout を呼び出しても効果がないようです。誰かが理由を知っていますか?

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

wpf - Windowsでオーバーレイグラフィックを描画するための最良の方法は何ですか?

さまざまなカスタムウィンドウタイプを作成する必要があるWin32アプリケーションを使用しています。特に、これらのウィンドウは、多くの場合、長方形ではないか、影があるか、ほとんどが透明です。

現在、WS_EX_LAYEREDwithを使用しUpdateLayeredWindowて、任意のグラフィックを描画できる透明なウィンドウを作成しています。ただし、階層化されたウィンドウには制限があり、階層化された子ウィンドウを作成することも、階層化されたウィンドウで「通常の」Win32コントロールを適切にホストすることもできません。

私たちのコードベースは数年前のもので、主にWin32とGDIを使用していますが、現在、最新のテクノロジーを検討しています。

WPFでカスタムウィンドウ処理を行うことを検討しましたが、「空域」の問題について読んだ内容が気になります。WPFは、レイヤードウィンドウを使用してピクセルごとのアルファブレンディングを実現しているようです。そのため、以前に経験した制限にも悩まされているようです。

Direct2Dについては(実際には何も)よくわかりませんが、そのテクノロジーは興味深いかもしれません。ただし、オーバーレイウィンドウを実行できることへの参照は見つかりません。

だから、これはすべて私の問題に私をもたらします:Windowsの下でオーバーレイウィンドウを実行するための最良の技術は何ですか?(少なくともVistaとWin7、XPがあればいいのですが)

私はいくつかの、特に優れた技術を無視していますか?任意の提案をいただければ幸いです。

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

windows-xp - XP の GDI への Direct2D フォールバック

Windows コード パックを使用して、.Net アプリケーションに Direct2D を使用したいと考えています。一部のユーザーは XP を使用しているため、GDI+ フォールバックを提供する必要があります。人々は通常、この種のフォールバックをどのように行うのだろうか。

必要なすべてのグラフィックス機能をカスタム汎用ライブラリに抽象化/インターフェース化していますか? もしそうなら、direct2d/GDI 用のオープンソース ライブラリはありますか?

ありがとう、ギル。

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

api - Direct2Dの学習

私はGDIでWindowsコントロールを作成した経験があり、Direct2dについて学び始めるための優れたリソース(API、サンプル、グッドプラクティス)を探しています。

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

c# - Direct2D (C#)、変換行列の使用方法は?

私は C# で Direct2D を使用しています。また、演算子 * を使用して行列 (Matrix3x2F) を乗算する例を MSDN (C++) でいくつか見てきました。しかし、C# では、operator* がオーバーロードされないだけでなく、これを実行できるメソッドがないため、「変換を累積する」ことができません。何か不足していますか?これのためのヘルパーメソッドはありますか? 自分で書いてみたけどダメだった…

0 投票する
3 に答える
10402 参照

c++ - Direct2Dレンダリングターゲットを完全に透明にクリアするにはどうすればよいですか

見えないHWNDに半透明の長方形を描画しようとしています。ただし、ウィンドウをクリアするとウィンドウID2D1HwndRenderTarget::Clear全体が黒くなるので、上に長方形を描くと半黒に見えます。

Clear()を実行せず、描画しない場合、ウィンドウは表示されません。Clear()が原因です。しかし、私がそれを使わないと、絵はかなりひどく台無しになります。

WindowProcで使用しているコードは次のとおりです。

前もって感謝します!

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

c++ - フォーカスされていないときの Direct2D ウィンドウの黒

フォーカスがあるとうまく描画される Direct2D ウィンドウがあります。ただし、フォーカスが別のウィンドウ (同じアプリケーションまたは別のアプリケーション) に移動すると、ウィンドウ全体が黒くなります。問題を の使用に突き止めましたID2D1HwndRenderTarget::Clear。この機能は私のアプリケーションにとって不可欠です。

フォーカスされていない Direct2D ウィンドウを通常どおりに描画する方法はありますか (注:WM_PAINTは通常どおり呼び出され、そのままClearBeginPaintなど、すべてエラーなしで呼び出されます)

前もって感謝します。

0 投票する
3 に答える
4598 参照

winapi - Win32: ハードウェア アクセラレーションを使用する代わりの GDI32.dll はありますか?

GDI32.dllマシンで利用可能なハードウェア アクセラレーションを利用するバージョンを作成した人はいますか? gdiplus.dll?

Windows Vista 以降、GDI はハードウェア アクセラレーションではなくなりました。(GDI+ はハードウェア アクセラレーションではありませんでした)。Microsoft が GDI (および GDI+) をコンピューター上で適切に実行できるように修正しなければ、ネイティブ アプリケーション (C++ MFC、Delphi など) とマネージ WinForms アプリケーションは、永遠に不十分に動作し続けるでしょう。

ビジネス アプリケーションにDirect2Dを使用することはできますが、GDI の存在を前提とした数十年にわたるライブラリ サポート コードを使用して、開発環境がまだコントロールを作成しているという事実を制御することはできません。


アプリケーションの互換性: グラフィカル デバイス インターフェイス (GDI) :

LineTo や Rectangle などの GDI プリミティブは、ビデオ ハードウェアではなくソフトウェアでレンダリングされるようになり、ディスプレイ ドライバーが大幅に簡素化されました。

Windows とビデオ メモリ

XP GDI では、OS の構成方法またはデバイス ドライバーに応じて、さまざまな程度で GPU アクセラレーションが実行されます (詳細については、「フックとパント」を参照してください)。Vista では、GDI は GPU アクセラレーションではありません

Direct2D と GDI の比較

その結果、Windows Vista では、GDI DDI ディスプレイ ドライバーは、Microsoft 提供のドライバーである Canonical Display Driver (CDD) によってのみ実装されるように変更されました。システム メモリ ビットマップにレンダリングされた GDI。ダーティ リージョンは、ウィンドウ マネージャがデスクトップを合成するために使用するビデオ メモリ テクスチャを更新するために使用されました。

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

c# - Direct2D に別のレンダリング ターゲットを提供するにはどうすればよいですか?

C# で Direct2D を使用して、研究プロジェクト用の小さな GUI フレームワークをレンダリングしています。Windows や DirectX での作業にはあまり慣れていません。Windows フォーム コントロールを使用してレンダー ターゲットを作成していますが、msdn は BindDC を使用しているため、レンダリング ターゲットが大きくなるほどパフォーマンスが低下することを警告しています (最大化すると劇的な違いであることが判明しました)。ウィンドウ、私は約15 fpsを取得します)。

Direct2D のレンダー ターゲットを作成するより良い方法は何でしょうか? 最初にコントロールのバッファにレンダリングしてからレンダリングするのではなく、ウィンドウを作成して直接レンダリングする方法はありますか? もしそうなら、どのように?

私の母国語ではなく、英語が下手でしたら申し訳ありません。