StoneyDesignerのトップへ  サイト内検索ページへ ナビゲーション リンクのスキップ
ナビゲーション リンクのスキップ
拡張機能ファイル(*.dll)の開発 の縮小拡張機能ファイル(*.dll)の開発
はじめに
拡張機能作成の流れ
DLL側で定義する関数
以前からの変更点
クラス
基底となるクラス の展開基底となるクラス
基本クラス の展開基本クラス
材質クラス の展開材質クラス
テクスチャクラス の展開テクスチャクラス
グループクラス の展開グループクラス
関節クラス の展開関節クラス
図形関連のクラス の展開図形関連のクラス
視点位置クラス の展開視点位置クラス
パーツクラス の展開パーツクラス
ユーザー座標系クラス の展開ユーザー座標系クラス
開発ライブラリ ダウンロード
 

DLL側で定義する関数

 以下の関数はDLL側で定義し、必要に応じてStoneyDesignerが呼び出します。以下のすべての関数は、extern "C"で修飾して下さい。


必ず定義しなければならない関数

void sdc_getVersion(int * ver, int * subVer);

 DLL側が対応しているプラグインのバージョンを返します。現在は*ver=1, *subVer=0にして下さい。

wchar_t * sdc_getName();

拡張メニュー内に表示されるDLLの名前を返します。

void sdc_execute();

 プラグインの実際の動作を記述します。”拡張”メニュー内で、上の名前が選択されたときにStoneyDesignerからこの関数が呼ばれます。


必要ならば定義する関数

SdPluginMode sdc_getType();

 プラグインの形式を返します。現在、以下の二つが指定できます。この関数が定義されていない場合は、プラグインの形式がSDPLUGINMODE_TEMPORARYになります。

SDPLUGINMODE_TEMPORARY:

 メニューでこのプラグインが選択されると同時にLoadLibraryで読みこまれ、sdc_executeが終了すると同時にFreeLibraryで開放されます。メモリーの節約になります。

SDPLUGINMODE_CONCURRENT:

 StoneyDesignerが開始した後にLoadLibraryで読みこまれ、StoneyDesignerが終了するまでは開放されません。独自の操作ウインドウ等を出すプラグインなどに向いています。例えば、独自の視点変更ウインドウを常時出しておくプラグイン作成の場合は、
1.この関数でSDPLUGINMODE_CONCURRENTを返します。
2.下のsdc_initでウインドウを作成し、表示します。
3.sdc_executeで、ウインドウの表示・非表示を設定します。
4.下のsdc_exitでウインドウを破棄します。
のような動作を行えば良いでしょう。

 また、マウス入力を伴う拡張機能(参照:SdInteractionHandler)の場合は、SDPLUGINMODE_CONCURRENTを返す必要があります。 

HBITMAP sdc_getBitmap();

 拡張メニュー内のメニューの文字の左に表示されるビットマップを指定します。ビットマップは16×15の大きさでなければなりません。

wchar_t * sdc_getMessage();

 メニュー上をマウスが動いたときに、ステータスバーに表示されるメッセージを返します。

void sdc_init();

 StoneyDesignerが開始した後や、拡張機能DLLが読み込まれた際に呼ばれます。sdc_getTypeでSDPLUGINMODE_TEMPORARYを返した場合は、この関数が終了した後にDLLは開放されます。SDPLUGINMODE_CONCURRENTの場合は開放されません。

void sdc_exit();

 StoneyDesignerが終了する直前や、拡張機能DLLがStoneyDesignerから開放される前に呼ばれます。

ナビゲーション リンクのスキップ

StoneyDesignerのトップへ
Copyright(C) 2011 N.Ishizaka, All rights reserved.