「電波とどいた?」
2009/02版 その3

2009/02/26 (木)

Squirrel拡張作業 (squirrel)

_ なんか某スレも微妙に活気がでてるよーな気がする今日このごろってことでネタ投下。

_ 以前吉里吉里用に作った squirrelプラグインに組み込んだ、プロパティ機能や 疑似スレッド機能を、sqplus 用に同一仕様で書きおこしたものです。 VC++ でのコンパイル&動作確認済みで、gcc でもコンパイルは確認してます。

_ 吉里吉里版では、TJS2クラスオブジェクトを Scripts.registClassSQ で登録すると、 自動的に squirrel 側の組み込み内部クラス Object を継承した状態になります。 sqplus 版では、Object クラスを継承したクラスを SqPlus::SQClassDef で登録します。 squirrel 上でクラスを書く場合は、いずれの環境でも Object を単純に継承するだけです。

_ プロパティ拡張は記述がすっきりするので地味に便利です。 疑似スレッド機能は、UI系などを構築する場合にかなり楽になると思います。

_ これで、吉里吉里でも、自前の C++ベースのエンジンでも、同名・同機能のクラスをそれぞれの エンジンで準備すれば、squirrel のスクリプト部分は全く同一のものを扱えるようになりました。 吉里吉里を利用したプロトタイプ開発にかなり便利なんじゃないかと思います。 気が向いたら AIR 版もこの仕様あわせで作り直すかも。

_ sqplus 依存になってるのは、クラス登録処理と、それに伴う型判定処理だけ なので、その部分を自前で処理するようにすれば、sqplus なしでも組み込みは可能だと思います。 jkBind は gcc で一発でコンパイルとおらなかったのでパス^^; なお、同梱の sqplus は例外を使わないように手をいれてあります。

_ あと必要なのはリモートデバッグ環境ですな。 SQDEV は Eclipse でごついからあんま使いたくないのと、 疑似スレッド機能をサポートしたいから、独自で作ることになるかなぁ




メールはこちらへ...[わたなべごう (go @(at) denpa .(dot) org)]

この日記は、GNSを使用して作成されています。