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

鬱だ氏のう DirectX (Part 7)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/12/10 17:34ID:tkEwMMYm
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■ 過去スレ
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (プログラム板)
Part 2 http://pc3.2ch.net/test/read.cgi/tech/997101556/ (プログラム板)
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/
0662名前は開発中のものです。03/02/16 03:14ID:By3z7WHs
ttp://masafumi-t.cool.ne.jp/directx9/ready/ready02.htm

[スマートポインタ]
は、自動開放をしてくれるとの事で、早速使ってみたいのですが、
こちらのサイトからの情報だけではいまいち理解できまへんでした。

どこかにシンプルで簡単なサンプルコードはありませんか?
とりあえずIDirect3D9をスマーティ〜に作ってみたいのですが。
4〜5行で済むことなら直接書いていただくのもアリかな:-)




0663名前は開発中のものです。03/02/16 03:33ID:qivgoxYo
>>662
そこだけじゃなくて他のサイトも見て理解してください。
0664名前は開発中のものです。03/02/16 03:34ID:I55/V1zD
>>659
「猫でもわかるプログラミング」ってサイトにいろいろ詳しく
掲載されてるっぽ。検索してみれ。
0665名前は開発中のものです。03/02/16 04:00ID:ZVOz3UrZ
DirectXは、バージョンをあげても動くというのが建前ですよね。

しかし、実際には動かないゲームやアプリがあります。
うちのWinFastという古いアプリもそうですし、FFもそんな噂を聞きます。

これの原因は何なのでしょうか?
単にコードの冒頭でバージョンを定義してないせいとか…、
いやそんな単純じゃないですよねぇ…。よろしければご教授を。
0666名前は開発中のものです。03/02/16 04:07ID:I55/V1zD
ドライバやOSも関係してくるから一概に言えない
0667名前は開発中のものです。03/02/16 04:08ID:ZVOz3UrZ
>>666
ありがとうございます。ではコーディングする側としては
どうしようも無いんですね。ある意味ほっとしました。
0668あぼーんNGNG
あぼーん
0669名前は開発中のものです。03/02/16 05:24ID:qivgoxYo
他にもOSの種類を9x系に限定したりとかが原因で動かなかったり。
0670名前は開発中のものです。03/02/16 09:05ID:8zpaisS3
>>661
例えば、バンプマップで表現した面を、ライティングで壁に影として映し出そうとした場合。
バンプだと描画のみなのでポリゴンの形の影になるが、
ディスプレースメントならポリゴンも変形してるので、その描画されている形の影が落ちる。

そんな感じか。
0671名前は開発中のものです。03/02/16 10:06ID:LdkrBz+N
DirectSound は同時に演奏できる数に制限はないんですよね。
WDMドライバの場合の WaveOut も同時演奏数に制限はないから、
結局 同時演奏数に制限が加わるのは vxdドライバで WaveOut を使ったときだけなんですね。
0672名前は開発中のものです。03/02/16 11:19ID:PYI2iM28
>>661
よくわからんけど、LODが実装しやすいんじゃなかろーか。
0673名前は開発中のものです。03/02/16 11:29ID:8GBF26gb
>>671
制限はある。CAPSをチェックしろ。
0674名前は開発中のものです。03/02/16 11:52ID:kG6Gu6Lz
>>661
何のために使うか分からなければ使わないでいいと思うよ。
使う時が来たら使えばいい。
だいたいDX9が一般に広がるのっていつの頃だよ……。来年?
0675名前は開発中のものです。03/02/16 12:39ID:U1Dr21mj
DirectX9が広まる心配などする必要ない。
問題は、DirectX9対応(というか使いたい機能を持った)ハードウェアがいつ広まるかだ。
前者はこちら側の対処でどうにでもなる。
後者は難しい。
0676名前は開発中のものです。03/02/16 13:52ID:kG6Gu6Lz
>>675
いや、そういう意味で言ったんだけどね。
だって俺もまだDX8世代のカードで我慢してるし。ゲームやる友達のパソコンも
酷い奴はまだDX7世代だもん。

1,2年前のメーカー品使ってる連中が買い替え始める時期がいつか……。

