-
Notifications
You must be signed in to change notification settings - Fork 139
Developer FAQ
OpenFX is a C programming language protocol designed to enable a host application and a plug-in (a shared library) to establish a communication in order to extend functionalities of the application. One of the reason it has been designed is for different vendors and software editors to share a common low-level protocol. It has been primarily developed to enable developers to extend an imaging software with 2D image processing plug-ins, but the protocol is generic enough to be extended to any other type of application, such as audio processing, etc... The protocol is cross-platform and should work with most existing operating systems.
OpenFX is controlled by an association of software editors and open-source organizations. The main web-page is http://openeffects.org. Modifications and enhancements to OpenFX are reviewed by all members before being integrated to the common standard.
A good documentation has been written by Bruno Nicoletti here
There is none at the moment, but an example implementation can be found on the official Github repository of the OpenFX association
See the wiki entry here
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
};