Memory Allocation — After Effects SDK Guide 22.0.0 documentation

重要なサイズのメモリ割り当てには、After Effectsを使用してください。小さなメモリ割り当ての場合、newとdeleteを使用できますが、これは例外であり、ルールではありません。メモリ不足の状態(RAMプレビュー中など)では、プラグインがメモリ不足の状態に優雅に対処し、OSメモリをAfter Effectsと競合させないことが非常に重要です。AfterEffectsのメモリ割り当て関数を使用することで、キャッシュされたイメージを解放するタイミングを知ることができ、メモリのスワップを避けることができます。AfterEffectsのメモリ割り当て関数を使用しない場合、ロックアップ、クラッシュ、テクニカルサポートコールが発生することがあります。そのようなことはしないでください。

既存のC++クラスをラップする場合は、そのクラスに対してnewとdeleteを実装した基底クラスを作成し、そこから派生させる。STLをオーバーロードするために、グローバルなnewとdeleteをオーバーロードすることはお勧めしません。代わりに、テンプレート定義の一部としてアロケータを提供します。

After Effectsから渡されたハンドルは、呼び出される前にロックされ、戻るとロックが解除されます。

PF_HandleSuite1

Function Purpose Replaces
host_new_handle 新しいハンドルを割り当てる。PF_Handle (*host_new_handle)( A_HandleSize size); PF_NEW_HANDLE
host_lock_handle ハンドルをロックする。void (*host_lock_handle)( PF_Handle pf_handle); PF_LOCK_HANDLE
host_unlock_handle ハンドルのロックを解除します。void (*host_unlock_handle)( PF_Handle pf_handle); PF_UNLOCK_HANDLE
host_dispose_handle ハンドルを解放します。void (*host_dispose_handle)( PF_Handle pf_handle); PF_DISPOSE_HANDLE
host_get_handle_size ハンドルが渡された再割当可能なブロックのサイズをバイト単位で返します。
A_HandleSize (*host_get_handle_size)( PF_Handle pf_handle); PF_GET_HANDLE_SIZE
host_resize_handle ハンドルのサイズを変更する。PF_Err (*host_resize_handle)( A_HandleSize new_sizeL, PF_Handle *handlePH); PF_RESIZE_HANDLE