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.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BUILDING THE PLUGINS
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...
Code/MakefileCommon
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
make
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.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BUILDING ON WINDOWS
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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BUILDING THE DOCUMENTATION
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...
http://asciidoctor.org/
for installation instructions.
There is a gnu Makefile currently configured to generate html files. To build
the documentation simply go...
cd Doc
make
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