OpenFX Programming Guide

This is a mostly complete reference guide to the OFX image effect plugin architecture. It is a backwards compatible update to the 1.2 version of the API. The changes to the API are listed in an addendum.

This directory tree contains a set of plugins and corresponding
guides which take you through the basics of the OFX
Image Effects Plugin API.

There are two sub-directories...
   - Code - which contains the example plugins source files,
   - Doc  - has a guide to each plugin.


For Windows instructions, see below.

To build the example plugins you will need,
   - a C++ compiler
   - gmake (or nmake on Windows)
   - the ofx header files.

Within Code there is a subdirectory per plugin.

The assumption is that you have checked out all the OFX
source code in one lump and so the
OFX header files will be in a standard relative path to
the plugin sources. If this is not the case you will
need to modify the file...


and change the line

   OFX_INC_DIR = -I../../../include

to point to the directory where you have put the headers.

To build all the examples simply go...

    cd Code

this will compile all the plugins and place them in
a directory called 'built_plugins'.

You can build individual plugins by changing into the
relevant subdirectory and simply issuing a 'make' command.


NMakefiles are included for use with Windows' nmake utility.
This should build on any Visual Studio version (at least 2008 or newer).

Open a Visual Studio command-line window of the appropriate bitness
that you want (32 for a 32-bit OFX host, 64 for a 64-bit host).  From
the Start menu, go to Microsoft Visual Studio XXXX -> Visual Studio
Tools -> Visual Studio XXX Command Prompt (choose the appropriate
bitness here).

In that window, cd to the openfx/Guide/Code dir, and type:

  nmake /F nmakefile install

This will build and install the plugins into the standard OFX plugins
dir (c:\Program Files\Common Files\OFX\Plugins).

To clean up:

  nmake /F nmakefile clean


To build the documentation you will need...
   - gmake
   - asciidoctor

The documentation is written in asciidoctor markdown, which can be used to
generate HTML, docbook XML and more. You will need to download and install
asciidoctor to build the doc. Visit...

for installation instructions.

There is a gnu Makefile currently configured to generate html files. To build
the documentation simply go...

   cd Doc

this will generate a subdirectory called 'html' which will contain the
guides in html format.

Last Edit 11/11/14
This is a brief description of examples which could
do with being added to the Guides.

The following examples should be added to the guide.

OpenGL Overlay Example
A trivial example along the lines of the circle drawing example.

This will illustrate...
    - openGL overlays

Temporal Difference Example
Compute the absolute difference between images at two different times.

This will illustrate...
    - fetching images at separate times
    - the get frames needed action

Transition Example
A simple straight frame blend transition

This will illustrate...
   - the transition context

Custom Parameter
Something like the circle drawing plugin so that it has no double parameters, but only a single custom parameter, controlled via the overlay UI.

This will illustrate...
    - using custom parameters.

3x3 2D Filter
Does a variety of simple 2D filtering operations using a 3x3 window.

This will illustrate...
   - the get region of interest action

Analysis Plugin
The plugin will find the minimum and maximum value of a given frame in response to a push button, and store the values
into two parameters. During renders it will rescale pixel values so that 'min' is 0 and 'max' is the whitepoint.

This will illustrate...
    - writing to parameters in response to a button press outside of render.

Basic OpenGL Example
Behaviour to be determined.

This will illustrate the basics of rendering in OpenGL
Last Edit 11/11/14