[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 04/29 17:34 / Filesize : 141 KB / Number-of Response : 626
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】 DirectX初心者質問スレ Part21 【C】



1 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:39:57 ]
前スレはカスしか居ないので廃棄の方向で。

※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。


154 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 18:49:39 ]
Direct3D10+DXUTの組み合わせで、表示色がおかしくなるんだがだれか同様の現象を体験したことない?
例えばTutorial12のエフェクトファイルの110行目、ピクセルシェーダの出力部分に
cTotal.rgb = float3(.5, .5, .5)
と追加してから実行すると、なぜか#bcbcbcの色で表示される。
グラボはGeForce9600MGT。
Tutorial3みたいにDXUTを使っていないのでは正常に表示されるから、DXUTのせいだと思うんだけど。

155 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 19:37:55 ]
>>153
CPUじゃねーか

156 名前:31 [2009/01/15(木) 23:18:53 ]
31です。以前質問させていただいたきり他の事で忙しくプログラミングできませんでした。
あのあと、結局いろいろ試してみましたが結局アニメーションのつなぎはうまくいきませんでした・・・
そもそも、ほとんど同じモーションなので座標変換や回転もないようなモーションですら変更できないという。
何がいけないのでしょう。。xファイル出力するときに何か他の設定が必要なのだろうか・・

157 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 23:54:05 ]
ソースも出さずにその「独自」仕様とやらをエスパーしろとな?

158 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 01:25:05 ]
>>何がいけないのでしょう

こんなところで聞いてるのがいけない。

159 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 06:37:45 ]
main.obj : error LNK2019: 未解決の外部シンボル "long __cdecl LoadTextureFromImageFiles(char const *,struct IDirect3DTexture9 * *,char const *,struct IDirect3DDevice9 *)" (?
LoadTextureFromImageFiles@@YAJPBDPAPAUIDirect3DTexture9@@0PAUIDirect3DDevice9@@@Z) が関数 "long __cdecl SetupFVFTexture(struct IDirect3DDevice9 *)" (?SetupFVFTexture@@YAJPAUIDirect3DDevice9@@@Z) で参照されました。

これがどうしても解決できません。ライブラリとの整合性が取れてないエラーとのことで、インクルード/ライブラリのフォルダ設定・並び順、プロジェクトとの.libの関連付けもいじってみましたが上手くいきません。
それ以外に何が問題として考えられますか?

160 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 07:34:05 ]
>>159
LoadTextureFromImageFiles に一致する情報は見つかりませんでした。
Googleに聞いてもわからない

161 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 08:56:56 ]
>>159
自分で定義した関数だろどう考えても。

162 名前:159 [2009/01/16(金) 09:19:13 ]
>>161の言う通り、プロトタイプ宣言した物を実装していませんでした。サンプルからコピペのミスでした。



163 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 10:31:05 ]
陰線消去したくてZバッファ法というのをやってみたのですがうまくいきません
エスパーお願いします

164 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 10:51:03 ]
>>163
それはグラボのせい
GeForce GTX 285を使うときっと治る

165 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 13:04:27 ]
試しにZバッファ法というのをやってみたらうまくいきました

166 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 17:34:41 ]
D3D の質問です。

フルスクリーンでない、ウィンドウのアプリを作っているのですが、
ウィンドウのサイズが変更されたときに、画像が縦に伸びたり
横に伸びたりするので困っています。
正方形が正方形のまま、拡大して欲しいのですが、どうすればいいのでしょうか

C# とかじゃなくて、Windows API で作っています。
よろしくおねがいします。

167 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 18:00:11 ]
矩形を指定してdevice.Presentする。

168 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 19:51:21 ]
Reset

169 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 02:43:41 ]
>>168さんの reset でできましたー!
>>167さんのは、ごめん、うまくいきませんでした。

170 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 02:44:25 ]
>>169です。

テクスチャを一度 Release して、もういちど読み直さないと行けないのがすこし面倒でした。

171 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 10:33:18 ]
こんにちわ、DirectSoundでwavファイルを再生しようと思い
ゲームコーディング2という本を見ながらコードを書いていたのですが
同じようにやっても再生されません
コードに間違いがないか5回くらい見直しました

全てのコードを書くと長くなるので大まかな流れだけ書きます

DirectSoundオブジェクトを生成 Wavファイルを読み込む セカンダリバッファ作成
バッファに音データを書き込む 再生という手順です

