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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:55:56 ]
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part16 【C】
pc11.2ch.net/test/read.cgi/tech/1202634347/

671 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:21:37 ]
もしくは、点を打つのが激重なグラボ

672 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 19:07:07 ]
俺のディスプレイ
最低解像度800x600だった
でも、640x480できたお

673 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:03:27 ]
>>671
なんだその存在価値のなさげなグラボは

674 名前:デフォルトの名無しさん [2008/06/04(水) 00:19:51 ]
自分で定義した頂点情報をDrawPrimitiveで表示するときや、
読み込んだXファイルをDrawSubSet()で表示するときなどにmaterialを設定しても描画に反映されません

D3DXCreateSphere()等で取得したメッシュをDrawSubSet()する場合は反映されます
materialを有効にするにはSetMaterial()以外に何か設定が必要なのでしょうか?

675 名前:674 mailto:sage [2008/06/04(水) 01:53:23 ]
すいません、自己解決しました
D3DRS_DIFFUSEMATERIALSOURCEでマテリアルを参照するよう設定するのを忘れていました

676 名前:デフォルトの名無しさん [2008/06/04(水) 19:25:36 ]
ビルドは上手くいくのに実行するとすぐに終了されてしまいます
DirectX 9.0 SDK Update (Summer 2003)
に変えてからこうなりました
以前はSummer 2004を使っていたのですが不具合が色々あったので変えました

もしかしたらDirectXの設定がおかしいのかもしれませんわかる方いたら教えていただきたく思います

677 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:36:42 ]
ブレークポイントしかけて、ステップ実行してみれば?

678 名前:676 mailto:sage [2008/06/04(水) 19:58:37 ]
すみません
BCC Developerを使っているのですがブレークポイントの設定の仕方がわかりません…

679 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:01:10 ]
>>678
VC(正規OSならタダでダウンロード可能)にしてやってみるか
printfをおきまくれ



680 名前:676 mailto:sage [2008/06/04(水) 20:10:01 ]
VCは以前インストールしようとしたのですが
「サーバとの接続を再度確立します」と表示されてインストールできなかったのでやめました

自分で組んだプログラムではなく、サンプルをダウンロードして実行しようとしただけなのでコードに問題は無いと思います
Summer 2004で実行したときは大丈夫でしたが
Summer 2003に変えてからおかしくなりました

おそらくDirectXの設定を間違えていると思うのですが…


681 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:14:09 ]
なんだバージョンダウンかよ
DX関数に必要なDLLがないんじゃね?

682 名前:676 mailto:sage [2008/06/04(水) 20:29:59 ]
診断ツールではsystem.dlがないとありましたが
調べてみるとそこまで必要なものではないようでした

サンプルがSummer 2003を対称にしているのでDLLが足りないわけでもないと思います

683 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:34:51 ]
>>680
IE7か割れOSだろ?

684 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:35:37 ]
BCCはVCといろいろ違いがあるんで
BCC対応のライブラリを作るなり取ってくるなり手間が必要だったような気がするが

685 名前:676 mailto:sage [2008/06/04(水) 20:38:01 ]
firefoxですがIE6が入ってます
OSはノートの正規品です

もともと古いPCなのでグラボの性能が低いのが原因かもしれませんが
Summer 2004で実行できたので…

686 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:57:38 ]
>>685
いくつか関数の仕様が変わったもんがあったような気がするけどそこは直した?
ビルド通らないと思うけど

687 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:01:17 ]
2004のサンプルを2003で動かそうとしてんだろ?
足りないもんとかあるんじゃね?
変なコントロールまわりなんかやけに9.0初版のときより豪勢になってるし
バージョンダウンで動かそうとするのなんて時間の無駄じゃね?

688 名前:676 mailto:sage [2008/06/04(水) 21:06:24 ]
ビルドは通ります
エラーもありません

サンプルは2003用のです
2004からコンパネでDirectXが設定できなくなっていたので
2003にしました

689 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:21:30 ]
最終奥義「クリーンインストール」



690 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:07:03 ]
実行してすぐに落ちてるんなら普通に戻り値調べたらなんか出てそうだけどな
ちゃんとエラーチェックしてる?w

691 名前:デフォルトの名無しさん [2008/06/05(木) 01:33:17 ]
CとC++ってどう違うの?

692 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:33:50 ]
CのインクリメントがC++

693 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:47:21 ]
サンプルは環境によって落ちるものは落ちる、市販のゲームとは違うよ
サンプルの実行に拘る理由がよく分からない

694 名前:デフォルトの名無しさん [2008/06/05(木) 03:34:04 ]
質問です.
MPEG-2を取り扱うアプリケーションを作成したいんですが.
Directshow()で可能だとは思うんですが.
マニュアルはありますか?


695 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 03:38:32 ]
>>693
言ってることも割れ臭いし
目的もなく2003だしで正直胡散臭いよねw

696 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 04:39:25 ]
>>694
英語で良いならWindows SDKのドキュメントにある
日本語ならDirectX9 SDKの古いドキュメントがまだMSからダウンロードできたはず
場所の検索は自分でやってネ

697 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:21:39 ]
DirecctX SDK(Mar 2008)とVS2005を使っています。
使っている参考書は
www.amazon.co.jp/dp/4839912475/
です。
この本ではDirectXのアプリケーションウイザードがVSに追加されているのですが、私の環境では追加されませんでした。
VS→SDKの順にインストールしました。
最近のバージョンだとDiretctXのアプリケーションウイザードは削除されたのでしょうか?

698 名前:676 mailto:sage [2008/06/05(木) 19:38:46 ]
2004 Summerにしたら実行できました
2003にしようと思ったのもコンパネから設定変えたかっただけなのでこのまま2004でいこうと思います

DirectX勉強してるサイトのサンプルだったんで何とか実行したかったんです
原因はわかりませんでしたが色々とありがとうございました

699 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:47:21 ]
>>697
結構前に廃止された
たぶん2004年のどっか

>>698
最近のは確かにコンパネに設定が追加されなくなったが
DirectX UtilitiesのなかにDirectX Control Panelってものがあってだな
昔コンパネから設定できたことと同じことができるんだぜ?



700 名前:676 mailto:sage [2008/06/05(木) 19:55:53 ]
>>699
教えていただきありがとうございます
ただ、2004にはないようです
最新のはPCの性能的に難しそうなのでこのまま我慢することにします

ちなみに5年くらい前のpentiumVです

701 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:15:42 ]
シェーダーを使ってトゥーンシェード(逆引き500に載ってる方法)をやろうとしているのですが、
一部を除き真っ黒になってしまいます。
どういう時にこうなるのでしょうか?

702 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:35:18 ]
ごめんオレエスパーじゃないし

703 名前:デフォルトの名無しさん [2008/06/05(木) 23:45:32 ]
DirectPlayがサポート打ち切られたとかマジですか

704 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:56:33 ]
DirectX SDKドキュメントのなんと1ページ目にDirectPlay is deprecatedの一文がッ!

705 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:00:11 ]
2007年6月あたりのSDKがサポートラスト。
ランタイムは当分のこるだろうけど。

706 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:18:28 ]
9cはもう終わりか?

10の時代なのか?

707 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:55:02 ]
9cの時代のままです

708 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 03:23:42 ]
10はVISTA限定という暴挙にMSが出たからね
おかげで10の普及は相当に遅れるだろうね

709 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:22:26 ]
XPみたいに皆にブーブー文句言われながら8年後位には普及してるよ



710 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:28:15 ]
そう思っていた時期がMeにもありました

711 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:30:34 ]
細かいバージョンを見れば、MSは失敗作をけっこう出してるよ
そしてすぐに無かったことにしている
SEとかCEとか3.0とかMMCとか、NTとか
Vistaもそんな感じ

712 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:34:44 ]
そりゃXPよりブーブーいうだろ
基本的に全てのアプリはDirectXで組んでくださいっていうスタンスなんだから

713 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:38:04 ]
              __
           ,...-‐:"´:.:.::.:.::.:.``:‐,,、
      ,.-..,、/:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:`、  _
     /:.:.:./:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:';;´::.:.l
    l:.:.:.:.:.l:.:.:.:.:.:.:.:.:.:/|:.:.:.:.:.:.:.:.::l、:.:.:.:.::.:.:.:.:l:.:.:.::|
.    |:.:.:.:.:l:.:.:.:.:.:.:.::.::/ |:.;:.:.:.:.:.:.;l:l l:.::l;:.:.:.:.:.:l:.:.:.:;l,
    |:.:.:.:.:.|:.:.:.:.:.::l:.:/ |:|.l:.:.:::.:.:l|l  |:.:ll:.:.:::.::.ll:.:.:.::|i
.   |:.:.:.:.:l|:.:.:.::.::l.|/` 、|l l:.:::./l _,,.-l:j´l:.:.:.:.:| l:.:.:.:lii
   l:.:.:.::.:l i/l:.:.:l |l‐ェ-ュ,` l:://´ェ--,-,.l:.:.:lヽ l:.:.::.l.ii
.   l:.:.:.:.:;l l (l:.:.:.lヽゝ_ノ  '"  ゝ_ノノ.l:.::l,l l .|;:.:.:.l.ij 
   l:.:.:.::.lij `ゞ::.:l ,、,       ∧/l:.:.l/ j|:.:.:.:l.ii
.  |:.:.:.:.:|.ii   ';:.:l、     '   .  ,l::/   l.l:.:.:.l.i|
.  |:.:.::;.;| ii   ヾl >、.   0   , イl:/、   | |:.:.:.l li
.  |:.:.:.|i| ji,.-ィ'´l `l ` ‐-‐ '´  l  l``l‐-l、|:.:.:.l ij
  |:.:.:.:|i|'´/ l  ヽ `、      /  /  l  .l |:.:.:.| i|
 すとーっぷ。>>712は素早く変な空気を作るねぇ…
 >>709より不安な子を見つけたよ。

714 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:02:40 ]
DX9、C++でのテクスチャに関する質問です。
テクスチャのクラス(CTexture)を作り、コンストラクタに画像ファイルのパスを渡してクラス内でテクスチャ(Texture)を生成しています。
CTextureのデストラクタでTextureを削除するようにし(delete Texture)、メモリの解放を試みているのですが
その状態でCTexture* で作ったオブジェクトを削除すると、ヒープが壊れているというエラーが出ます。
多重deleteでエラーが出ることは調べてわかったのですが、
if(Texture) delete Texture;
としているにも関わらずエラーが出るので困っています。
どのようにしてテクスチャが占有したメモリを解放すればよいのでしょうか?

715 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:18:42 ]
>>714
見事にスレ違いだ。
そして君のやりたいことは多分こうだ。

if (Texture) { delete Texture; Texture = NULL; }

716 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:40:27 ]
>>715
できました、ありがとうございます!!そしてごめんなさいでしたァ!!

717 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 05:40:52 ]
delete Texture;
Texture = NULL;

これでおk
delete NULL;は合法
ま、どのみちスレチ

718 名前:デフォルトの名無しさん [2008/06/07(土) 12:22:05 ]
www.h2.dion.ne.jp/~takusoft/directx8/d3d/chapter1/sec07/d3d_07.html
のサンプルプログラムを参考にお勉強しているのですが
画面の頂点情報を動的に変えるために
頂点バッファを確保する箇所

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(g_Vertices), (BYTE**)&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );
g_pVB->Unlock();

を処理で何回も経由させる場合
以前に確保したメモリはどのように解放してあげれば良いのでしょうか?
よろしくお願い致します。

719 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:33:41 ]
確保も何もそれはロックしてるだけだと思うが・・・。
あと頻繁にロックするならDYNAMICで作ってDISCARDでロックしろ



720 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:53:13 ]
なるほど、メモリのロックという概念をよく分かってませんでした
動的に確保してるわけでは無いんですね
同じところに何度も上書きしてる感じなのかな?
DYNAMIC と DISCARD は調べてみます
ありがとうございました

721 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:07:06 ]
Direct3DのX-ファイルとテクスチャに関しての質問なんですが。
Xファイルのモデルを作って、それにプログラムでテクスチャ座標を設定して一つのアイテムを作成するのではなく。
モデリングソフトでモデルを作ってる段階で、視覚的にテクスチャを設定して、その情報が入ったXファイルとテクスチャを読みこませて
テクスチャ座標をいちいち設定しなくてもアイテムを表示させたりって出来ないんですかね?

なんだか大体の本はモデルの読み込みと表示は説明してても、モデルの作成からテクスチャの設定部分が余り説明されてないので分かり辛い…
DirectXで使うことを前提とした3Dの本とかってないですかね?

長々と読み辛い文章スマソ。

722 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:58:36 ]
メタセコイアとかで普通にやればそうなると思うんだけど

723 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:02:06 ]
>>721
キミが求めている情報を知りたいのならプログラムの本ではなくデザインの本を買うべきだよ。
DirectXだのOpenGLだと自前レンダラーだの関係なくそれはグラフィックデータの話だ。

724 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:28:31 ]
>>721
普通にモデリングソフト触ればわかるだろが

ちなみにXファイルの中にマテリアルってもんがあって
そのなかにたくさんテクスチャ設定できるようになってるじゃん

構造でいうと

Xファイルx1
  メッシュxN
   マテリアルx1
     テクスチャx1
   モデルのUVx1

な感じになってるのか?(バンプ(マルチテクスチャ2枚以上考慮外)とか考えないと)
Xファイル1つにメッシュがたくさんあって
メッシュ1つにつきマテリアルとUVが1つずつあって
マテリアル1つにつきテクスチャが1つあると・・・

だから、Xファイル1つにテクスチャは複数ある構造がいまのXファイルなわけよ

725 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:38:42 ]
メッシュに対するマテリアルの数に制限はないぞ

726 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:45:35 ]
>>725
そうだっけ?
あーでもそうなってる気もするな

でも実用性なくね?
どの頂点がどのマテリアルか決定しなきゃいけないから
読み込むときにマテリアル単位でメッシュわけなきゃいけないな
この辺はモデリングソフト次第って感じ?

727 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:12:08 ]
モデリングの段階でテクスチャやマテリアル毎に
わざわざメッシュを分けて作る方が現実的じゃないだろ。

実際D3DXMeshでも属性テーブルって形式でマテリアル毎に分割して描画するようになってる。


728 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:25:37 ]
XFileに組み込んだマテリアルやテクスチャって1回XFileから読み込んで
デバイスにセットする方法しかないの?

729 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 18:27:13 ]
デバイスにセットしないでどうやってレンダリングするのかと



730 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 18:50:41 ]
>>727
メッシュ1つのマテリアル毎にテクスチャが違うって状況か?
あんまり違いがないならメッシュ1つに付きテクスチャ1枚な
俺の経験だとそんなモデルは重過ぎて動かねぇ

まあ、いまソースみたら俺もできるように組んであるけどなw
スキンメッシュでかなり苦労してた記述がみられるw

スキンメッシュのデータはマテリアルごと描画できるデータになってねぇのなw
抜けてんだな>Xファイルの担当者

731 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:00:24 ]
>>730
何を言ってるかわからねえがスキンメッシュだろうなかろうが同じように描画できるが・・・。
顔の表情とかをテクスチャ差し替えでやろうと思ったら顔だけテクスチャ別にするだろjk

732 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:31:24 ]
>>731
ボーンと頂点を結びつけるインデックスがそうはなってないと思ったが

>>731
メッシュで分けちゃってるな俺んとこのデザイナさん
もちろんプログラムではなんでもできるようにしてあるが

733 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:42:08 ]
>>731
インデックスとマテリアルは関係ないじゃろ。
最終的にはポリゴン1つ1つにマテリアルのインデックスが振られているんだから
それを使ってマテリアル毎に分解して再構成するだけ。
っていうかD3DXで読み込めば全部やってくれるけんど。

734 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:42:37 ]
>>733
>>731じゃねえ>>732だ。

735 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:14:17 ]
>>733
>それを使ってマテリアル毎に分解して再構成するだけ
この作業が面倒臭いって話だな
インデックスがメッシュごとだから、自前で読み込むときは
1回マテリアルごとに直す必要があるな

736 名前:デフォルトの名無しさん [2008/06/07(土) 22:22:43 ]
DirectX End-User Runtime Web Installer
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en
DirectX End-User Runtimes (June 2008)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=822640ab-0983-4c41-9c70-632f6f42c557&DisplayLang=en
DirectX Software Development Kit
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=519aae99-b701-4ca1-8495-39ddde9d7030&DisplayLang=en


737 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:52:14 ]
>>736
そんなの貼っても割れ厨にはどうせ見れないぞw

738 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:54:40 ]


739 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:59:26 ]
ああ、そういう事か。
犯罪者の都合は考慮しないよ。



740 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:07:03 ]
>>738
ランタイムのウェブインストーラーや開発キット、ヘルプなんかは
ウィンドウズの正規OSでないと落とせなくなった
なのでたまにこのスレで「落とせません」とか「見れません」とか
「わかりません」とかいう奴はほぼすべて割れ厨

741 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:11:28 ]
PC買えばOS付いてくるのに割れ厨って意外と多いのな

742 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:24:44 ]
オンラインゲームをやってるんですが
directxを前のverに戻したらパフォーマンスって下がりますか?

743 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:51:37 ]


744 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 15:05:13 ]
安全に Release メソッドを呼ぶマクロとして
SAFE_RELEASE のようなものを見かけますが、

// safe release
#define RELEASE(p) ( (p) ? ( (p)->Release(), (p)=NULL ) : (0) )

このマクロで何か問題ありますか?
参照を使った関数だと BCC に注意されたので

745 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:17:37 ]
>>744
翻訳しないで原文ママのエラーメッセージを。

746 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:35:36 ]
DirectShowを使ってGUIのメディアプレイヤーを作っているのですが、
IMediaSeeking::GetDurationで再生時間を取得すると、
3分33秒より長いファイルはオーバーフローして負の値になってしまいます。
IMediaPosition::get_Durationで取得しようとすると、E_NOTIMPL(実装されていない)が帰ってきます。
3分33秒より長いファイルの再生時間を取得するにはどうすればいいのでしょうか?

開発環境はVisual Studio 2005 Pro、言語はCです。

747 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:37:54 ]
最小のコードくらい出せカス

748 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:38:00 ]
CComPtr使いなさい

749 名前:746 mailto:sage [2008/06/08(日) 17:49:53 ]
>>747
IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
IMediaSeeking *pSeek;
IMediaPosition *pMediaPosition;
REFTIME length;
REFERENCE_TIME TotalTime;

CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
   IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pSeek);
pGraph->QueryInterface(IID_IMediaPosition, (void **)&pMediaPosition);

pGraph->RenderFile(FileName, NULL);

pMediaPosition->get_Duration(&length);
pSeek->GetDuration(&TotalTime);

こんな感じです。



750 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:43:53 ]
REFERENCE_TIME は普通に使ってる分にはオーバーフローしないが
どこかで int にキャストされてるんじゃね
SetTimeFormat 指定しておいたほうがいいんじゃねえ

751 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:34:30 ]
DirectMusicを最近扱っているのですが、
GetGlobalParam(GUID_PerfMasterVolume, reinterpret_cast<void*>(&V), sizeof(V))で
何故かE_INVALIDARGが返ってきて音量の取得ができません。
不正な引数とありますが、どれが不正な引数なのでしょうか?(Vはlong型です)

ちなみに、この処理を行う前にパフォーマンスの作成、パフォーマンスとシンセサイザーの初期化、
ローダーの作成を行っています。

752 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:41:48 ]
>>751
msdnによると以下のようにあるけど、SetGlobalParamは使用済み?

>SetGlobalParam が rguidType について一度も呼び出されたことがない場合、このパフォーマンスが現在処理している
>グローバル データ リストの中に、rguidType がない可能性がある。その場合、このメソッドは E_INVALIDARG を返す。
>つまり、どのパラメータにも、GetGlobalParam を使って取得できるデフォルト値があると想定しないこと。



753 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:47:46 ]
質問です
ttp://richa850.hp.infoseek.co.jp/programming/dx9_01.html
ここを参考に、後述のプログラムを書いたのですが、少なくともRADEON9600SEで画面がおかしくなります。
正しい方法はどうやればいいのでしょうか?
・APIリファレンスを読んだところ、MultiSampleTypeなどは以前のものと一緒でなければならないとあったので、上記ページでは決め撃ちになっているのを修正しました
・画面がおかしくなるを具体的に言うと、テクスチャが壊れていたり(正しいテクスチャの一部が緑や白のペンキでラクガキでもされたように塗りつぶされてる)、まったく描画されなかったりです
・old.Widthが中途半端な値(672とか)だったりすると、OSごと巻き込んで落ちます。(PC再起動がかかります)


D3DSURFACE_DESC old;
CComPtr< IDirect3DSurface9 > pCurrentDepthStencil;
pDev->GetDepthStencilSurface(&pCurrentDepthStencil);
pCurrentDepthStencil->GetDesc(&old);

//  新しく作ったテクスチャーの大きさと、現在の深度ステンシルの大きさを比較.
if ((old.Width < descNewTexture.Width) || (old.Height < descNewTexture.Height))
{
  // 深度ステンシルを作り直す。
  CComPtr< IDirect3DSurface9 > pNewDepthStencil;
  pDev->CreateDepthStencilSurface
  (
    __max(descNewTexture.Width, old.Width),
    __max(descNewTexture.Height, old.Height),
    old.Format, old.MultiSampleType, old.MultiSampleQuality, TRUE, &pNewDepthStencil, NULL
  );
  pDev->SetDepthStencilSurface(pNewDepthStencil);
}
// 上記を行なっただけではまだ問題はおこらず、下記を行なうと発症します。
// 上記だけ、もしくは下記だけだと問題はおきません。
pDev->GetSwapChain(0, &pSwapChain)
pSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pRenderTarget);
pDev->SetRenderTarget(0, pRenderTarget);

754 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:56:19 ]
>>752
ありがとうございます、使用しておりませんでしたorz
デフォルト値がないのですね、なぜこんな仕様になっているのやら…orz

755 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 08:10:40 ]
変数でも何でもとりあえず初期化しやがれとしか言い様が無い

756 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:45:36 ]
Ver9あたりからボタンとかテキストボックスのような
コントロールのようなものが使えるようになってるみたいなんだが
あれってなんて名前でしょうか?

使い方書いてあるHP検索したいわけだが
なんて検索したらいいかわからんのです


757 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 01:16:45 ]
DXUT

758 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:35:52 ]
dxutに未来はあるのでしょうか?

759 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:50:35 ]
モデルの、パーツだけ別のモデルに差し替えることって
なんという言葉でしたっけ



760 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:36:07 ]
void PartsDakeSashikae_to_OtherModel(void) { return; }

761 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:24:56 ]
#define PDtoOM PartsDakeSashikae_to_OtherModel
PDtoOM();

762 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 14:05:08 ]
>>760-761
面白いと思ってやってるのか?

763 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:35:41 ]
自前の画像を使ってボタンを作るとき、レスポンス(押しっぱなし)
の頻度をループ数とタイマーのどちらで制御すべきだと思いますか?

764 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:48:27 ]
タイマー
ループにして何か良いこと有るの?

765 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:38:24 ]
ループだとFPSに依存するから怖いよ

766 名前:763 mailto:sage [2008/06/14(土) 03:46:37 ]
thx
やっぱりそうなんだ。
処理落ちすることって前提なのね。

767 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:33:41 ]
メッセージで処理しろよ。つーかwinプログラミング覚えろよ。

768 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:52:37 ]
軽いゲームならfps依存でかまわんと思うよ。
ただ、その処理をカウンタで実装したところで
タイマーと比べて簡単になるとは思わんが。

769 名前:767 mailto:sage [2008/06/14(土) 20:46:38 ]
>>767
プロシージャのタイマーより
クラス内でtimeGetTime()使ったほうがいいだろ?



770 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:56:25 ]
変な人がおる・・・

771 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:19:24 ]
IDirect3DBaseTexture9から画像サイズって取れますか?
IDirect3DTexture9じゃないです






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

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

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