typedef struct NNSG2dOamExEntryFunctions
{
NNSG2dGetOamCpacityFuncPtr getOamCapacity;
NNSG2dGetOamCpacityFuncPtr getAffineCapacity;
NNSG2dEntryNewOamFuncPtr entryNewOam;
NNSG2dEntryNewOamAffineFuncPtr entryNewAffine;
}NNSG2dOamExEntryFunctions;
typedef u16 (*NNSG2dGetOamCpacityFuncPtr)();
typedef u16 (*NNSG2dGetOamAffineCpacityFuncPtr)();
typedef BOOL (*NNSG2dEntryNewOamFuncPtr)( const GXOamAttr* pOam, u16 index );
typedef u16 (*NNSG2dEntryNewOamAffineFuncPtr)( const MtxFx22* mtx, u16 index );
getOamCapacity, the expanded OAM manager puts the registered OBJ across multiple frames and displays by time-sharing.getAffineCapacity, the expanded OAM manager loads the registered affine parameters using time-sharing across multiple frames and shows the OBJ that are using the affine parameters.
entryNewOam gets called. If the OAM manager supplied with G2d is used for implementing entryNewOam, the index parameter does not get used.
static u16 OamMgrExCBEntryOamAffine_( const MtxFx22* pMtx, u16 index )
{
#pragma unused( index )
return NNS_G2dEntryOamManagerAffine( &myOamMgr_, pMtx );
}
static BOOL CallBackEntryNewOam(const GXOamAttr* pOam, u16 index)
{
const u32 szByte = sizeof( GXOamAttr );
DC_FlushRange( (void*)pOam, szByte );
GX_LoadOAM( pOam, index * szByte, szByte );
return TRUE;
}
entryNewOam, the affine parameter number index is like the number of times that entryNewAffine gets called.
static u16 OamMgrExCBEntryOamAffine_( const MtxFx22* pMtx, u16 index )
{
#pragma unused( index )
return NNS_G2dEntryOamManagerAffine( &myOamMgr_, pMtx );
}
NNS_G2dSetOamManExEntryFunctions, NNS_G2dGetOamManExInstance
06/06/2005 Initial version.