一応コードをUPするので違うところがあれば指摘してもらえると幸いです
www7.uploader.jp/dl/inoguma/inoguma_uljp00001.zip.html

宜しくお願いします

172 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 11:07:48 ]
>>171
Play()の戻り値見てないだろ?
DSERR_PRIOLEVELNEEDED が返ってきてるよ。
SetCooperativeLevel()呼べばいいと思うよ。



173 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:12:25 ]
DirectSoundを初期化する時に

// 協調レベルの設定
if(FAILED(m_pSound->SetCooperativeLevel(hWnd, DSSCL_EXCLUSIVE))) {
return E_FAIL;
}

としてありますが上手くいきません

174 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:34:22 ]
やってみたのかよ。
Play直前に呼んだら鳴ったぞ

175 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:36:11 ]
実際やりもしない、戻り値を確認もしないでただ質問するだけってどうなんだろうね。

176 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:42:20 ]
ところで実際の本ではどうなってるんだ?
ウィンドウができる前にSetCooperativeLevel呼んだって意味がないだろうに。

177 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:49:10 ]
ついでにデバッグしてみたが、、、

// gamemainの初期化
_gamemain = new CGameMain();
hr = _gamemain->FInit(m_device);
_gamemain->GetHWND(m_hwnd);

これを
_gamemain->GetHWND(m_hwnd);
hr = _gamemain->FInit(m_device);
のように入れ替えれば動作した。元はどうなってんの?

178 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:52:30 ]
ごめんなさい

戻り値の確認方法分からなくてクラスビューとかブレークポイントとかいろいろ試してました

179 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:05:14 ]
>>178

かわいいなお前w

180 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 14:21:13 ]
Zバッファと深度バッファというのはまったく同じと考えていいんですか
それとも、文書を読むときは微妙な差異に気をつけるべきですか


181 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:36:07 ]
DirectInputってライブラリに組み込んだほうがいいですか?

182 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:57:44 ]
何のライブラリよ



183 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:32:02 ]
DirectInput を使わないで、
やりたいことが全て出来てる or 出来るのだったら
組み込まなくていいんじゃね?

184 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:50:02 ]
リティアクス・ネマインズライブラリーです

物理演算なども組み込まれています

DirectX9対応です

185 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:57:28 ]
www.google.co.jp/search?q=%83%8A%83e%83B%83A%83N%83X+%83l%83}%83C%83%93%83Y%83%89%83C%83u%83%89%83%8A%81

186 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:00:59 ]
>>185

自作の物理演算ライブラリなので探しても出ないです

187 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:06:38 ]
>>181
ポールペンって絵を描くための道具に含んだほうがいいですか?

188 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:15:52 ]
俺の環境では、なくても動くから必要ないと思うな。
そのライブラリの中に使いたいものがあるなら別だけど

189 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:19:25 ]
DirectInputを使うかどうかは別として
入力インターフェースの提供は最優先だと思うが

190 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:24:57 ]
>>181
必要かどうかは仕様を知っている自分が判断しろ。
指示待ち人間で、他人の指示がないと動けないのなら、
他人にわかるようにきちんと仕様を説明しろ。
中途半端な情報で説明した気になるな。

191 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:26:57 ]
質問する場所を間違えてね?
内容を加味すると、もっとも適切な相手は占い師だろ。

192 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:27:43 ]
公開して他人に使わせようって言うんだろ?
変わった用途じゃない限りInputは付けておくべきだろ



193 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:30:27 ]
演算ライブラリならDirectInputどころか、
そもそもDirectXスレとは何の関係もない。

194 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:00:52 ]
誰か>>154再現しない?
再現しなかったって報告ならそれはそれでありがたいんだけど……

195 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:39:33 ]
引数を渡す方法が分かりません

inline void SetAmbient(D3DCOLORVALUE &col) { m_material.Ambient = col; };

CDXMaterial material;

material.SetAmbient();

1つ例を見せていただけませんか・・・


196 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:40:15 ]
MSNDでD3DCOLORVALUEについて調べたのですが解決方法が分からなくて・・・

197 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:46:42 ]
まずはC言語の勉強が先だ

198 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:50:45 ]
>>196

D3DCOLORVALUE col;
col.r = 1.0f;
col.g = 0.0f;
col.b = 0.0f;
col.a = 1.0f;
material.SetAmbient(col);