変な話、シェーダー3.0に完全対応したカードが出てくれないと
俺はビデオボード変えないかも(笑)
0677名前は開発中のものです。03/02/16 14:45ID:8GBF26gb
ん?ゲームする人の論理?
0678あぼーんNGNG
あぼーん
0679名前は開発中のものです。03/02/16 15:10ID:lNvw3jDD
670-677レスありがとうございます。
なんか微妙な用途ですね。
地面につかうとでっぱったポリゴンがキャラにめり込むし。
うーん、誰か効果的な使い方を発見してくれるのをまつことにします。
0680名前は開発中のものです。03/02/16 15:38ID:kG6Gu6Lz
>>677
いや、DX9で定義された仕様を全部サポートしてくれた製品じゃないと嫌だなぁって話。

>>679
ディスプレースメントマップをハードでサポートなんて最高じゃんか。
使いまくれ!
ほら、6面体で焼けて膨らむ餅が表現できるぞ(笑)

それより俺はボリュームを何とかして欲しいなぁ……
0681名前は開発中のものです。03/02/16 16:54ID:tDr+jqjf
プログラム内でスクリーンショット機能を付けたいのですが、
どういう手順でやればいいですか?
環境はVB6.0+DIRECTXでお願いします。
0682名前は開発中のものです。03/02/16 17:22ID:3FlUVw2p
VBは知らないのでC++の例。ウィンドウ枠が可変でプライマリバッファからコピーの場合
  LPDIRECT3DSURFACE8 tmp;
  D3DLOCKED_RECT lock;
  d3ddevice->CreateImageSurface(::GetSystemMetrics(SM_CXSCREEN), ::GetSystemMetrics(SM_CYSCREEN), D3DFMT_A8R8G8B8, &tmp);
  d3ddevice->GetFrontBuffer(tmp);
  tmp->LockRect(&lock, NULL, 0);
  RECT rc;
  GetClientRect(hwnd, &rc);
  int w = rc.right - rc.left;
  int h = rc.bottom - rc.top;
  ClientToScreen(hwnd, (POINT*)&rc);
  BYTE *buf = new BYTE[sizeof(DWORD) * w * h];
  for (int i = 0; i < h; i++){
    CopyMemory( buf + sizeof(DWORD) * w * i,
      (BYTE*)lock.pBits + lock.Pitch * (rc.top + i) + rc.left * sizeof(DWORD),
       sizeof(DWORD) * w);
  }
  delete[] buf;
  tmp->UnlockRect();
0683名前は開発中のものです。03/02/16 18:34ID:A+y5e3fj
>>681
>>645から読み直せ
0684あぼーんNGNG
あぼーん
0685名前は開発中のものです。03/02/17 00:13ID:9vsIryvv
>>673
DirectSoundではサウンドの同時処理は処理速度が許すかぎりいくらでもできる。
CAPSはハードウェアで処理できる限界であってソフトウェアの限界ではない。
0686名前は開発中のものです。03/02/17 04:19ID:WS9BVvAx
3Dを背景とした2Dゲームって、二つの頂点の定義を作っておいて、
毎フレームごとに切り替えるんですか?

つまり、1フレームごとに、座標変換ありの頂点と座標変換なしの頂点を
交互に描画するんですか?
0687名前は開発中のものです。03/02/17 04:43ID:mWd91DKT
>>686
うん
0688名前は開発中のものです。03/02/17 05:09ID:hdzUUYWw
>>686,687
なんだそりゃ?
0689名前は開発中のものです。03/02/17 05:25ID:aOw8ezq9
少々わかりにくいが間違いはなさそうだが
0690名前は開発中のものです。03/02/17 07:19ID:hdzUUYWw
ああ、背景は座標変換あり、2Dオブジェクト郡は座標変換ありってだけのことか。
だがな、用語が変だぞ。
0691名前は開発中のものです。03/02/17 07:55ID:vF3bZenv
あり?
0692名前は開発中のものです。03/02/17 08:04ID:hdzUUYWw
2Dは「なし」だな。すまん。もうこない
0693名前は開発中のものです。03/02/17 08:23ID:jFMHe3lL
逃げちゃ駄目だ!
0694名前は開発中のものです。03/02/17 08:58ID:dBcKYU7J
http://www.agemasukudasai.com/bloom/
0695名前は開発中のものです。03/02/17 09:34ID:tG/PvClA
普通、同じフレーム内に座標変換あり、なし両方書き込むぞ。
なんだ、交互にって?テレビのインターレースかいな。

で、その頂点座標変換あり、なし混在の場合、
頂点変換なし(2D)描画が常に画面の手前になってしまう。

