# NNSG3dRenderObj

## Description

The `NNSG3dRenderObj` structure collects and stores the data needed to a draw model. The structure stores the following data:

- Pointer to the model resource (`NNSG3dResMdl`)
- Pointer to the animation object (`NNSG3dAnmObj`)
- Pointer to the animation blend function
- Callback settings
- Pointer to the initialize function
- Pointer to the buffer that stores the animation calculations (`NNSG3dJntAnmResult`, `NNSG3dMatAnmResult`)
- Flag group for optimizing and customizing action

The following processes must be conducted in order to use the `NNSG3dRenderObj` structure:

1. Secure a region for the structure using the `NNS_G3dAllocRenderObj` function (can secure in stack instead).
2. Initialize the structure using the `NNS_G3dRenderObjInit` function.
3. If animating, add the animation object using the `NNS_G3dRenderObjAddAnmObj` function.
4. If a callback process is needed, register the callback function using either the `NNS_G3dRenderObjSetCallBack` or `NNS_G3dRenderObjSetInitFunc` function.
5. If the joint and material calculation results are to be re-used, register a buffer in the `NNSG3dRenderObj` structure using either the `NNS_G3dRenderObjSetJntAnmBuffer` or `NNS_G3dRenderObjSetMatAnmBuffer` function.
6. Draw using the `NNS_G3dDraw` function.
7. Once the secured region is no longer necessary, release it using the `NNS_G3dFreeRenderObj` function.

You do not need to prepare the `NNSG3dRenderObj` structure if you are drawing with the `NNS_G3dDraw1Mat1Shp` function.

## See Also

Kernel

## Revision History

10/12/2004 Initial version.