こんな感じ?
なんか別に変なところ無い気がするけど・・・

199 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:52:05 ]
参照渡しが解からんと言う意味ならC++の領分だが
そもそも質問の意図が良くわからんので
「日本語でおk」としかいいようがない

200 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:13:20 ]
もしかして入れても反映しないから悩んでるんじゃね?
光源計算してないときはLightEnableをオフに設定しないと表示されなくてだな

ってそんなこと聞いてない?

201 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 11:54:28 ]
例を見せてと言ってるんだし、>>198でよさげ・・・

202 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 11:55:20 ]
失敗してるんなら、自分のとこでどうやったらどうなったくらい書けば早いのにな。



203 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:07:08 ]
test

204 名前:198 mailto:sage [2009/01/19(月) 17:08:22 ]
D3DCOLORVALUE col = D3DCOLOR_COLORVALUE(, , ,);

でcolを引数で渡そうとしてました・・・

205 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:14:35 ]
やっぱり判らない。 ていうかお前が判ってないから無理。
さっさとCの初心者スレでソース*全部*晒して質問してこい。

206 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:16:02 ]
>> すいません勉強不足でした

ちなみに187さんの例で解決しました

207 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:34:24 ]
初期化したいってことか?
D3DCOLORVALUE colorValue = {0,0,0,0};
ってC/C++の話だな。参照(&が付いてる)の話だったらこれもC++


208 名前:デフォルトの名無しさん [2009/01/19(月) 22:29:43 ]
D3DXMATRIXA16
をnewした後にdeleteするとメモリーのバグを引き起こすんだが、解決策はないものか・・

209 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 12:35:27 ]
D3DXMATRIXを使うとか。

210 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 00:17:09 ]
そもそもバグがあるとは思えないが、
A16の実装自体たいしたことないし
自前の作れば?

211 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 08:46:50 ]
>>208
ヘッダファイルを見れば分かるけど、
A16系は16byteアライメントのためにnewをオーバーロードしてる。
ステップ実行でちゃんとこのnew/deleteが呼ばれてるか確かめてみれば?

#define new DEBUG_NEW

とかやってて死亡とかありがち。

212 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:02:37 ]
トゥルータイプ形式のアンチエイリアスがかかったフォントを表示するにはどのようにすればいいのでしょうか。
GetGlyphOutlineのAPI使ってもグレースケールのビットマップデータしか得られませんでした。



213 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:24:46 ]
そのグレースケールのデータを
α値としてテクスチャに書き込んで表示

参考
ttp://marupeke296.com/DXGSmp_No5_Font.html

214 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:29:34 ]
それって結局出力も一色になりませんか?
それとも半透明化するときに、うまい方法があるのでしょうか・・・

215 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:37:19 ]
グレースケールのフォントをα値にして半透明で描画すれば、それでちゃんと
アンチエイリアスかかるが、何を求めているんだ?

216 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:39:45 ]
>>214
言ってる意味が分からん
A8R8G8B8とかA4R4G4B4とかαチャンネル付きテクスチャを作る
RGBは表示したいフォントの色にして
Aの値にグレースケールの値を入れる

αの設定(テクスチャのα値*ポリゴンのα値)
デバイス->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
デバイス->SetTextureStageState(0, D3DTSS_ALPHAOP , D3DTOP_MODULATE );
デバイス->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );

217 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:40:38 ]
XPだと、ディスプレイのRGB出力の並びに応じて、ピクセル未満の補間をするために
文字のRGBを設定していると思うのですが、その情報をどのように手にすればいいのかと思いまして・・・

218 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:43:14 ]
ClearTypeをしたいなら、GetGlyphOutlineにはそういう機能はない。
GetGlyphOutlineは単純に大きめに描画して縮小したデータを返すだけ。

219 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:44:59 ]
それ以前にアルファチャンネルを理解してない悪寒

220 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:48:39 ]
端的にいうと、Color=AARRGGBB
             ↑ここでしょ
普通にフォントを表示することはすでにできています。

221 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:52:57 ]
じゃあ、そこの色(値)がどうRGBに影響するのか言ってみろ

222 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:10:06 ]
描画先 Ad Rd Gd Bd 描画元 As Rs Gs Bsとすれば
As/255=a 1-a=bとおいて
結合後 (Ad) (Rs*a+Rd*b) (Gs*a+Gd*b) (Bs*a+Gd*b)でしょ。
単にかけ合わせの比率じゃないんですか?