背景(3D)のobjectと何かしら処理が絡むなら(objectをくぐるとか)
自キャラ(2D)もビルボード使って
板ポリで、頂点変換ありでやった方が良いんでない?
0696名前は開発中のものです。03/02/17 10:48ID:E/qUSJ/7
座標変換無しでもポリゴンは描画できるよ。
0697あぼーんNGNG
あぼーん
0698名前は開発中のものです。03/02/17 16:57ID:k1lu5QbB
なんか半年ぶりくらいにこの板キタ。

3Dを背景とした2Dゲーって言われてもピンと来ないのよね…
地形が3Dで2Dのビルボードを使ったゲームなのか、
背景は3Dだが見た目は完全に2Dなのか。
前者ならビルボードだけど後者だとスプライト。
0699名前は開発中のものです。03/02/17 17:43ID:mWd91DKT
ややこしくするなよ。ビルボードならこんな質問するわけないだろ。
0700名前は開発中のものです。03/02/17 18:07ID:lk5pRAb1
3D背景の2Dゲーなら、ゲーセンにカプコンの格ゲーがいくらでもあるじゃん。
0701名前は開発中のものです。03/02/17 18:26ID:KxwQBCAS
>3Dを背景とした2Dゲー
>>700のほかにも、
サターンの初期にクロックワークナイトってゲームがあったけど、
あれが確かそういうタイプのゲームだったような。
0702名前は開発中のものです。03/02/17 20:26ID:k7503aDO
横やりで申し訳ないですが、パワーゲージとか
残り時間の表示とかは座標変換無しでそのままやりますよね。

まあ、Zバッファ切ってから最後に描画するんでしょうけど。
0703名前は開発中のものです。03/02/17 22:59ID:68dkEVgw
Zバッファ斬る?
なんで?いいじゃん描いちゃえよ。
0704名前は開発中のものです。03/02/17 23:04ID:HE1lwuh3
>>703
Zバッファ切らないで描画したら上書きされないの?
>>702
座標変換なしで描画したら解像度変わった場合大きさが変わらない?
0705名前は開発中のものです。03/02/17 23:21ID:hdzUUYWw
このスレの人間が高解像度対応なんて
ちょっとでも気の利いたことするわけないじゃん。

640x480x16bpp 60fps固定 FSAAなし
以外選べないゲーム作ってる奴らだからな。
0706名前は開発中のものです。03/02/18 00:17ID:9ivC/Ath
>>704
解像度変わったらそれに合わせた座標にすりゃいいじゃん。
っていうか、ほとんどのゲームで2Dアートワークってサイズ固定で、
高解像度にすると小さくならない?
0707名前は開発中のものです。03/02/18 00:20ID:2XDOY6wz
てか、何いってるのかわからないけど。
解像度は3:4をまもっとけば後からでも変更はいくらでも効くでしょ。
Zバッファはそもそも座標変換ありのものもなしのものも違いないでしょ。
ちなみに2D座標の場合のZの値は1.0が最前面だった気がする。
まあ、前面に描くものはα物だらけだと思うが。
070870403/02/18 00:22ID:qi2fP5U0
>>706
>ほとんどのゲームで2Dアートワークってサイズ固定で、
>高解像度にすると小さくならない?
それはカコワルイと思うけどなぁ
0709名前は開発中のものです。03/02/18 00:24ID:G8QFcNbI
3Dアニメーションのモーションつくるのどうしてる?
0710名前は開発中のものです。03/02/18 00:58ID:7nhEB5ou
>>707
その違いが無い、座標変換ありと無しの
無しの方Zの値をどうやって決める?

ワールド上を自由に動くオブジェクトやカメラの場合、ワールド変換、カメラ変換、ビュー変換
して座標変換ありの頂点は、Z値を持つ訳だ。

そのZバッファに、変換無しの頂点のZ値を、どう対応させる?
まさか、前面描画なんて言うなよ。

