feat: Implement OFX plugin support infrastructure

This commit adds comprehensive support for OFX plugins in Olive, including:

- Add plugin node infrastructure with getPlugin() method
- Implement OliveHost for managing OFX plugin instances
- Create OliveInstance to handle plugin parameter and timeline interactions
- Add OliveClip implementation for plugin clip handling
- Implement region of definition (RoD) and region of interest (RoI) functionality
- Add interactive mode support in Current class
- Integrate plugin rendering into RenderProcessor
- Fix include dependencies and remove unused OlivePlugin.cpp reference
This commit is contained in:
2025-10-25 17:59:50 +08:00
parent 81b2640411
commit 26e6924cdf
9 changed files with 210 additions and 4 deletions
+4 -1
View File
@@ -25,6 +25,9 @@
#include <QApplication>
#include <QDir>
#include "OliveHost.h"
#include "OliveInstance.h"
#include "common/Current.h"
using namespace OFX::Host;
using namespace olive::plugin;
void loadPlugins(QString path)
@@ -79,7 +82,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 ImageEffect::Instance(clientData,plugin,desc,context);
ImageEffect::Instance* instance=new OliveInstance(plugin,desc,context,Current::getInstance().interactive());
instances_.append(instance);
return instance;
};