You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OFX::Host::ImageEffect::Base::supportsTiles returns an incorrect value when kOfxImageEffectPropSupportsTiles is set on the plugin rather than the instance
#177
Plugins can declare support (or not) for tiles by setting kOfxImageEffectPropSupportsTiles on either the plugin descriptor or the plugin instance (per the docs).
If a plugin explicitly sets the property to false on the plugin descriptor (in kOfxActionDescribe ) but sets no value on the instance (in kOfxImageEffectActionDescribeInContext) then supportsTiles returns true even though the plugin has declared that it does not support tiling.
Expected behaviour
If a plugin sets kOfxImageEffectPropSupportsTiles to false on the plugin descriptor, then OFX::Host::ImageEffect::Base::supportsTiles should return false.
Actual behaviour
If a plugin sets kOfxImageEffectPropSupportsTiles to false on the plugin descriptor, then OFX::Host::ImageEffect::Base::supportsTiles returns true.
Notes
I believe this is because a default is declared in the instance property set, and this default overrides the value that would otherwise be inherited from the plugin descriptor. I think it would be more correct for kOfxImageEffectPropSupportsTiles to be treated the same way as kOfxImageEffectInstancePropSequentialRender, and set the initial value to the one from the plugin descriptor.
The text was updated successfully, but these errors were encountered:
Adam, is this an issue in the support suite / lack of precision of doc or some host implementation issue?
I can see a plug-in not supporting tiles in all param setup conditions.
Adam, is this an issue in the support suite / lack of precision of doc or some host implementation issue? I can see a plug-in not supporting tiles in all param setup conditions.
I think it's a problem in the host support suite - as things stand the plugin has to set kOfxImageEffectPropSupportsTiles in the instance descriptor (kOfxImageEffectActionDescribeInContext) in order for it to take effect. In earlier versions of the support suite it could set kOfxImageEffectPropSupportsTiles on the plugin descriptor (kOfxActionDescribe) and it would be respected.
The behaviour change potentially breaks backward compatibility with older plugins since the host support suite will ignore values of kOfxImageEffectPropSupportsTiles set on the plugin descriptor, causing plugins to appear as though they support tiling when they don't.
I also think we should clarify the doc to say explicitly that if the plugin doesn't set a value of this property on the instance, the host must use the value from the plugin descriptor (i.e. "inheritance"). This will be good information for hosts that don't use the support lib.
Problem
Plugins can declare support (or not) for tiles by setting
kOfxImageEffectPropSupportsTiles
on either the plugin descriptor or the plugin instance (per the docs).If a plugin explicitly sets the property to
false
on the plugin descriptor (inkOfxActionDescribe
) but sets no value on the instance (inkOfxImageEffectActionDescribeInContext
) thensupportsTiles
returnstrue
even though the plugin has declared that it does not support tiling.Expected behaviour
If a plugin sets
kOfxImageEffectPropSupportsTiles
tofalse
on the plugin descriptor, thenOFX::Host::ImageEffect::Base::supportsTiles
should returnfalse
.Actual behaviour
If a plugin sets
kOfxImageEffectPropSupportsTiles
tofalse
on the plugin descriptor, thenOFX::Host::ImageEffect::Base::supportsTiles
returnstrue
.Notes
I believe this is because a default is declared in the instance property set, and this default overrides the value that would otherwise be inherited from the plugin descriptor. I think it would be more correct for
kOfxImageEffectPropSupportsTiles
to be treated the same way askOfxImageEffectInstancePropSequentialRender
, and set the initial value to the one from the plugin descriptor.The text was updated successfully, but these errors were encountered: