Accessing the After Effects Function Suites — After Effects SDK Guide 22.0.0 documentation

C++のコードを書いている場合、スイートへのアクセスはAEFX_SuiteScoperを使用して行う必要があり、必要なときに自動的にスイートを取得し、終了したときにそれを破棄します。ここでは、AEFX_SuiteScopeを使用してPF_GPUDeviceSuite1スイートにアクセスする例を紹介します。

AEFX_SuiteScoper<PF_GPUDeviceSuite1> gpu_suite = AEFX_SuiteScoper<PF_GPUDeviceSuite1>(
	in_dataP,
	kPFGPUDeviceSuite,
	kPFGPUDeviceSuiteVersion1,
	out_dataP);

<aside> 💡 AEFX_SuiteScoper は、要求されたスイートを取得できず、オプションのテンプレート第2引数 ALLOW_NO_SUITE が false に設定されている場合、A_Err_MISSING_SUITE という例外を投げます。ALLOW_NO_SUITEをfalseに設定した場合、AEFX_SuiteScoper<>の呼び出しをtry/catchラッパーで確実にラップしてください。ALLOW_NO_SUITEをtrueに設定した場合、使用する前に返されたポインタがNULLでないことを確認する必要があります。

</aside>

スイートを手に入れたら、スイートリストのどの機能でも呼び出すことができます。

gpu_suite->GetDeviceInfo(in_dataP->effect_ref, extraP->input->device_index, &device_info);

Cコードを使用する必要がある場合は、Checkoutサンプル・プロジェクトで実証されているように、PF_Suite_Helperユーティリティ・ファイルを使用してスイートを手動で取得およびリリースします。

裏では、PF_InDataで指されたSPBasicSuiteのメンバ関数であるAcquireSuiteを使用して、これらのメソッドの両方がPICA関数スイートを取得します。

スイートバージョン

WhizBangSuite1は2つの引数を取るFoobar()関数を提供し、WhizBangSuite2>Foobar()は3つの引数を取るかもしれません。新しいバージョンのスイートは古いバージョンより優先されますが、同じスイートの複数のバージョンを自由に取得することができます; 我々は以前に出荷されたスイートを削除または変更することはありません。

プラグインホストの機能が不明な場合(Premiere以外のサードパーティホストはPICAをサポートしていない)、最新バージョンの取得を試み、以前のバージョンに「フォールバック」する。必要な機能が利用できない場合は、ユーザーに警告し、エラーを返す(または、より「原始的な」プラグインホストで実行する場合は、他の動作にフォールバックする)。After Effectsプラグインの他のホストにおけるこれらのスイートのサポートは、曲がりくねった洞窟や通路の迷路のようなもので、どれも似ていることに注意してください。

スレッディング

特に文書化されていない限り、スイートが提供する関数はスレッドセーフでないと考えてください。例えば、ユーザーインターフェイスを変更するようなことは、プラグインのメインスレッドだけが行うべきです。