solve some bugs
This commit is contained in:
@@ -124,7 +124,15 @@ const std::string &olive::plugin::OliveClipInstance::getFieldOrder() const
|
||||
}
|
||||
bool olive::plugin::OliveClipInstance::getConnected() const
|
||||
{
|
||||
return params_.format() == PixelFormat::INVALID;
|
||||
if (name_ == kOfxImageEffectOutputClipName) {
|
||||
return true;
|
||||
}
|
||||
#ifdef OFX_SUPPORTS_OPENGLRENDER
|
||||
if (!input_textures_.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
return !images_.isEmpty();
|
||||
}
|
||||
double olive::plugin::OliveClipInstance::getUnmappedFrameRate() const
|
||||
{
|
||||
|
||||
@@ -71,15 +71,20 @@ void AddPluginPathsFromEnv(OFX::Host::PluginCache *cache, const char *env_var)
|
||||
|
||||
void olive::plugin::loadPlugins(QString path)
|
||||
{
|
||||
std::shared_ptr<OliveHost> host = std::make_shared<OliveHost>();
|
||||
Current::getInstance().setPluginHost(host);
|
||||
|
||||
std::shared_ptr<OliveHost> host = Current::getInstance().pluginHost();
|
||||
std::shared_ptr<ImageEffect::PluginCache> imageEffectPluginCache =
|
||||
std::make_shared<ImageEffect::PluginCache>(*host);
|
||||
Current::getInstance().setPluginCache(imageEffectPluginCache);
|
||||
Current::getInstance().pluginCache();
|
||||
|
||||
imageEffectPluginCache->registerInCache(
|
||||
*OFX::Host::PluginCache::getPluginCache());
|
||||
if (!host || !imageEffectPluginCache) {
|
||||
host = std::make_shared<OliveHost>();
|
||||
Current::getInstance().setPluginHost(host);
|
||||
|
||||
imageEffectPluginCache = std::make_shared<ImageEffect::PluginCache>(*host);
|
||||
Current::getInstance().setPluginCache(imageEffectPluginCache);
|
||||
|
||||
imageEffectPluginCache->registerInCache(
|
||||
*OFX::Host::PluginCache::getPluginCache());
|
||||
}
|
||||
OFX::Host::PluginCache *cache = OFX::Host::PluginCache::getPluginCache();
|
||||
cache->setPluginHostPath("Olive");
|
||||
|
||||
|
||||
@@ -53,6 +53,14 @@ public:
|
||||
bool pluginSupported(OFX::Host::ImageEffect::ImageEffectPlugin *plugin,
|
||||
std::string &reason) const override
|
||||
{
|
||||
if (!plugin) {
|
||||
reason = "null plugin";
|
||||
return false;
|
||||
}
|
||||
if (plugin->getContexts().empty()) {
|
||||
reason = "no supported contexts (describe failed)";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
@@ -53,7 +53,8 @@ public:
|
||||
{
|
||||
}
|
||||
OlivePluginInstance(OlivePluginInstance& instance)
|
||||
: Instance(_plugin, *_descriptor, _context, _interactive)
|
||||
: Instance(instance._plugin, *instance._descriptor, instance._context,
|
||||
instance._interactive)
|
||||
{
|
||||
_clips=instance._clips;
|
||||
_created=instance._created;
|
||||
|
||||
Reference in New Issue
Block a user