To that end, users can write plugins that are:
In addition, overlays can be attached to user-built nodes, or even to existing RAYZ nodes, to add interactive functionality.
Programmers can also build up complex node operations by chaining together internal RAYZ Image Operations - for example, a plugin which requires image scaling and rotation can use the internal routines for scaling and rotating its input, allowing the programmer to spend time on the parts of the plugin which are unique and interesting.
Finally, RAYZ plugins can read values from, and write values to, the user Preferences. And the plugins can create new Preferences for users to have access to, in order to completely customize RAYZ.
We hope the enclosed documentation and examples will allow you to push RAYZ to do the things you need; help is always available at support@sgrail.com.
Have fun.
|
|
CPI | Supplied by RAYZ to the Custom plugin writer |
RPI | Functions calls which are required - these must be defined by the programmer |
UPI | User supplied functions which are optional |
CPI_ImageOp DitherExec( CPI_Float32 myTime, CPI_Uint8 quality, CPI_Uint32 nodeOutput, CPI_Uint32 viewerOutput, CPI_Float32 scaleX, CPI_Float32 scaleY ) {In 2.0, the viewerOutput parameter has changed to a Bool type. The meaning is that this variable is CPI_TRUE if the node output number refers to the node's viewerOutput number, CPI_FALSE if it refers to the node's output number. So the new signature looks like this:
CPI_ImageOp DitherExec( CPI_Float32 myTime, CPI_Uint8 quality, CPI_Uint32 output, CPI_Bool viewerOutput, CPI_Float32 scaleX, CPI_Float32 scaleY ) {
CPI_Bool cpiGetString( const char **stringval, const char *parmname, CPI_Float32 evaltime );The new syntax is the simpler
CPI_Bool cpiGetString( char *stringval, CPI_Int32 stringsize, const char *parmname, CPI_Float32 evaltime );which allows you to do something like this:
#define MAXSIZE 128 char strval[MAXSIZE]; cpiGetString( strval, MAXSIZE, "the string", myTime );
void cpiAddFile( const char *name, const char *label, const char *def, const char *helpText, const char *helpHTML );
CPI_Bool cpiIsInputConnected( CPI_Uint32 input )IsProcessingAborted() This allows you to poll for the state of the Stop button on the interface, to see if the user has requested that processing abort early. The syntax is
CPI_Bool cpiIsProcessingAborted( void )