修改部分语法错误

This commit is contained in:
2026-01-05 02:25:13 +08:00
parent cad331eb2c
commit 003c3bb5be
3 changed files with 144 additions and 23 deletions
+39 -23
View File
@@ -89,29 +89,7 @@ void NodeFactory::Initialize()
}
olive::plugin::loadPlugins(QString());
for (auto plugin : OFX::Host::PluginCache::getPluginCache()->getPlugins()) {
auto *image_effect =
dynamic_cast<OFX::Host::ImageEffect::ImageEffectPlugin *>(plugin);
if (!image_effect) {
continue;
}
const auto &contexts = image_effect->getContexts();
std::string context = kOfxImageEffectContextFilter;
if (!contexts.empty() &&
contexts.find(kOfxImageEffectContextFilter) == contexts.end()) {
context = *contexts.begin();
}
auto *instance = image_effect->createInstance(context, nullptr);
if (!instance) {
continue;
}
plugin::PluginNode *plugin_node = new plugin::PluginNode(instance);
library_.append(plugin_node);
}
RegisterPluginNodes();
}
@@ -238,6 +216,44 @@ Node *NodeFactory::CreateFromID(const QString &id)
return nullptr;
}
void NodeFactory::RegisterPluginNodes()
{
QSet<QString> existing_ids;
for (Node *node : library_) {
existing_ids.insert(node->id());
}
for (auto plugin : OFX::Host::PluginCache::getPluginCache()->getPlugins()) {
auto *image_effect =
dynamic_cast<OFX::Host::ImageEffect::ImageEffectPlugin *>(plugin);
if (!image_effect) {
continue;
}
const QString plugin_id = QString::fromStdString(
image_effect->getIdentifier());
if (existing_ids.contains(plugin_id)) {
continue;
}
const auto &contexts = image_effect->getContexts();
std::string context = kOfxImageEffectContextFilter;
if (!contexts.empty() &&
contexts.find(kOfxImageEffectContextFilter) == contexts.end()) {
context = *contexts.begin();
}
auto *instance = image_effect->createInstance(context, nullptr);
if (!instance) {
continue;
}
plugin::PluginNode *plugin_node = new plugin::PluginNode(instance);
library_.append(plugin_node);
existing_ids.insert(plugin_id);
}
}
Node *NodeFactory::CreateFromFactoryIndex(const NodeFactory::InternalID &id)
{
switch (id) {