Skip to content

create custom effects #1019

@sergio-manfrin

Description

@sergio-manfrin

are there some kind of register class to register custom effects? The class EffectInfo would need to implement a call to a class like this: #include "EffectRegistry.h"
#include

namespace openshot {

EffectRegistry& EffectRegistry::GetInstance() {
static EffectRegistry instance;
return instance;
}

void EffectRegistry::RegisterEffect(const std::string& name, EffectCreator creator) {
creators[name] = creator;
std::cout << "Efeito '" << name << "' registrado com sucesso!" << std::endl;
}

EffectBase* EffectRegistry::CreateEffect(const std::string& name) {
if (creators.count(name)) {
return creators.at(name)();
}
return nullptr; // Retorna nulo se o efeito não for encontrado
} so EffectInfo work in this way: #include "EffectInfo.h"
#include "EffectRegistry.h" // Inclua o novo arquivo

// Remova toda a lista de if/else if
// Substitua o método CreateEffect pelo seguinte:
EffectBase* EffectInfo::CreateEffect(const std::string& effect_type) const
{
// Crie o efeito usando o EffectRegistry
return EffectRegistry::GetInstance().CreateEffect(effect_type);
}

// Para o método GetEffects(), você precisará adaptar para o novo sistema.
// Uma maneira é ter uma função estática que retorna a lista de nomes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions