修改部分语法错误
This commit is contained in:
+39
-23
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user