それと、α物とZバッファの関係が分ってないようだね。
もしα物が画面奥にあって、その周りを何か物体が回っているなんて場合
君のやり方じゃ、実装不可能だろ。
0711名前は開発中のものです。03/02/18 00:59ID:r2vh2WJc
trueSpaceの60000円ぐらいするやつ。
0712あぼーんNGNG
あぼーん
0713名前は開発中のものです。03/02/18 01:10ID:HS6mmhB0
>>709
LightWave使っとります。
0714名前は開発中のものです。03/02/18 01:14ID:KGJUoVgY
>>713
そういうのって10マンぐらいするよね。
やっぱ買うわけ?
0715名前は開発中のものです。03/02/18 01:19ID:SbwOx8MJ
ポケットを叩くとビスケットは2つの原理です。
0716名前は開発中のものです。03/02/18 01:19ID:HS6mmhB0
>>714
当たり前でしょ。あと値段、30万近くするって。
0717名前は開発中のものです。03/02/18 01:30ID:KGJUoVgY
高杉・・・。
>>715
タイホー。
0718名前は開発中のものです。03/02/18 02:36ID:Ahzziud7
ドングルもなんとかできるもんなの?
0719あぼーんNGNG
あぼーん
0720名前は開発中のものです。03/02/18 02:45ID:THIYqgow
モーションをしっかり勉強したいんだけど
それを専門に扱った本がみつからないんですよね。
何かありますか?
0721名前は開発中のものです。03/02/18 02:57ID:HS6mmhB0
>>720
http://pc.2ch.net/cg/
こっちで聞いたほうがいいと思うが。
0722名前は開発中のものです。03/02/18 04:28ID:THIYqgow
アドバイスありがとうございます。
ところでみなさん、浮動小数点の絶対値を求めるときどんな関数を使ってますか?
fabsだとdouble型対象となってるので他に何かいいのあったら使いたいのですが。
0723名前は開発中のものです。03/02/18 04:56ID:HS6mmhB0
>>722
0より小さければ−1をかける、でいいのでは
0724名前は開発中のものです。03/02/18 08:02ID:QS9PEt6s
>>722
fabsf・・・結局はdoubleだけどさ・・・。
0725名前は開発中のものです。03/02/18 09:19ID:5aGkziqd
VC++6.0でスクリプトエンジンもどきを作成しているのですが
strcmpで"}"を文字列比較をする時に、lpStringに"てすと"等の違う文字列が
入っていても1(true)が帰ってきてしまいます。

例:
int tmp;
tmp=strcmp(lpString,"}");

