MCPcopy Create free account
hub / github.com/Tencent/libpag / GetEffect

Function GetEffect

exporter/src/export/data/Effect.cpp:379–411  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

377}
378
379static pag::Effect* GetEffect(const AEGP_EffectRefH& effectHandle) {
380 const auto PluginID = GetPluginID();
381 const auto Suites = GetSuites();
382
383 A_long numParams = 0;
384 Suites->StreamSuite4()->AEGP_GetEffectNumParamStreams(effectHandle, &numParams);
385 if (numParams < 2) {
386 return nullptr;
387 }
388 AEGP_EffectFlags effectFlags;
389 Suites->EffectSuite4()->AEGP_GetEffectFlags(effectHandle, &effectFlags);
390 if ((effectFlags & AEGP_EffectFlags_ACTIVE) == 0) {
391 return nullptr;
392 }
393 AEGP_StreamRefH firstStreamHandle = nullptr;
394 Suites->StreamSuite4()->AEGP_GetNewEffectStreamByIndex(PluginID, effectHandle, 1,
395 &firstStreamHandle);
396 if (firstStreamHandle == nullptr) {
397 return nullptr;
398 }
399 AEGP_StreamRefH effectStreamHandle = nullptr;
400 Suites->DynamicStreamSuite4()->AEGP_GetNewParentStreamRef(PluginID, firstStreamHandle,
401 &effectStreamHandle);
402 if (effectStreamHandle == nullptr) {
403 Suites->StreamSuite4()->AEGP_DisposeStream(firstStreamHandle);
404 return nullptr;
405 }
406 Suites->StreamSuite4()->AEGP_DisposeStream(firstStreamHandle);
407 auto type = GetEffectType(effectStreamHandle);
408 pag::Effect* effect = GetEffectByType(effectStreamHandle, type);
409 Suites->StreamSuite4()->AEGP_DisposeStream(effectStreamHandle);
410 return effect;
411}
412
413std::vector<pag::Effect*> GetEffects(const AEGP_LayerH& layerHandle) {
414 const auto PluginID = GetPluginID();

Callers 1

GetEffectsFunction · 0.85

Calls 4

GetPluginIDFunction · 0.85
GetSuitesFunction · 0.85
GetEffectTypeFunction · 0.85
GetEffectByTypeFunction · 0.85

Tested by

no test coverage detected