--
-- You received this message because you are subscribed to the Google Groups ofx-discussion group. To post to this group, send email to ofx-dis...@googlegroups.com. To unsubscribe from this group, send email to ofx-discussio...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/ofx-discussion?hl=en
---
You received this message because you are subscribed to the Google Groups "ofx-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ofx-discussio...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ofx-discussion/e9ffbd8a-dd57-4382-84b8-7fa3c5ec22f8n%40googlegroups.com.
Hosts will require some means to determine if a plugin is going to exclusively use the draw suite. If we are not running in OpenGL, we cannot call interacts for a plugin that is going to make GL calls, without likely crashes/undefined behaviour.
It would also be nice to know if a plugin is usable at all without ihteracts. In some cases, they are merely convenience, but it is still usable via the parameters directly; in others the interact might provide the only means of effectively using the plugin.
As such, perhaps a describe-time property (or multiple) for the above cases would be desirable?
Actually someone from Fusion (the BMD app) asked before and I thought we would be good, but I see it could create a dependency order if not otherwise specified. The primary goal is to protect hosts from plugins that were compiled before DrawSuite was supported.... so they don't send OGL overlay draw calls....
Seems If fetchSuite(mHost->host, kOfxDrawSuite, 1); returns not NULL wouldn't kOfxImageEffectPropWillUseDrawSuite be redundant to fetching suite? If you fetch suite, then the intent is that you will use it, no?
We also have kOfxImageEffectPropSupportsOverlays that I see we
don't check here, I guess, we assumed here that if OfxInteractSuite is
supported that we can draw, perhaps InteractSuite could also be used for
just hot keys... :) --
kOfxImageEffectPropSupportsOverlays theoretically could also add a
3rd option and be modified as below, and that would also be legit... and more complete.
I thought it was more robust to just do fetchSuite(mHost->host, kOfxInteractSuite, 2); but I am not sure it matters.
mInteractHost = (OfxInteractSuiteV2*) mHost->fetchSuite(mHost->host, kOfxInteractSuite, 2);
if(!mInteractHost) {
mInteractHost = (OfxInteractSuiteV1*) mHost->fetchSuite(mHost->host, kOfxInteractSuite, 1);
// assumes OpenGL or whatever special host case you might already be doing
if(mInteractHost) mDrawHost = (OfxDrawSuiteV1*)
mHost->fetchSuite(mHost->host, kOfxDrawSuite, 1); // if mDrawHost
== NULL, use OGL ok
Aside from that, plugins have all the means to bail out if some suite needed is not supported or modify their UI.
Host that load plugins for background renderer will never callback
interact suite so a non-issue. Some hosts in GUI mode mute that forcing a
user to turn that on interacts in their UI somehow, so it's possible to guard
against a plugin not fetching DrawSuite. Others callback Interact only
if effect is the one selected... So maybe host who don't support OGL
overlays just never calls Interact callbacks if DrawSuite is not
fetched. So I am back to where we started :) - Host can block plugin
against that, it's not very dangerous. I just don't know if someone use cursor position without overlay drawing for something...
Pierre
The primary goal is to protect hosts from plugins that were compiled before DrawSuite was supported.... so they don't send OGL overlay draw calls....
To view this discussion on the web visit https://groups.google.com/d/msgid/ofx-discussion/63068e76-d66a-4ff0-9d6a-862ba33c282en%40googlegroups.com.