-
Notifications
You must be signed in to change notification settings - Fork 123
Extending OpenFX Guidelines
This page is meant to gather guidelines and tips to extend or modify the OpenFX standard.
-
New suite: On the host application side if a function is unsupported in a suite, set it to NULL instead of adding the function pointer. A plug-in being used in such host may want to know before calling the actual function whether the function actually does something or if it is unimplemented, for example to hide some parameters or exclude some functionalities. E.g:
struct OfxTimeLineSuiteV1 gTimelineSuite = { TimeLineGetTime, NULL /*TimeLineGotoTime*/, TimeLineGetBounds };
-
Functions signature in a suite should always have a PropertySet handle parameter corresponding to the inArgs of the action from which they are called. Without this context, the host may in some situation loose context awareness and rely on things such as thread-local storage to correctly retrieve the context of the action. Suites proposed to the standard without the inArgs PropertySet handle for each function would be declined. E.g: The ImageEffect suite V2 should re-work all its functions, including the abort function to pass the inArgs of the current action, so that a host running concurrent renders with multiple threads knows which render to stop:
int (*abort)(OfxImageEffectHandle imageEffect, OfxPropertySetHandle actionInArgs);