Add OFX plugin support and related infrastructure

This commit extends the OFX plugin support in Olive by:

- Initializing and scanning for OFX plugins
- Updating PluginNode to handle OFX plugin parameters and inputs
- Adding necessary methods and properties for OFX plugin integration
- Enhancing NodeFactory to include OFX plugin nodes
- Refactoring and renaming OliveInstance to OlivePluginInstance
- Introducing new classes for parameter handling (ParamInstance)
- Adding PluginJob for rendering OFX plugins
- Adjusting CMakeLists.txt files to include new source files
This commit is contained in:
2025-11-09 17:03:56 +08:00
parent 26e6924cdf
commit 8a7b6cf869
23 changed files with 545 additions and 90 deletions
+5 -12
View File
@@ -26,22 +26,15 @@
#include <QDir>
#include "OliveHost.h"
#include "OliveInstance.h"
#include "OlivePluginInstance.h"
#include "common/Current.h"
using namespace OFX::Host;
using namespace olive::plugin;
void loadPlugins(QString path)
void olive::plugin::loadPlugins(QString path)
{
QDir dir=(QCoreApplication::applicationDirPath()+path);
QFileInfoList files=dir.entryInfoList();
for (auto& file:files) {
if (file.isDir()) {
OFX::Binary binary(file.absoluteFilePath().toStdString());
}
}
OFX::Host::ImageEffect::PluginCache imageEffectPluginCache(myHost);
}
OliveHost::~OliveHost()
{
for(auto& descriptor:descriptors_){
@@ -82,7 +75,7 @@ OFX::Host::ImageEffect::Instance* OliveHost::newInstance(void* clientData,
OFX::Host::ImageEffect::ImageEffectPlugin* plugin,
OFX::Host::ImageEffect::Descriptor& desc,
const std::string& context){
ImageEffect::Instance* instance=new OliveInstance(plugin,desc,context,Current::getInstance().interactive());
ImageEffect::Instance* instance=new OlivePluginInstance(plugin,desc,context,Current::getInstance().interactive());
instances_.append(instance);
return instance;
};