しかし、上記で1がtrueと言っていますがMSDNを見ると0が帰ってくるとtrueらしいのです(;´Д`)
0なんて帰ってきた事なんてありませんし…。
どなたかアドバイスお願いします
0726名前は開発中のものです。03/02/18 09:39ID:QS9PEt6s
r=strcmp(a,b);

 ↓

if (a<b) r=負の数;
if (a==b) r=0;
if (a>b) r=正の数;
0727名前は開発中のものです。03/02/18 09:53ID:7nhEB5ou
>>725
なんだかな。ココはDirectXスレな訳で。
Cの構文なら、プログラム板にでも…。

アスキーコード知ってるかい。
文字は全て、数字が対応してるのよ。
strcmpは内部で減算してるだけ。
つまり同じ文字列なら、減算の結果が0で、戻り値が0な訳だ。
だから、戻り値が0なら同時な文字列であろうって感じなだけで
それがtrueな分け無い。
0728名前は開発中のものです。03/02/18 10:32ID:5aGkziqd
アドバイスありがとうございました。
ということは、これでいいわけですね(・∀・)

if(lpString[0]=='>'){
}
0729名前は開発中のものです。03/02/18 10:33ID:9TfHrH9k
数行のプログラムで実験すらできないのか?
0730名前は開発中のものです。03/02/18 12:21ID:3N95F/Cv
次は'\'と比較して全角二バイト目とぶつかる罠、だな
つかDirectXと全然関係ないやん
0731名前は開発中のものです。03/02/18 13:58ID:VIlmLJi8
>>707
>解像度は3:4をまもっとけば
3:4以外にも対応するべし。1280*1024は5:4なんだなこれが。
2D表示部分はタスクバーのように画面の端にくっつくようにプログラムを組むべし。

>>708
今までサイズ固定じゃないゲームを見たこと無いんだが。
まあquake2を高解像度でプレイしたときの文字の小ささはアレだと思ったが。
0732名前は開発中のものです。03/02/18 14:11ID:HePtHIHl
>>解像度は3:4をまもっとけば
>3:4以外にも対応するべし。1280*1024は5:4なんだなこれが。

ついでに最近のメーカー製PCはワイド画面が増殖中ッスよ。
こんな感じで↓
http://pcweb.mycom.co.jp/pcbuyers/review/2002/combine/
いちおう考慮しておいたほうがよいやも。
0733名前は開発中のものです。03/02/18 14:25ID:BxcSfeKF
テクスチャ画像のサイズってどうしてますか?
私が以前 DirectDraw でプログラムしていた時は
640x480(画面サイズ)の画像にチップを詰めてたのですが
Direct3D の場合は普通はどういう感じなんでしょうか。

同じように比較的大き目の画像にチップを詰めるのか、
各チップ(パターン)毎に1ファイルずつとか。
サイズはよく256x256というのを聞きますが
となるとやはりパターン毎に(最大256x256の)ファイルにするんでしょうか。
普通はこのぐらいのサイズまでなら大丈夫なんじゃない? という基準とか
あったら教えてください。
0734名前は開発中のものです。03/02/18 14:38ID:TzLAjW+F
2^nのサイズが良いと言われますね。
256 x 256 (2^8 x 2^8) 推奨というのはそのへんから来ているのではないかと。
0735あぼーんNGNG
あぼーん
0736名前は開発中のものです。03/02/18 15:18ID:heSsomrk
普通にテクスチャデータを作ろうとすると、
DirectXの場合は1X1までミップマップをつくってくれちゃうんでしたよね。
0737名前は開発中のものです。03/02/18 15:53ID:3N95F/Cv
>>733
最大256x256が無難といえば無難。
あと、ファイルをそのままテクスチャにしなければならない、
という決まりはないと思う。

>>736
ミップマップを作成しないこともできるけど?
0738名前は開発中のものです。03/02/18 16:48ID:f7hIAHrT
>>733
自分は、テクスチャーを作る時に
ハードウェアの制限調べて(最大サイズとか、2の累乗のみとか、正方形のみとか)、
それにしたがって、内部で分割したり、正方形に修正したりしてるよ。
今のカードだと、制限もだいぶ無くなってきたけど、
Voodooとかだと、最大256*256 & 正方形のみ & 2の累乗のみ
とかの制限に全部引っかかったりするので。
073973303/02/18 18:29ID:BxcSfeKF
>>734
そうですね。
4:3に慣れてしまったので違和感がありますが、、

>>737
256x256だと Voodoo も含めOKと。

>>738
それって難しくないですか?
絵を貼り付けた板を移動するときとか
今は一枚なのか二枚なのか意識しなくちゃならないし
自分がヘタレなだけかもしれませんけど。

最近の市販ゲームだと Voodoo には対応してません
と明記してあるやつが多いですけどそういうやつは
どのぐらいのサイズで作ってるのかなと。
と思ったら >>4 のサイトで調べられますね、、、
Rage Mobilityやi810ですら 1024x1024 いけるんですね。
不勉強でスミマセンでした。
074073803/02/18 18:58ID:PMYVEmVG
>>739
難しくないよ。
スプライトクラスとかを作っておいて、
そのスプライトクラスのメソッド
例えば、CSprite::Load()とかで、テクスチャーを作成する時
ハードの制限等を調べて、分割なり、修正なりすればよい。
描画する時は、描画メソッド
例えば、CSprite::Draw()とかで、テクスチャーの修正情報に従って、修正描画すればよい。
1回スプライトクラスを作っとけば、使う時は何も考えずに使えるよ。
自分は大体こんな感じでやってるけど、みんなは違うのかな?
0741名前は開発中のものです。03/02/18 19:19ID:BxcSfeKF
>>740
なるほど。
Spriteクラスは1枚以上の板から成っている、と。

私がこの間3D始めてやっとこさ作ったSpriteクラス(Billbordクラス?)は
1インスタンス = 1枚という感じだったので、、
勉強になります。
0742あぼーんNGNG
あぼーん
0743名前は開発中のものです。03/02/18 20:29ID:OmAR/C8b
>>740
俺もラッパークラス作って使いまわしてるよ。
0744名前は開発中のものです。03/02/18 21:17ID:VM4ycalO
DirectAudio(DirectX8)って、どうやって始めればいいんですか?
ヘルプを見て、いきなり
>1. COM の初期化
>DirectMusic オブジェクトを作成するためのヘルパー関数はないので、
>CoInitializeEx を呼び出して COM を初期化する必要がある。

この関数(CoInitializeEx())の使い方、意味、次への繋げ方がもう分からんのですが。
      [定義されてない識別子です。]
ヘルプ通り、objbase.h ってのIncludeしたのに!!!ヽ(`Д´)ノ
0745名前は開発中のものです。03/02/18 21:34ID:3N95F/Cv
なぜサンプルから当たらない?
0746名前は開発中のものです。03/02/18 21:36ID:oY4uuy6q
>>744
COMのこと知らないみたいだからCOMの勉強すれば。
あとはサンプルやウィザードが吐くコードを見るとか。
0747名前は開発中のものです。03/02/18 23:57ID:SbwOx8MJ
Voodooはドライバ更新ないんじゃないの?
そもそもDirectX8で動くんか?
0748名前は開発中のものです。03/02/19 04:01ID:3HHIicMN
http://www.microsoft.com/japan/msdn/directx/techart/directx9devfaq.asp
0749名前は開発中のものです。03/02/19 04:34ID:K2W4Cmx9
ケースバイケースだとは思うのですが、皆さんはモーションデータを
どのクラスに保持させていますでしょうか?

