質問者
マネージドダイレクトXについての質問です。

質問
-
マネージドダイレクトxの質問は、恐らく、ここでしても良いものだと思って、書かせて頂きます。
サーフェスのクリッパーについての質問です。
そもそも、クリッパーと言うのは、プライマリサーフェス、つまり、ウインドウズに表示される、フォームのコントロールを参照に設定するサーフェスにだけしか設定できないものなのでしょうか?
自分としては、セカンダリサーフェス、別の言い方で言えば、バックサーフェスなどにも、クリッパーを自在に設定できるのでは?と期待してたのですが、色々弄っても、どうやら無理なようです。そもそも、ダイレクトxでは普通は、プライマリサーフェスでしか、クリッパーは機能しないのが当たり前だと言う意見も聞きました。本当にそうなのでしょうか?
もし、ご存知の方がいらしましたら教えてください。本当にそうなら、まあ、そう言うものだと思って諦めます。
後、もう一つ質問があるのですが、自分のマシンに入っているマネージドダイレクトxのバージョンが何番かを確認する方法は何か無いでしょうか?
自分のマシンでコンパイルして生成されてパッケージ化されるときのマネージドダイレクトxのdllバージョン番号は、5.3.0.900なのですが、このdllの番号は、マネージドダイレクトxの1.0か1.1か、それとも何番になるのでしょうか?
自分は2.0は入れてないはずですが、もし、2.0だとしたら更に問題になるはずですよね。何しろ、2.0以降はもはや使用禁止になったわけですからね。
この辺の事について、詳しい方がいらしましたら、お教え下さい。
お願いします。
すべての返信
-
ブル さんからの引用 サーフェスのクリッパーについての質問です。
そもそも、クリッパーと言うのは、プライマリサーフェス、つまり、ウインドウズに表示される、フォームのコントロールを参照に設定するサーフェスにだけしか設定できないものなのでしょうか?
自分としては、セカンダリサーフェス、別の言い方で言えば、バックサーフェスなどにも、クリッパーを自在に設定できるのでは?と期待してたのですが、色々弄っても、どうやら無理なようです。そもそも、ダイレクトxでは普通は、プライマリサーフェスでしか、クリッパーは機能しないのが当たり前だと言う意見も聞きました。本当にそうなのでしょうか?
もし、ご存知の方がいらしましたら教えてください。本当にそうなら、まあ、そう言うものだと思って諦めます。
IDirectDrawClipper によるクリップですが,今すぐ試す環境がないのでドキュメントを見る限り,特に Primary Surface に限るということはないようです.ネイティブの DirectDraw では,Win32 のウィンドウリージョンによる切り抜きか,GDI のリージョンによる切り抜きが可能なようです.
まあ私も Primary Surface への転送時にクライアントエリアを切り抜く以外に使ったことはないですが.ブル さんからの引用 自分のマシンでコンパイルして生成されてパッケージ化されるときのマネージドダイレクトxのdllバージョン番号は、5.3.0.900なのですが、このdllの番号は、マネージドダイレクトxの1.0か1.1か、それとも何番になるのでしょうか?
Managed DirectX (以下MDX) のバージョンですが,要求する CLR のバージョンで区別するなら,ランタイムバージョンが v1.0.3705 のものが CLR 1.0 向けに作られた MDX で,ランタイムバージョンが v1.1.4322 のものが CLR 1.1 向けに作られた MDX です.
参照の追加ダイアログや,参照しているアセンブリを選択してのプロパティウィンドウなどで確認できるはずです.ブル さんからの引用 この辺の事について、詳しい方がいらしましたら、お教え下さい。
お願いします。
禁止というか,結局ベータ版しか出回らず,そのベータ版も使用期限が切れているので起動しても実行できないはずです.
今実行できているのなら,CLR 2.0 用の MDX ということはないでしょう. -
ありがとうございます。
自分のマシンの環境について見てみたところ、1.0.900.0のバージョン番号でした。
どうやら、1.0と1.1の間と言う事になるようですが、これは一体どういうことでしょうか?
やはり、mdxは1.1が最終バージョンなのですから、最終バージョンのmdxをインストールした方が良いのでしょうか?
ついでに、クリッパーがきちんと機能しないのも、最終バージョンではないからなのではないでしょうか?
だとしたら、最終バージョンはどこで、入手したらよろしいのでしょうか?
2.0のバージョンに関しては解りました。確かに2.0では無いと安心できます、
質問ばかりですみません。
-
ブル さんからの引用 ありがとうございます。
自分のマシンの環境について見てみたところ、1.0.900.0のバージョン番号でした。
どうやら、1.0と1.1の間と言う事になるようですが、これは一体どういうことでしょうか?
単に見るところが違うだけだと思います。
Visual C# 2005 なら、ソリューションエクスプローラの参照設定から「Microsoft.DirectX.DirectDraw」を選択し、F4 を押すとプロパティウィンドウが開くはずです。
そこで「バージョン」と書かれているところではなくて「ランタイムバージョン」と書かれているところを見てください。ブル さんからの引用 アセンブリバージョン 1.0.900.0 のものは、CLR 1.0 用のはずでちょっと古すぎかなと思いますが、もし Visual C# 2002 をお使いでしたら、そのバージョンしか使えませんのでそれを使ってくださいということになります。
そうでなければ、最終バージョンのものを使った方がベターかと思いますが。ブル さんからの引用 ついでに、クリッパーがきちんと機能しないのも、最終バージョンではないからなのではないでしょうか?
それはなんとも言えません。そもそも、何をやろうとしていてどのようになることを「きちんと機能しない」といわれているのか分かりませんし。
まあ経験上、ライブラリのバグを疑ってみても自分のミスということは非常に多いですけどね。ブル さんからの引用 最新の DirectX SDK に含まれています。
ちなみに MDX 1.1 ですが、頻繁にアップデートされていたのは Microsoft.DirectX.Direct3DX.dll のみで、Dicrosoft.DirectX.dll や Microsoft.DirectX.DirectDraw.dll は MDX 1.1 の初回リリースからずっと同じだったような気がします。
なので、もし MDX 1.1 のどれかのバージョンで、「クリッパーがきちんと機能しな」ければ、多分別のバージョンでも同じだと思いますよ。