2009-10-20 8 views
5

WPFアーキテクチャでwikipedia articleを読んだ後、私はWPFが私に提供する利点と少し混同しています。 (ウィキペディアは良い研究参考文献ではありませんが、私はそれが有用であることを発見しました)。私はいくつかの質問がありますWPFアーキテクチャとDirect3Dグラフィックアクセラレータ

1)WPFはd3dサーフェスを使ってレンダリングします。しかし、シーングラフは、CPU上で動作するメディア統合レイヤーによってd3dサーフェスにレンダリングされます。これは本当ですか ?

2)ここでは、ビットマップがネイティブリソースを使用しないという質問をしました。これは、ビデオカードにビットマップをテクスチャとして保存するのではなく、たくさんのイメージを使用するとMILがレンダリング時にそれぞれをコピーすることを意味しますか?

3)この記事では、WPFがペインタのアルゴリズムを使用していることを説明しています。それは痛いほど遅いです。 WPFがZバッファリングと前面レンダリングを省略した理由はありますか?透明性を扱う最も単純な方法なので、私はそれを推測していますが、弱いと思われます。

私が尋ねる理由は、私の同僚がそのダイレクトエクステンションを加速していると言っているにもかかわらず、何百ものボタンを画面に置くことは賢明ではないと思っているからです。私は完全にdirectxがWPFについて少し加速したとは思っていません。私はビデオゲームに取り組んでいましたが、d3dとOpenGLコードを書く私の記憶は私に慎重であると言います。

答えて

3

が質問#1と#3のためには、the Visual classについて説明し、どのようにレンダリングの指示は、より高いレベルのフレームワークとメディア統合レイヤ(MIL)との間でやりとりされているSDKのthis sectionをチェックアウトする場合があります。また、ペインターアルゴリズムが使用される理由についても説明します。

#2の場合は、そうは間違いありません。ビットマップデータはハードウェアに移動され、そこにキャッシュされます。

+0

感謝を再考することをお勧めします。アーキテクチャのリンクは、私の質問のいくつかに答えるのに非常に役立ちました: –

2

私は、スクリーンに1,000個のボタンを表示する2つのプログラムを書きました.1つはWinFormsで、もう1つはWPFで動作しました。

私はそれを10,000個のボタンにプッシュしました。その時点で、WPFアプリケーションは数秒かかりましたが、うまく動作しました.WinFormsアプリケーションは起動しませんでした。

Win32自体(およびWinForms)は、何百ものコントロールを持つアプリケーション用には作成されていません(私はそのようなアプリケーションを書いたと思います)。一方、WPFは動作しなくなり、いくつかの点で少しダウン。

WPFは画面に多くのコントロールを置く必要がある場合は、自分のUIフレームワークをロールしたくない場合や、MS perfチーム全体よりも優れていると思わない限り、WPFが最善の策です。

また、WPFには、豊かなグラフィックス、操作しやすいモデルの描画、アニメーション、3D、私の個人的なお気に入りといった素晴らしいグラフィックスアクセラレーション以外の多くの利点があります。

これにより、より豊かなUIをより速く開発できるようになります。使用するペイントアルゴリズムよりもはるかに大きな違いが生じると思います。あなたは、画面上のボタンの数百人を配置する必要がある場合

ところで、これは悪いユーザーエクスペリエンスである可能性が高いですし、あなたのUIデザイン、

+0

悲しいかな、私のアプリケーションは、オペレーターが快適に感じるためのボタンがたくさんある配電盤のビューを示しています。 UIはうんざりしていますが、そのように好きです。私が取り組んでいる新しいバージョンには、混乱を減らすのに役立たないボタンを浮かべる機能があります。 私は自分自身のフレームワークを公開することはできません、WPFはちょうどいいこと:) –

関連する問題