# NNS_G2dInitMCAnimationInstance

## C Specification

      #include <nnsys/g2d/g2d_MultiCellAnimation.h>

      void NNS_G2dInitMCAnimationInstance
      (
      NNSG2dMultiCellAnimation*   pMultiCellAnim,
      void*                              pWork,
      const NNSG2dCellAnimBankData* pAnimBank,
      const NNSG2dCellDataBank*          pCellDataBank,
      const NNSG2dMultiCellDataBank*  pMultiCellDataBank,
      NNSG2dMCType  mcType
      );

## Arguments

pMultiCellAnim | [OUT] Multicell animation
pWork | [IN] Work region used by the multicell entity
pAnimBank | [IN] Animation bank that defines the cell animation that composes the multicell
pCellDataBank | [IN] Cell data bank
pMultiCellDataBank | [IN] Multicell data bank
mcType | [IN] Multicell entity type (`NNSG2dMCType`type)``

## Return Values

None.

## Description

Initializes multicell animation. `pWork` is a pointer to the memory region in the entity to be used as the work region. The work region size required for initializing the entity is obtained with the `NNS_G2dGetMCWorkAreaSize` function. `mcType` is an enumerated `NNSG2dMCType` that shows the multicell animation entity type. The `NNSG2dMCType` definition is shown below. ``

    typedef enum
    {
    NNS_G2D_MCTYPE_DONOT_SHARE_CELLANIM,
    NNS_G2D_MCTYPE_SHARE_CELLANIM

    }NNSG2dMCType;

When `NNS_G2D_MCTYPE_DONOT_SHARE_CELLANIM` is specified as `mcType`, the entity is initialized as the same data structures that were used in past versions and is processed in the same manner. If the programmer does not access multicell structure nodes or overwrite data, designating `NNS_G2D_MCTYPE_SHARE_CELLANIM` when initializing the entity provides an advantage in memory consumption and processing efficiency. When `NNS_G2D_MCTYPE_SHARE_CELLANIM` is specified as `mcType` and when data is input that plays back the same animation sequence on multiple nodes of a multicell, the cell animation entity is shared among those multiple nodes. This sharing reduces the memory consumption and the processing load for animation updates.

When `NNS_G2D_MCTYPE_SHARE_CELLANIM` has been specified, the multicell runtime entity does not store node-related information. As a result, node location changes and affine conversions are not supported. However, this specification uses fewer hardware resources (affine parameters) than `NNS_G2D_MCTYPE_DONOT_SHARE_CELLANIM` because it is guaranteed that nodes that playback the same cell animation will reference the same affine parameters, due to the above limitations. This is particulary true when rendering with the 2D graphics engine. This function replaces the `NNS_G2dInitMCAnimation`, `NNS_G2dInitMCInstance`, and `NNS_G2dSetMCDataToMCInstance` functions. The previous functions will remain to maintain compatibility.

## See Also

`NNS_G2dGetMCWorkAreaSize`, `NNS_G2dInitMCAnimation`, `NNS_G2dInitMCInstance`, `NNS_G2dSetMCDataToMCInstance`

## Revision History

01/31/2005 Initial version.