223 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:11:48 ]
ClearTypeは、CLEARTYPE_QUALITYかCLEARTYPE_COMPAT_QUALITYを
指定してフォント作って、GDIのテキスト描画機能を使うくらいしかAPIでの
サポートは無いと思う。

224 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:28:05 ]
文字の縁の外にむかって透明度を上げていけば
背景と馴染んでアンチエイリアスがかかるよね?って話
どういう段階で透明度を変えるかの情報としてグレースケールの情報を使う

225 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 21:58:00 ]
デバイスをリセットする時に、テクスチャとかも一度破棄しないといけない場合があるけど、
その場合って元の画像ファイルを再び最初から読み込むのがいいの?
それとも、アプリケーションの一時ファイルみたいなのに画像のビット列だけ保存してしまうとか、どうしてるの?

226 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 22:10:18 ]
状況に合わせて自分の好きなようにやれよ。
なんで何でもかんでもお伺いを立てて、逐次指示されないと行動出来ないんだよ?

227 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 22:12:07 ]
好きにすればいいんじゃない?
その辺の判断がつかないならおとなしくD3DPOOL_MANAGED使っとけ
DirectX10からデバイスロストなくなるみたいだし
いずれは気にしなくてよくなる領分だ

228 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:29:38 ]
>>DirectInputのDIJOYSTATE2のlYって下が+で上が-ですか?

229 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 05:51:55 ]
LightWaveでボーン仕込んでXファイルのエクスポータで出力した。
そのファイルを読み込んでウエイトの値を調べたらどの頂点も0だったんだけど
これって正常に出力されてないってこと?

230 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 06:31:05 ]
エクスポータがどこまで対応してるのか調べた方がいいんじゃないかな。
あとたぶんここじゃなくてLightWaveのスレで聞くべきじゃないかなそれは。

231 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 18:10:03 ]
// DirectInputオブジェクトを作成
if(FAILED(DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (VOID**)&m_pDInput, NULL))) {
return E_FAIL;
}

// DirectInputDeviceオブジェクトを作成
if(FAILED(m_pDInput->CreateDevice(GUID_SysMouse, &m_pKeyDevice, NULL))) {
return E_FAIL;
}

// デバイスをマウスに設定
if(FAILED(m_pKeyDevice->SetDataFormat(&c_dfDIMouse2))) {
return E_FAIL;
}

// 協調レベルの設定
if(FAILED(m_pKeyDevice->SetCooperativeLevel(hWnd, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND))) {
return E_FAIL;
}

// デバイスを取得する
m_pKeyDevice->Acquire();

この設定で初期化して実行したのですがこのアプリが起動しているときに他のウィンドウをクリック
すると強制終了してしまいます

原因エスパーしてみてもらえませんか
お願いします

232 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 18:11:51 ]
デバッグしなさい



233 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 18:56:16 ]
解決しました

return E_FAILで落ちてました

ありがとうございます

234 名前:デフォルトの名無しさん [2009/01/22(木) 21:23:31 ]
pc11.2ch.net/test/read.cgi/gamedev/1224074902/609-

235 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 21:33:01 ]
すくなくとも公式サイトのはちゃんと出力される

236 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 22:35:00 ]
229です
もしかして、D3DXLoadMeshFromXで読み込んだメッシュの頂点情報ってウエイトは含まれてないんですか?


237 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 22:44:34 ]
ファイル自体のウエイトはどうなってるんだ?


238 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:33:50 ]
>>237
ファイル見たら、ちゃんと設定されてました
ってことは読み込みがだめなのか・・・

239 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 00:18:05 ]
>>238
スキンメッシュは専用の関数が合ったはずだが

240 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 09:09:25 ]
\(^o^)/ I'm a dreamer! ひそむパワー!

                      ヘ(^o^)ヘ
                        |∧  私の世界
                    /  /
                (^o^)/
               /(  ) 夢と恋と不安で出来てる
      (^o^) 三  / / >
\     (\\ 三
(/o^)  < \ 三 でも想像もしないもの
( /
/ く 隠れてるはず!

241 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 09:10:16 ]
DirectInputでマウスやキーボード使うなよ
てかXInputの時代

242 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 12:23:34 ]
Direct3Dで複数のウィンドウに同一のテクスチャを表示したいのですが、
この場合、ウィンドウごとにデバイスを作成して、
デバイスごとにわざわざ同じテクスチャを何度も読み込むしかないのでしょうか。
・一つのテクスチャを複数のデバイスで共用する
あるいは
・一つのデバイスで複数のウィンドウに描画する
というようなことは出来ないのでしょうか。どなたがご教示下さい。