とりあえずDirectX8のサンプルにあるフレームやメッシュと同じ感覚で、
モーションデータをパーツ毎に持たせてみました。
しかし、これでは動作がボトムアップといいますか…一元的に管理できない感じで…。

かといって、モーションクラスを作り、トップダウンに個々の
パーツを管理するのも、主体が2重になりそうで…。

言ってることが曖昧ですいません。要するにモーションデータの管理について
悩んでいまして…なにか示唆をいただければ幸いです。
0750あぼーんNGNG
あぼーん
0751名前は開発中のものです。03/02/19 06:34ID:b63auc8G
あーやだやだ設計厨は。
0752名前は開発中のものです。03/02/19 06:49ID:athMsZgq
>>749
上位では階層化メッシュクラスのサブクラスで
アニメーションメッシュクラスを作って管理してます。

内部では各フレームごとにモーション情報を持たせてます。
自分的にはシーングラフには内部の詳細は不要なので、
混乱せずに扱えて便利だと思ってるです。
075374903/02/19 10:38ID:K2W4Cmx9
>>752
レスが遅れて申し訳ありません。ついウトウトと…。

おお!フレーム毎に持たせてらっしゃるのですね。
私も内部の詳細は一切触らず(触れず)に、ただ状況に合わせて
アニメーションさせるだけなんです。やっぱり分かりやすいのが一番ですよねぇ…。

ただ初めての3Dということもあって、もしかしたらこういうのは
トップダウンの方が把握しやすのかなぁと、不安になりまして…。
おかげで安心しました。レスありがとうございました。
0754名前は開発中のものです。03/02/20 01:00ID:aBMYS0Zf
 みなさん、8.1でシェーダってどうやって管理していますかねぇ?
ブレンド数やライトやらスペキュラを自由にOn/Offしようとすると
かなり破綻しそうなんですけど…。
 9.0のフラグメントナントカって使えるかなー?
0755名前は開発中のものです。03/02/20 01:16ID:CqEeT/jM
>>754
マテリアルとかうまく管理しているならそれとよく似た方法で管理すれば問題ないはず。
# というか、シェーダーだけそんなに特別か?
0756あぼーんNGNG
あぼーん
0757名前は開発中のものです。03/02/20 05:22ID:kkYbtpSU
みなさんはDirectXが返したエラーをなにで処理していますか?
例外を返していますか?
0758名前は開発中のものです。03/02/20 07:46ID:9HTvRHMZ
なにで、って、普通にif文で処理してるよ?(C++ね)
そもそもDirectXで例外ってあんまりみたことない。
(経験不足名だけかもしれないけれど)
DirectXのエラーを例外で処理するメリットが見当たらない。
0759名前は開発中のものです。03/02/20 09:27ID:E8JYbNB2
例外を使ったほうが圧倒的に実装がすっきりする。
C++つかってるのに例外を使わないなんて考えられない。
0760名前は開発中のものです。03/02/20 10:16ID:qrgwODJk
DirectXだろうが何だろうが、実行時エラーは基本的に例外。
予測可能かつ対処可能な失敗コードなら復帰を試みるけど。

DirectXが戻り値でエラーを通知するのはかなり限られた
ケースなんで、ほとんどの場合は例外になると思う。
0761名前は開発中のものです。03/02/20 11:26ID:weLWt0f5
アセンブラコード見ると例外ってかなり重い気が。
■ このスレッドは過去ログ倉庫に格納されています