Frameworkの初期化と終了(Native)

[最終更新 2018/12/20]

 

起動

CubismFramework::StartUp関数でメモリアロケータとログに関するオプションを設定します。
メモリアロケータがセットされなければ、後に行うCubismFramework::Initialize関数が動作しません。

第一引数ではメモリ確保のメソッドが登録されたオブジェクトを指定します。
第二引数ではデバッグのレベルやデバッグ用の関数の登録をします。

初期化時にはデバッグ用関数を介し、以下のようにCubsim Core for Nativeのバージョン情報が表示されます。

 

 

初期化

CubismFramework::StartUp関数を行った後で、CubismFramework::Initialize関数を呼び出します。
アプリケーションでFrameworkを使用する前に必ず一度だけ呼んでください。
一度も呼ばなかった場合はFramework使用時にエラーになります。
連続で呼んだ場合は処理は無視されます。
ただし後述するCubismFramework::Dispose関数を呼んで終了したあとならば、再度initialize関数を呼んで初期化することができます。

 

 

終了

CubismFramework::Dispose関数を呼び出すとFrameworkが確保した共通部分のリソースを解放します。
CubismFramework::Initialize関数を呼ぶ前には呼ばないでください。
基本的にはアプリケーションの終了時に呼びます。
例外としてメモリが非常に少ない環境で、必要ないときやライブラリを完全に切り離したいときは、
この関数を呼ぶことでリソースを解放し、次に使うときにまたCubismFramework::Initialize関数を呼ぶ、という使い方もできます。

 

 

カスタムメモリアロケーター

Frameworkではメモリ確保をカスタマイズすることができます。
ICubismAllocatorクラスから継承したアロケータクラスをCubismFramework::StartUp関数で第一引数に使うことにより、適用されます。

ICubismAllocator::Allocate関数、ICubismAllocator::Deallocate関数は通常のFramework内の動的配列、連想配列、文字列などの領域確保に使用されます。
ICubismAllocator::AllocateAligned関数、ICubismAllocator::DeallocateAligned関数はFrameworkで扱われるcsmMocやcsmModelの領域確保に使用されます。
ICubismAllocator::AllocateAligned関数で確保される領域は第二引数の大きさでアライメントされている必要があります。
アライメントされていない場合、モデルの読み込みに失敗する可能性があります。

Copyright © 2019 Live2D Inc.