トップページgamedev
1001コメント305KB

鬱だ氏のう DirectX (Part 3)

レス数が1000を超えています。これ以上書き込みはできません。
0001 ◆WMpzjIm. 01/11/07 16:56ID:???
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html  (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/   (Part 2)
0964名前は開発中のものです。02/03/16 14:57ID:iDfRnZYa
>>961
俺も過去そう思ってATLとかCOMとか勉強したけど
あんまり意味なかったような気がする・・。
結局COMってね、まずVBありきなシステムなのよ。
C++プログラマからみれば蛇足とも思えるシステムが
VB利用時の為にCOMとして定義して付け加えられてる。
C++でハイパフォーマンスなゲームってカテゴリには、
COMの出番はまったくないと言っていい。
0965名前は開発中のものです。02/03/16 15:02ID:iDfRnZYa
>>963
DirectShowのサンプル一つで、DirectXの全てだとを語っていいの?
いや、俺はまだ全然未着手なので純粋な質問なのだが。
0966 02/03/16 15:05ID:???
>>964
馬鹿ハケーン
DirectXがVersion上がっても互換性が保たれるのはCOMのおかげだろ
0967名前は開発中のものです。02/03/16 15:26ID:???
>>964
> 結局COMってね、まずVBありきなシステムなのよ。
はつみみです。
0968名前は開発中のものです。02/03/16 16:22ID:e3Kf3/j6
>>966
COMの再利用性ってのは
例えばIDirect3D8インターフェイスから
QueryInterfaceによってIDirect3D7インターフェイスを取得できる。
こういうことを言うのよ。
各バージョン専用のDLLがあって、各バージョン専用のライブラリファイルをリンクしなきゃならないんなら
別にCOMじゃなくても良い気がするけど。
0969名前は開発中のものです。02/03/16 16:41ID:???
>>968
> COMの再利用性ってのは
それが違うと思うが。

インターフェースとデータを分離することで、ライブラリ側の内部構造を変えても
(たとえばメンバ変数を増やしても)外からは変更が見えない点が、拡張性には
重要。

> 別にCOMじゃなくても良い気がするけど。
C++ Only で構わないなら、まぁ、そうだよね。インターフェースの変換も、要は
C++ の dynamic_cast の言語非依存な仕組みだし。

ただ C++ で問題になるのは、バイナリ標準が確立していないこと、なんだよね。
0970名前は開発中のものです。02/03/16 16:44ID:???
つか、DLL = COM じゃないんでしょ?

DLLにしとけば、内部変更できるわけだし
0971名前は開発中のものです。02/03/16 16:51ID:???
>>970
> DLLにしとけば、内部変更できるわけだし
そうでもない。

一番ありがちなのは、C++ でクラスをエクスポートするときに、DLL のバージョンによって
インスタンスのサイズが異なる点。C++ だとプライベート変数を一つ増やしただけでインス
タンスのサイズが変わってしまうので、外部公開インターフェースが同じでも問題になりう
る。(この悪夢は DLL Hell として知られている)

もちろん素の C++ でもブリッジパターンを使って内部実装を隠蔽してしまえば、こういった
問題は避けられるんだが、そのあたりを強制して、名前の修飾規約や例外処理のバイナリ
標準を決めたものが COM。

(それ以外にもモニカやら何やら重要な概念はいくつかあるんだが、DirectX に限って
言えば、あまり関係ないから忘れて良い)
0972  02/03/16 16:55ID:???
なるほど
0973名前は開発中のものです。02/03/16 17:44ID:nuC9fmEM
>>969
>>968の再利用性って言葉は誤っていたとは思うけど
>>968の内容が否定されるのは納得がいかん。
COMってのは、貴方の言うようにCoClassをバージョンアップさせつつも
公開するインターフェイスの定義は変えずに、新たな定義を持ったインターフェイスを追加していく仕様だからこそ
互換性が保たれるんじゃん。
つまりDirectXが上記のような正当なCOMの使い方をしていれば、>>968のような
使い方が可能なはずだよ。

>インターフェースとデータを分離することで、ライブラリ側の内部構造を変えても
>(たとえばメンバ変数を増やしても)外からは変更が見えない点が、拡張性には
>重要。
DirectXでコレが実現出来ているなら、Direct3D5でも
SIMDサポートやHWTLサポートが可能になって良いはず。
0974名前は開発中のものです。02/03/16 17:48ID:nuC9fmEM
まぁ、COMを使っていれば
>>971で言われてるような
DLLのくだらない部分を意識する事が無くなるので
その点は良いかも。
0975名前は開発中のものです。02/03/16 18:13ID:???
>DirectXでコレが実現出来ているなら、Direct3D5でも
>SIMDサポートやHWTLサポートが可能になって良いはず。

意味ないじゃん…
百歩譲っても WHTL前提としないコードをWHTL使って動かしたってトラブルの元にしかならん


0976名前は開発中のものです。02/03/16 18:19ID:???
>>973
> 公開するインターフェイスの定義は変えずに、新たな定義を持ったインターフェイスを
> 追加していく仕様
言いたい事は分からんでもないが、誤解を招きやすい書き方だよなぁ。慌てずに、良く整理
してから書き込んでくれ。
0977名前は開発中のものです。02/03/16 18:50ID:nuC9fmEM
>>975-976
いや、つまんないツッコミはいいから
反論があるならそれを書き込んでくれ、負けず嫌い君達。w
0978名前は開発中のものです。02/03/16 18:58ID:???
>>977
俺の書きたいことは 969, 971 で書いた。

それに対して反論が 973 で来てたわけだが、一部、日本語として意味不明
なので確認したわけ。で、どうなの?
0979名前は開発中のものです。02/03/16 18:59ID:???
>>977
勝ち負けを競ってたのか。

Q 価値って何ですか?
A はつみみです。
0980名前は開発中のものです。02/03/16 19:02ID:???
>>978
うわ、、お前と話す気失せました。
何?君は俺と罵り合いをしたい訳?
俺はそんなの不毛なんでイヤですわ、他の奴捜してください。
もうちょと大人になりなよ。w
0981名前は開発中のものです。02/03/16 19:04ID:???
>>979
いやだからさ、「論」を書けよ「論」をさ。
君にそんなレス貰ってもしょうがないのよ。
0982名前は開発中のものです。02/03/16 19:12ID:???
次スレは?
0983名前は開発中のものです。02/03/16 19:18ID:???
>DirectXでコレが実現出来ているなら、Direct3D5でも
>SIMDサポートやHWTLサポートが可能になって良いはず。

だからさ〜 出来ないのとやらないのは別だろ…
DX5でサポートしてもいい筈 なんていいだす方が気狂ってるって
0984名前は開発中のものです。02/03/16 19:26ID:???
>>983
お前さぁ、いい加減にしろよ。
COMのこともDirect3Dのことも全然知らねえのが
バレバレなの。
HWTLやSIMDならコンパネから許可/不許可を選ばせれば
ソフト的には何にも問題ないだろ。
0985名前は開発中のものです。02/03/16 19:29ID:???
>>980
> 何?君は俺と罵り合いをしたい訳?
いいえ。

> CoClassをバージョンアップさせつつも公開するインターフェイスの定義は
> 変えずに、新たな定義を持ったインターフェイスを追加していく仕様
反論の核はここだと思うんだが、意味が分からんので真意を確認したわけ。
聞いた結果として「なるほど」と思うかもしれないし、お互いの齟齬がはっきり
して「ここを勘違いしてたわけね」となるかもしれないと期待したんだが、ま、
別に面倒なら説明しなくても良いよ。

別に2ちゃんねるの僻地で意思の疎通がうまくいなかくても、俺もキミも、
大して困らんし(w
0986名前は開発中のものです。02/03/16 19:30ID:???
>>984
市販アプリケーションが、

 このアプリケーションを動作させるときにはコントロールパネルから
 HWTL を切ってください

とか書くわけ? しかもアプリケーションの発売時には、その設定は
ないわけで、初回出荷時のマニュアルにはかけないよね。

問題アリアリじゃん。
0987名前は開発中のものです。02/03/16 19:39ID:???
>>985
君がサル並みの知能じゃなきゃ
そんなもん説明しなくてもわかるつ〜の。
もういいよ、やめやめ。

>>986
だからそんなもんアプリ側で関与する必要は無いの。
大体DXのコンパネには、明らかにゲームのパフォを落とす
チェックボックスが存在してるじゃねーか。
チェックを入れるとどうなるか、ユーザーはそれを理解し責任を持つ必要があるの。
0988名前は開発中のものです。02/03/16 19:45ID:???
つーか、MSがなんて金かけて古いゲームを早く動く様にする必要があるんだ??
ゲームなんかすぐ陳腐化するし、60FPS超えても意味薄いだろ

おまえキーボード叩いてないで病院いった方がいいよ
0989名前は開発中のものです。02/03/16 19:51ID:???
>>987
うーむ、俺はサル並みの知能なんだろうか。困ったね。

それはともかく次スレ立てておいてくれ。
0990http://www.2chan.net/img/img-box/img20020315234838.jpg02/03/16 19:53ID:tIwYajuw
http://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ねhttp://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ねhttp://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ねhttp://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ねhttp://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ねhttp://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ねhttp://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ねhttp://www.2chan.net/img/img-box/img20020315234838.jpg
へたれ絵描き氏ね
0991名前は開発中のものです。02/03/16 19:56ID:???
>>987
> チェックを入れるとどうなるか、ユーザーはそれを理解し責任を持つ必要があるの。
一般ユーザに、そんな高度なことを期待できません…。

市販ソフトでマニュアルに記述がなくて、かつ標準環境で動かんような
ソフトを出すと、確実にサポートに苦情が来る。問い合わせじゃなくて。
0992名前は開発中のものです。02/03/16 19:58ID:???
次スレ
鬱だ氏のう DirectX (Part 4)
http://game.2ch.net/test/read.cgi/gamedev/1016276254/
0993名前は開発中のものです。02/03/16 20:05ID:???
要するにみんな知ったかぶりということで
0994名前は開発中のものです。02/03/16 20:11ID:???
つーか本当にハッタリくんばっかりなんだな。
まさかここまでとは・・
正直失望しました。>ゲーム制作板
0995名前は開発中のものです。02/03/16 20:11ID:???
とりあえず沈めるか。
0996名前は開発中のものです。02/03/16 20:13ID:???
>>994
おそいな老い
0997名前は開発中のものです。02/03/16 20:15ID:???
>>994
見切りつけるの遅すぎ(w
0998名前は開発中のものです。02/03/16 20:16ID:???
まあそんなゲーム制作板がすきなんだけどな
0999名前は開発中のものです。02/03/16 20:21ID:???
ユーザーを面白いと思わせるには、ハッタリも大事だよん
1000名前は開発中のものです。02/03/16 20:21ID:???
で、1000ゲット
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。