# NNS_G2dGetOamManExInstance

## Syntax

      #include <nnsys/g2d/g2d_OAMEx.h>

      BOOL NNS_G2dGetOamManExInstance(
                                      NNSG2dOamManagerInstanceEx*    pOam,
                                      NNSG2dOamChunkList*             pOamOrderingTbl,
                                      u8                              lengthOfOrderingTbl,
                                      u16                             numPooledOam,
                                      NNSG2dOamChunk*                 pPooledOam,
                                      u16                             lengthAffineBuffer,
                                      NNSG2dAffineParamProxy*         pAffineBuffer );

## Arguments

`pOam` | [OUT] Extended OAM manager entity.
`pOamOrderingTbl` | [IN] Starting address of the ordering table
`lengthOfOrderingTbl` | [IN] Length of the ordering table (must be at least 1)
`numPooledOam` | [IN] The number of `OBJChunk`s (must be at least 1)
`pPooledOam` | [IN] Pointer to the `OBJChunk` array (must be non-`NULL` and have a length sufficient for `OBJChunk`)
`lengthAffineBuffer` | [IN] Length of the affine parameter buffer array (if not used, set to zero)
`pAffineBuffer` | [IN] Pointer to the affine parameter buffer array (if not used, set to `NULL`)

## Return Values

`TRUE` if initialization succeeds.

## Description

Initializes the extended OAM Manager. The Ordering table length becomes the maximum depth that can be specified when OBJs are registered. The longer the ordering table is, the greater the amount of overhead that is generated during rendering.
The `numPooledOam` argument is the maximum number of OBJs that can be registered in the manager.
You must specify a value of 1 or greater.
The `numPooledOam` argument can be larger than the number of OBJ attributes that the manager actually uses. (In such a case, the manager displays the OBJs using time-sharing over several frames.)
Bear in mind that the number of OBJ attributes that the manager actually uses is determined by the return value of the OBJ registration function that is set by `NNSG2dOamExEntryFunctions`.
The `lengthAffineBuffer` argument is the maximum number of affine parameters that can be registered in the manager.
When affine transformation is not used, set it to zero and set `pAffineBuffer` to `NULL`.
The name of this function has been changed from `NNS_G2dGetNewOamInstanceEx`. The previous function remains under a different name in order to maintain compatibility.

## See Also

`NNS_G2dGetNewOamInstanceEx`
`NNS_G2dInitAffineManagerEx`
`NNS_G2dSetOamManExEntryFunctions`
`NNSG2dOamExEntryFunctions`

## Revision History

2005/06/06 Added a link to `NNSG2dOamExEntryFunctions`.
2005/06/06 Added Description.
2004/08/02 Renamed function.

2004/06/22 Initial version.

CONFIDENTIAL