NNS_G2dDrawOneOam3DDirect*Fast

C Specification

#include <nnsys/g2d/g2d_OamSoftwareSpriteDraw.h>

    void    NNS_G2dDrawOneOam3DDirectFast
    ( 
        const GXOamAttr*                pOam, 
        const NNSG2dImageAttr*          pTexImageAttr,
        u32                             texBaseAddr,
        u32                             pltBaseAddr
    );

    void    NNS_G2dDrawOneOam3DDirectWithPosFast
    ( 
        s16                             posX,
        s16                             posY,
        s16                             posZ,
        const GXOamAttr*                pOam, 
        const NNSG2dImageAttr*          pTexImageAttr,
        u32                             texBaseAddr,
        u32                             pltBaseAddr
    );

    void    NNS_G2dDrawOneOam3DDirectWithPosAffineFast
    ( 
        s16                             posX,
        s16                             posY,
        s16                             posZ,
        const GXOamAttr*                pOam, 
        const NNSG2dImageAttr*          pTexImageAttr,
        u32                             texBaseAddr,
        u32                             pltBaseAddr,
        const MtxFx22*                  pMtx
    );
	

Return Values

None.

Description

Directly renders a simple OBJ using the 3D Graphics Engine without using the internal buffer. The contents of the current matrix of the geometry engine are not saved before and after rendering with the NNS_G2dDrawOneOam3DDirectXXXFast() function. Since the Push and Pop processes of the current matrix stack are not performed, only that part will operate at a high speed. In particular, if it is not necessary to save each time the current matrix is rendered, more efficient processing becomes possible (Code Example 1).

Code Example 1:

G3_PushMtx();
for( i = 0; i < N; i++ )
{
    G3_Identity();// Or G3_LoadMtx43( &mtx ), etc.
    NNS_G2dDrawOneOam3DDirectXXXFast();
}
G3_PopMtx(1);   


As indicated in the code example below, NNS_G2dDrawOneOam3DDirectXXX is implemented via NNS_G2dDrawOneOam3DDirectXXXFast() (Code Example 2).

Code Example 2:

NNS_G2dDrawOneOam3DDirectXXX 
{
    G3_PushMtx();
        NNS_G2dDrawOneOam3DDirectXXXFast();
    G3_PopMtx(1);
}

See Also

NNS_G2dDrawOneOam3DDirect, NNS_G2dDrawOneOam3DDirectWithPos, NNS_G2dDrawOneOam3DDirectWithPosAffine

Revision History

2004/11/10 Initial version.


CONFIDENTIAL