10/01/09 17:13:25
※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
2:デフォルトの名無しさん
10/01/09 17:14:10
前スレ
【C++】 DirectX初心者質問スレ Part26 【C】
スレリンク(tech板)
3:デフォルトの名無しさん
10/01/09 17:16:26
>>1-2
乙
4:デフォルトの名無しさん
10/01/09 17:21:45
>998 名前:デフォルトの名無しさん[sage] 投稿日:2010/01/09(土) 16:03:05
>引数で渡すのが一番安全の意味が分からない。。。
例えば
pD3Dev = Create・・・
unko();
if(pD3Dev)
はもしかしたらunko()の中でpD3Devは開放されるか値が変わってしまってるかもしれないよね?
それどころか?pD3Devが触られてるかどうかすらわからないよね?
これがグローバル変数関数の恐怖
プログラムすべてでグローバル変数を使用しないとしたとき(引数を通した場合)は
pD3Dev = Create・・・
unko(pD3Dev);
if(pD3Dev)
こうやってunko関数の中でpD3DevにしかアクセスしてないことがわかるしpD3Devにアクセスしてることがわかるよね?
また、引数で渡すようにしたときに今度はunko関数がpD3Devにアクセスしてないことがわかるよね?
pD3Dev = Create・・・
unko();
if(pD3Dev)
でもグローバル変数関数つかいまくりだとunko関数で何がおきているかはunko関数の中身を
すべて調べないとわからないよね?
これがダメなプログラムの例
5:デフォルトの名無しさん
10/01/09 19:29:24
デバイスの場合そんな初歩の話をしてるんじゃ無いと思うぞ
6:デフォルトの名無しさん
10/01/09 22:42:40
>>5
そう?
少なくとも俺はこのレベルでの話をしたつもりだけどね
7:デフォルトの名無しさん
10/01/09 23:18:35
D3DXで描画したオブジェクトの周りの背景を透過して、ウィンドウの向こう側が
見えるようにできたらと考えているのですが可能でしょうか?
環境はXP,DirectX9です。
レイヤードウィンドウを作成して、SetLayeredWindowAttributesで
D3DX側の背景色を指定してみたのですが、さすがにそう甘くはなかった…orz
画面閉じてもD3DXの描画部が残る始末。。
描画先?描画デバイス?が違うみたいだから無理なのかな?
ウィンドウの向こう側をコピーして、D3DXで描画するオブジェクトと合成
という手段も考え中ですが、ビルボードに貼り付けじゃなんか違うよなぁ…
良い方法ありましたら教えてください。
8:デフォルトの名無しさん
10/01/09 23:55:34
>>4
それは単なるルールじゃないの?
9:デフォルトの名無しさん
10/01/10 00:15:11
>>4
真ん中の場合も解放されてるかどうかはunko関数の中身を調べてみないとわからないんじゃ
10:デフォルトの名無しさん
10/01/10 01:21:36
結局引数で渡そうが
その渡すための元の変数をどこに置くかって話でそ
クラス設計の話なんだから
>>4みたいな構造化プログラミングの思考で考えてもしょうがない
11:デフォルトの名無しさん
10/01/10 02:23:06
てか、デバイスのロストとか関係無しの話なら
スレ違いになるんじゃね
12:デフォルトの名無しさん
10/01/10 03:23:39
デバイスの管理は昔のサンプルにあったCD3DApplicationみたいな
クラスでやってるな自分は
勝手に解放されてしまうかもしれない、なんてのはスマポ使おうが何使おうが
ラップして隠蔽でもしない限り、防ぎようが無いから気にしてもしょうがない