irrlichtのクラス・列挙型をエクスポート

引き続き、前から順番にエクスポートしていくがひとつsqratの定数のエクスポート様式に合わせてスクリプトを変更した。

c++でのネストしたnamespace内のenum

irr::video::EDT_SOFTWARE

をとりあえず

irr.video.EDT_SOFTWARE

としていたが都合により

irr.EDT.SOFTWARE

とすることにした。

現状のbind関数

void bindIrr(HSQUIRRELVM vm)
{
 // enum
 Sqrat::Enumeration EDT(vm);
 EDT
 .Const(_SC("OPENGL"), irr::video::EDT_OPENGL)
 .Const(_SC("SOFTWARE"), irr::video::EDT_SOFTWARE)
 ;
 Sqrat::ConstTable(vm).Enum(_SC("EDT"), EDT);

 // irr
 Sqrat::Table irr(vm); 
 irr.Func(_SC("createDevice"), &irr::createDevice);

 // core 
 irr.Bind(_SC("dimension2d"),
     Sqrat::Class<irr::core::dimension2d<irr::u32> >(vm));

 // video
 Sqrat::Table video(vm);
 irr.Bind(_SC("video"), video);

 // scene
 Sqrat::Table scene(vm);
 irr.Bind(_SC("scene"), scene);

 Sqrat::RootTable(vm).Bind(_SC("irr"), irr);
}

実行

> debug\sqirr.exe 01.HelloWorld.nut

順調なエラーメッセージ無しで死亡。
デバッガで追ってみることにする。