2012-04-08 16 views
0

DirectXで2DデスクトップGUIアプリケーションを作成したいのですが、使用するバージョンがわかりません。私は最初にDirect2Dを試しましたが、それは本当に人気を得ていませんでした。したがって、DirectXの残りの部分と比較してコミュニティサポートやドキュメンテーションがたくさんありません。2DデスクトップGUIアプリケーションを作成するために使用するDirectXのバージョンは何ですか?

  1. は、DirectX 9.0c
  2. のDirectX 10
  3. のDirectX 11(いない11.1、私はWindows 8の届かない)

知識豊富な友人:

は、だから私は3つのオプションを持っています私の必要としているすべてのことをDirectX 9.0cが強く奨励しましたが、私は8歳のプラットフォームを使用することには慎重です。 Microsoftは従来のサポートの頂点にはほど遠いですが、私は彼らには限界があると思っています。 DX10とDX11の違いはわかりません。

私は非常に初心者のプログラマーですので、これは主に学習プロジェクトです。

アドバイスありがとうございます。

編集:バージョン間の機能やプログラミングのパラダイムに大きな違いがある場合は、アドバイスをお願いします。

+0

通常のWindows APIではなくDirectXを使用する理由は何ですか? –

答えて

1

2DデスクトップGUIアプリケーションを作成するために使用するDirectXのバージョンは何ですか?

DirectX 9は、より多くのユーザーを獲得できるためです。

私の知り合いの友人は、DirectX 9.0cが必要としていることを強く奨励しましたが、私は8歳のプラットフォームを使用することには慎重です。

多くのDirectX 7およびDirectX 5ゲームは、DirectDrawを使用するタイトルはもちろん、うまく動作します。したがって、8歳のプラットフォームで問題はありません。より新しい(9以上の)バージョンを使用すると、あなたにとって恩恵をもらえないかもしれないので、高いバージョン番号のために盲目的に行くのは良い考えではありません。

状況によっては、OpenGLの使用を検討することもできますが、その選択肢は、アプリがクロスプラットフォームでなければならない場合にのみ意味があります。アプリケーションがWindowsのみであることが分かっている場合、DirectX 9を選択することは意味があります。

1

マイクロソフトの主な関心事は、Windowsをお持ちのお客様です。当時まだ使用されていたDirectXのバージョンを使用する15歳のゲームをまだ実行しているユーザー。 IDirectDrawは生きています。明らかに、開発者としての副次的な利点があります。そして確かに、DX 9はハードウェアによって最も広くサポートされているので、これは優れた選択肢です。ゲームが古いハードウェアでうまく動作しない場合、DXバージョンは自動セレクタです。

+0

ありがとう!ところで、私はゲームをプログラミングするのではなく、むしろデスクトップアプリケーション(比較的シンプルなグラフィックス、ほとんどすべての数学)です。 DXバージョン間で機能に大きな違いがあるかどうか知っていますか?プログラミングコンセプトの変更 – Joshua

+0

それは別の質問です。 [質問する]ボタンをクリックして質問します。 –

+0

元の質問に答えるのに役立つ関連の質問です。私は同じ動機のために新しい質問を作成したくありません。 – Joshua

1

あなたは仕事や楽しいためにこれを書いていますか?

作業の場合、ビジネスまたはマーケティング担当者が定義した最小システム要件を満たしている必要があります。最小のOSがWin7またはVista SP2のプラットフォームアップデートであれば、Direct2Dは実行可能なオプションです。さもなければ、DX9はあなたが行かなければならない方法です。

あなたの個人的な時間に楽しくなるなら、最も楽しいと思うことをしてください:あなたは2Dグラフィックをしたいと思えば、Direct2Dは確かに扱いやすくなります。特に、最近の主要なデスクトップアプリケーション(Firefox、Internet Explorer、さらにはPaint.NETの次のバージョン)でも使用されているため、「人気/コミュニティサポートが得られていない」ということについては心配しません。また、Win8はDirect2Dを面白い新機能で更新します(また、このアップデートは私が理解しているところからWin7でも利用可能になります)。

Direct2Dは最初はうまくいきませんが、それは主にすべてのCOMのものが原因です。一度あなたはそれに慣れて、あなた自身の小さなユーティリティwarchestを構築し、それは本当にGDI +よりも複雑ではありません。実際には、私は古いGDI +コードの束をDirect2D/DirectWriteに移植することができました。そして、しばしばそれは単なる行単位の置換です。 SolidBrush - > SolidColorBrush(これはPaint.NET 4.0コードベース、btwにあります)。

+0

"自分の小さなユーティリティウォーチックを構築する"このケースでは、ウォーチェストに付属のフレームワークを使用する方がより合理的になります。 – SigTerm

+0

私の場合は、最初にレンダリングターゲットを作成せずに、必要に応じて「実際の」ID2D1SolidColorBrushを作成する内部ビットを必要とせずに、SolidColorBrushのようなものを作成できるようにする必要があります。 D2Dを使用したいすべての場所でリソースを再作成したり、配管することを心配する必要がないので、これは素晴らしいことです。だから、実際には私の "フレームワーク"はD2D、DWriteなどのための私自身の.NET interopレイヤーなので、あなたは正しいと思います:) –

+0

これは楽しいです。ところで、私はDirect2Dを試しました...私は、画面上にビットマップをレンダリングしようとするとトラブルが発生しました。 Windows Imaging Componentを使いこなす必要があります。それでも、レンダリングしようとしているビットマップリソースのデータを理解できませんでした。 Direct3Dには、 'CreateTextureFromResource'という関数があります。完璧に動作します。より普及し、文書化されたDirect3Dを使用すると、Direct2Dが問題にならないと判断しました。お返事をありがとうございます! – Joshua

1

私は関数のグラフをレンダリングするためにDirect 2Dを使いました。使い方はとても簡単です.GDI +と同じように簡単です。私は、DirectX 11とDirectX 9(2Dグラフィックスの点で)の複雑さのレベルはかなり似ていると思いますので、心配しないでください。

DirectX 9.0はすべての最新のコンピュータ上で実行され、11はWindows Vista(プラットフォームパック)およびWindows 7に制限されます。ただし、Windows XPは最終的には消滅し、DirectXは進化します。私は確信していません、それはあなたの時間を技術に投資する価値があります、それはもはや開発されません。 DirectX 11のDirect2Dをお勧めします。

関連する問題