DirectXプログラミング

ActiveBasicはDirectXを扱うアプリケーション(以下DirectXアプリ)を作成することができます。DirectXとは、Microsoftが提供する拡張APIセットの1つであり、マルチメディア関連の機能が強化されています。DirectXを利用すれば、ハードウェアを直接的に制御する高速アプリケーションを(家庭用ゲーム機と同レベルのソフトウェア)を開発することができます。

現在のActiveBasicにはDirectX9.0に対応するインクルードファイルが搭載されています。



DirectXプログラミングの方法


DirectXアプリを開発するとき、プログラマーは、下の2つの方法を選択することができます。

1. ABDX(ActiveBasic with DirectX library)を利用した開発

ProjectEditorの機能を利用すれば、DirectXアプリ開発に最低限必要なコードを生成することができます。初期化及び終了処理などはすべて自動的に生成されるため、プログラマーは3Dオブジェクトに対するコーディングのみを集中して行うことができます。また、COM操作を意識しないコーディングを行えるのも1つの特徴です。特に理由がない限り、こちらの手法を選択することをお勧めします。

このヘルプファイルでは、「ABDXを利用した開発」にターゲットを絞り、解説を行っています。

2. COM呼び出しを任意的に行うフルオリジナルコードでの開発

DirectXを扱うためのインクルードファイルを取り込み、自前でコーディングを行う手法です。COMインターフェイスの生成/破棄/呼び出しのレベルから、すべてのコーディングはプログラマーに任されます。DirectXアプリ開発経験者、COMベースでDirectXを扱いたい方、DirectX9.0以外のバージョンのDirectXを扱いたい方はこの手法で開発を行うと良いでしょう。

COMベースのDirectXについてのヘルプは、MSDN(http://www.microsoft.com/japan/msdn/library/)でお調べください。



DirectXプログラミングをするための準備


DirectXプログラミングを始める前に、下の項目をチェックしておきましょう。

・DirectX9.0ランタイムライブラリをインストールする

ActiveBasicのパッケージで容易されているDirectXのインクルードファイルは、DirectX9.0に対応しています。そのため、ActiveBasicを用いてDirectXプログラミングを行うときは、Microsoft(http://www.microsoft.com/japan/)からDirectX9.0エンドユーザー向けランタイムライブラリをダウンロード&インストールする必要があります。

・マシンスペックの確認

DirectXアプリは通常のWindowsアプリと異なり、高速な処理を必要とする場合があります。高度なグラフィックス描画を行うアプリケーションを開発するときは、ある程度のスペックを満たしたマシン(1GHz以上を推奨)を採用することをお勧めします。



DirectXプログラミングを始める


DirectXアプリのソースコードはRADツールを用いたプログラミングと同様、プロジェクトベースで管理します。「プロジェクトの新規作成 → 編集 → コンパイル → 実行」という一連の流れでプログラミングを行います。

1. プロジェクトを作成する

ProjectEditor.exeを起動します。メニューの「ファイル」→「新規作成」をクリックし、表示された新規作成ダイアログで「プロジェクト(*.pj)」を選択し、OKボタンをクリックします。プロジェクト名に任意の名前を指定します。アプリケーションタイプで「DirectX対応アプリケーション」を選択し、「次へ」ボタンをクリックします。新規作成ウィザードのステップ2-3では何も変更せずに「次へ」ボタンをクリックし、最後に「完了」ボタンをクリックします。


↑DirectXに対応するプロジェクトを新規作成するときの画面


2. 生成されたソースコードの確認

プロジェクトが生成されると同時に、下のファイルが生成されます。主にコーディングを行うソースファイルは "プロジェクト名.sbp"(ここではhello.sbp)です。他のファイルは特別な理由がない限り、変更が必要になることはありません。

dx_graphics.sbpDirectGraphicsを扱うためのライブラリ(関数郡)が定義されています。
hello.sbp実際にコーディングを行うソースファイルです。
MainWnd.sbpメインウィンドウのイベントコーディング用のソースファイルです。ここで対象とするウィンドウはDirectX生成時に必要なダミーであるため、このソースファイルをコーディングすることはありません。


3. コンパイル&実行してみよう

メニューの「ベーシック」→「デバッグ実行」をクリックし、コンパイル&実行をしてみます。D3Dデバイスの生成に成功すると、フルスクリーン表示に切り替わり、真っ黒な画面が表示されるはずです。このプログラムはAlt+F4キーを押すと終了できます。

D3Dデバイスが正常に生成できないと、「初期化に失敗しました」というエラーメッセージが表示されます。このような場合はDirectX9.0が正常にインストールできているかどうか、グラフィックボードが正常に動作しているかどうかを確認してみましょう。



5分でできる、"Hello World!" on DirectX


上記の「DirectXプログラミングを始める」に示す手順に従って、helloプロジェクトを作成したところから説明します。

1. "hello.sbp" を開く

プロジェクトビューのFileタブから "hello.sbp" をダブルクリックしてソースファイルを開きます。すでにソースコードが生成されていますが、その中のRenderProcという関数までスクロールします。

2. テキストを出力するためのコードを打ち込む

RenderProc関数の中に下のようなコードを打ち込みます。dx_DrawTextはD3D画面に文字列を表示するための関数です。

Sub RenderProc() dx_DrawText(100,100,"Hello World!",D3DCOLOR_XRGB(255,255,255)) End Sub
3. コンパイル&実行

正常に実行されると、画面左上に "Hello World!" という文字列が白色で表示されます。