連載
» 2010年03月31日 00時00分 公開

“BREW”アプリケーション開発入門(8):MascotCapsuleによる3Dグラフィックスプログラミング (2/3)

[末永貴一(エイチアイ),@IT MONOist]

環境構築

 それでは、プログラミングを行うための環境構築を行いたいと思います。

 先にも述べましたがeruptionは、BREW Extensionとして提供されているため、BREWの開発環境にeruptionの環境を構築する必要があります。開発環境に必要なファイル群については、以下のサイトからダウンロードできます(以下、URL参照)(注2)。



※注2:ここではKDDIのau端末での開発を前提としているため、KDDI BREWのツールを利用します。


 以上のライブラリの項目からBREW3.1向けの「MascotCapsule eruption BREW Extension」をダウンロードします。この中には開発用のExtensionが含まれていますので、これでPC上での開発を行います。

 ダウンロードしたファイルはアーカイブになっており、以下の配置作業を行います。

  • emuフォルダ内のmifを%BREW_SDK%\sdk\examplesにコピー
  • eruption_a31フォルダを%BREW_SDK%\sdk\examplesにコピー
  • includeフォルダを%BREW_SDK%\sdk\examples\eruption_a31にコピー(注3)
※注3:includeフォルダに関しては、プロジェクトの指定によるため、上記以外の場所でも問題はありません。ここでは便宜上「eruption_a31」内に配置することとします。


ダウンロードしたアーカイブを配置 図6 ダウンロードしたアーカイブを配置

 以上でファイルの配置は完了です。アプリケーションからExtensionを利用するための設定に関しては、プロジェクトごとの設定になるため、後ほど説明します。

プロジェクトの設定

 プログラミングをはじめる前に、アプリケーションからeruptionのExtensionを利用できるように設定します。

 Extensionの設定は、「MIFエディタ」で行います(MIFエディタの利用に関しては連載第2回を参照)。まずは、「ClassID」を生成し、MIFエディタの「依存ファイル」タブからこのアプリケーションで利用するExtensionを登録します。

MIFエディタの「依存ファイル」タブでExtensionを登録(1) 図7 MIFエディタの「依存ファイル」タブでExtensionを登録(1)

 「外部クラスディレクトリ」を選択し、ファイル選択画面から先ほどファイル配置を行った、%BREW_SDK%\sdk\examples\eruption_a31\includeフォルダを指定します。

MIFエディタの「依存ファイル」タブでExtensionを登録(2) 図8 MIFエディタの「依存ファイル」タブでExtensionを登録(2)

 フォルダを選択するとExtensionが、使用可能Extensionリストに追加されるので、[追加]ボタンを押して、アプリケーションから利用可能にします。

MIFエディタの「依存ファイル」タブでExtensionを登録(3) 図9 MIFエディタの「依存ファイル」タブでExtensionを登録(3)

 最後にメニューの[作成]から[MIFスクリプトのコンパイル]を選択して、MIFファイルに名前を付けて保存します。以上の設定でアプリケーションからExtensionが利用可能になります。

ヘッダファイルとプリプロセッサの設定

 併せてビルドに必要なeruptionのヘッダファイルとプリプロセッサの設定も行います。Microsoft Visual C++ 6.0の環境であれば、[プロジェクト]メニューの[設定]からプロジェクトの設定ダイアログを起動します。

ヘッダファイルとプリプロセッサの設定 図10 ヘッダファイルとプリプロセッサの設定

 「C/C++」のタブからカテゴリを「プリプロセッサ」に設定して、インクルードファイルのパスにeruptionをインストールした場所の「$(BREWDIR)\examples\eruption_a31\include」を追加します($(BREWDIR)は、BREW SDKインストールの際に設定される環境変数です)。プリプロセッサに関しては「COORD_TYPE_FIXED」を設定します。詳細はあらためて解説しますが、前述した浮動小数点演算による速度劣化を回避する対策として、eruptionは固定小数点を使っています。この部分がこの設定になります。

Copyright © ITmedia, Inc. All Rights Reserved.