Softimage SDK Programmer's Guide > Customizing Softimage using the SDK > Custom Fx Operators >

# Memory Allocation

You should use the UFO memory allocation mechanism to dynamically allocate and free memory. This will make use of the Softimage Compositor's memory manager. The functions ufoMalloc, ufoRealloc, and ufoFree have the same functionality as the malloc, realloc and free system calls.

## Order of UFO Process User Function Calls

UFO user functions are called as follows:

### Softimage Compositor Initialization

ufoProcessDefine

### UFO Process Instance Copy

ufoProcessCopyUserData

### UFO Process Instance Destruction

ufoProcessDeleteUserData

### UFO Process Instance Saving and Loading

    ufoProcessWriteAsciiData
    ufoProcessReadAsciiData
    ufoProcessWriteBinaryData
    ufoProcessReadBinaryData

### Rendering Sequence

    ufoProcessPreSequenceRender
    	:
    	Rendering Frame f
    	ufoProcessCanAvoidRendering
    	ufoProcessCalcDefinedRectangle
    	ufoProcessCalcDefinePixelType
    	ufoProcessCalcNeedRectangles
    	ufoProcessSpecifyConvertPixelTypes
    	ufoProcessPreRender
    	Render Pass 0
    		:
    	Rendering Pass p
    		ufoProcessPreRenderPass
    		ufoProcessRenderRectangle
    		[ufoProcessRenderRectangle ..]

(possibly rendered in tiles or slices)

or

    		ufoProcessRenderLine ..
    		[ufoProcessRenderLine ..]

or

    		ufoProcessRenderPixel..
    		[ufoProcessRenderPixel..]
    		ufoProcessPostRenderPass
    	Rendering Pass p+1
    		:
    		ufoProcessPostRender
    	Render Frame f+1
    		:
    		ufoProcessPostSequenceRender