243 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 12:28:45 ]
DirectX3D始めようと思うんですが、なにからすればいいですか?
どのぐらいの期間である程度使えるようになってくるんですか?

244 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 12:35:54 ]
なにが分かっていないのかも分かってない人間に
ものを教えることは非常に難しい
とりあえず出来る範囲で自分でやって
具体的な質問が出来たときにもう一度おいで

245 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 13:12:03 ]
>>243
sample動かしてソースを眺めてあきらめろ

246 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 13:24:42 ]
もう一度おいでとか言われるとつらい
あきらめろとか言われると燃える
しかしthx

247 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:05:04 ]
>>242よく知らんけどデバイスの画素フォーマットが同じなら使い回せんじゃねーの

248 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:14:03 ]
1. 開発環境をダウンロードする。
2. 現在の技量と熱意次第だね。とりあえず、そんなことも判らない君は技量は初学者レベルですぐ飽きると思うので 100年はみておこう。


249 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:19:22 ]
D3DPRESENT_PARAMETERS で hDeviceWindow をとっかえひっかえして reset
すればいけるんじゃねーの?

あ、そうすると、テクスチャいちいち読み直す必要があるのか。だめじゃん。

250 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:25:53 ]
>>242
つCreateAdditionalSwapChain

251 名前:249 mailto:sage [2009/01/23(金) 14:30:40 ]
なんだ、Present の第三引数を描画したいウィンドウにすれば良さそうじゃん。

252 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 15:31:21 ]
IDirectXFileから、ID3DXFileに変わって、
保存方法の流れがヘルプにかかれなくなったこともあって、
なんかアホみたいに使いにくくなっている気がするんですけど、
IDirectXFileData::GetData的なものは諦めるとしても、
IDirectXFileSaveObject::SaveTemplatesの様な動作をさせるコトてできないんですか?



253 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 16:47:47 ]
質問です。
何か手順の間違いの指摘や、避ける方法はないでしょうか?

下記のように、すでにAnimationSetに登録されているAnimationを削除した後、新たにアニメーションを追加するとメモリーリークするようです。
DirectXの初期化と、下記コードのみの最小構成でも起こりました。

下記ですと
D3DX: MEMORY LEAKS DETECTED: 4 allocations unfreed (54 bytes)
54byteということで、"1\0"で2バイト、RSTそれぞれを合計すると20+16+16=52ですから、丁度アニメーションがそのままリークした換算となります。
これは数を増やしてみたり、渡すRSTの量を変えたりしても同様の結果がでました。

削除だけ。追加だけという場合はリークせず、削除&追加をした時のみリークするようです。
察するに、削除といっても内部ではカウンターを減らしているだけで、追加の際「delete せずに上書きしてしまう」ことによるライブラリ側のケアレスミスな気がします。

Microsoft DirectX SDK (March 2008)
Microsoft DirectX SDK (November 2008)
両方で再現しました。

以下コードです。
CComPtr<ID3DXKeyframedAnimationSet> test;
D3DXCreateKeyframedAnimationSet("Test", 4800, D3DXPLAY_LOOP, 2, 0, NULL, &test);
D3DXKEY_QUATERNION r; // 中身を入れていませんが、中身をきちんとした値にしても結果は同じでした
D3DXKEY_VECTOR3 s;
D3DXKEY_VECTOR3 t;
HRESULT hr;

hr = test->RegisterAnimationSRTKeys("1",1, 1, 1, &s, &r, &t, NULL);
hr = test->RegisterAnimationSRTKeys("2",1, 1, 1, &s, &r, &t, NULL);
hr = test->UnregisterAnimation(0);
hr = test->RegisterAnimationSRTKeys("3",1, 1, 1, &s, &r, &t, NULL);


254 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 16:50:08 ]
追加情報です。
どうやらリークするのは、上書きした側の "3" のアニメーションのようです。
"3AAAA"など、最後のアニメーションの名前を長くしたところ、それにあわせてリーク量が増えました。

つまり「新規登録したアニメーションはちゃんとdeleteするが、上書き登録したアニメーションはdeleteしない」という動きのようです。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<141KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef