メルマガ:あゆしゃのC言語プログラミング
タイトル:あゆしゃのC言語プログラミング(Vol.616) DX2 デバイスの作成  2005/11/28


/*========================================================*/
    <<<あゆしゃのC言語プログラミング>>>
/*========================================================*/
 第616回 DX2 デバイスの作成
 発行    2005年11月28日(月曜日)
 発行数   約2500

{magclick}
/*========================================================*/
 はじめに ( 決り文句 )
/*========================================================*/
・このメールマガジンは、主にまぐまぐさんから発行しています。
・ジャンルは、マルチメディアのプログラム、C言語です。
・横60文字で作成し、インデントは大抵半角スペース4つです。
・ここで扱うプログラムは、C言語と半光年以内のものです。
・登録解除は、メルマガのホームページでお願いします。
・過去ログはバックナンバー(下欄参照)を活用して下さい。
・内容は私が感じたもので、最新の技術も、へたれもあります。
・わかりやすさを優先させる為、たまに嘘があるかもしれません。

/*========================================================*/
 ご挨拶
/*========================================================*/

 こんにちは。あゆしゃです。

 少し時間が空いてしまいました。

 別に、巨像をやっていたわけでは、

 ありますが、

 それ以上に夢中だったものがあったのです

 実は、巨像を購入した日に、もう1つゲームを買っていました。

 それは、

★マリー+エリーのアトリエ

 です!

 懐かしいなぁと思いつつ、ついつい依頼をこなす日々を送って
いました。

 メルマガに戻ってきたのは、依頼が破綻したためですが、

 それはともかく。

{magclick}
/*========================================================*/
 今回のお題  << DX2 デバイスの作成 >>
/*========================================================*/

 さて前回、DXの最小のサンプルを紹介しました。

 今回は1歩進んで、デバイスの作成です。

 前回作成したのは、DXのオブジェクトであり、本体です。

 本体なので、それ自体は絶対に必要ですが、しかし、

 それ自体では、何もできません。

 ポリゴンを1つ表示することもできないのです。

 ポリゴンを表示したりするには、すべて、デバイスを通して
行います。

/*========================================================*/

// Direct3Dオブジェクトの取得
LPDIRECT3D9 pD3D = Direct3DCreate9( D3D_SDK_VERSION );

 デバイスの作成には、前回作成したDXオブジェクトのポインタを
使用します。

// デバイスの作成
LPDIRECT3DDEVICE9 pDev = NULL;
pD3D->CreateDevice(
    D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
    D3DCREATE_HARDWARE_VERTEXPROCESSING, &dParam, &pDev );

 CreateDeviceが、デバイスを作成します。そのままですね。

 最後の引き数で、作成したデバイスを受け取ります。

 残りの引き数は5つ。

/*========================================================*/
D3DADAPTER_DEFAULT

 とりあえずデフォルトを指定します。これ以外は指定しません。

/*========================================================*/
D3DDEVTYPE_HAL

 デバイスタイプに、HALを指定します。

 ハルとは、ゲームの学校でも宇宙船のコンピュータでもなく、
「ハードウェア・アクセス・レイヤー」のことで、ハードとの
面倒なアクセスを受け持ってくれるいい人です。

/*========================================================*/
hWnd

 DXを表示するウィンドウハンドルを指定します。

 どんなウィンドウであっても、ハンドルウィンドウを持っている
画面であれば、好きな場所に好きな大きさでDXの画像を表示する
ことができます。

/*========================================================*/
D3DCREATE_HARDWARE_VERTEXPROCESSING

 クリエイト・ハードウェア・バーテックス(頂点)・
プロセッシング(処理)、ということです。

 バーテックス(頂点)は、ポリゴンの頂点を意味しています。

 その演算処理をハードウェアで行うデバイスを作成する、
という意味です。

/*========================================================*/
&dParam

 そのほかの設定を構造体で渡します。

 そのほかの設定は、このように用意します。

// 宣言 ローカル変数でOK
D3DPRESENT_PARAMETERS dParam;
ZeroMemory( &dParam, sizeof( dParam ) );

// ウィンドウモードを指定する
// フルスクリーンよりもウィンドウの方が簡単
dParam.Windowed = TRUE;

// 垂直同期を狙って再描画する
dParam.SwapEffect = D3DSWAPEFFECT_DISCARD;

// 裏画面数1
dParam.BackBufferCount = 1;

// ディスプレイモードのフォーマットを指定する
D3DDISPLAYMODE dmode;
pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &dmode );
dParam.BackBufferFormat = dmode.Format;

// デプスバッファ(いわゆるZバッファ)を使用する
dParam.EnableAutoDepthStencil = TRUE;

// デプスバッファの種類。16らしい。
dParam.AutoDepthStencilFormat= D3DFMT_D16;

{magclick}
/*========================================================*/
 さいごに
/*========================================================*/

 昔のアトリエはイベントが少ないんだなぁと、感心しました。

{magclick}
/*========================================================*/
 次回予告
/*========================================================*/

 次回は11月30日(水曜日)に、第617回をお送りします。
 お題は「DX3 デバイスの作成2」

 実は、デバイスは1種類ではありません。

 お楽しみに!

/*========================================================*/
 最後の決り文句
/*========================================================*/
 このメールマガジンは、まぐまぐさんから発行しています。
 このメールマガジンを解除したい場合は、まぐまぐさんをご利用
ください。このメルマガのまぐまぐアイディーは最後にあります。
 このメールマガジンには広告が挿入されていますか?
 このメールマガジンの内容に文面の引用はありませんか?
 めーらっくすの場合はめーらっくすの利用方に従ってください。
 このメールマガジンの内容の、転用、流用、宣伝、リンク、
精霊の光球は時間かかるなぁ。。 なんて大歓迎です。

{magclick}
/*========================================================*/
 
/*========================================================*/

発行者 あゆしゃ

ホームページ::あゆしゃの世界
http://ayusya.hp.infoseek.co.jp/

ご意見・ご感想・ご質問メール
mailto:ayusya@flamenco.plala.or.jp

まぐまぐ::アイディー
0000020674

まぐまぐ::登録と解除
http://www.mag2.com/m/0000020674.htm

まぐまぐ::バックナンバー
http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674

めーらっくす::アイディー
MM3E1AEE285AB4F

めーらっくす::登録と解除
http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F

めーらっくす::バックナンバー★最近のものならこちらが便利★
http://www.mailux.com/mm_bno_list.php?mm_id=MM3E1AEE285AB4F

ブラウザの閉じるボタンで閉じてください。