#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
);
None.
Directly renders a single OBJ using the 3D Graphics Engine without using the internal buffer. With this function, the content of the current matrix of the geometry engine is not saved before and after rendering. Because the push and pop processes of the current matrix stack are not performed, the speed of the operation is increased correspondingly. In particular, if it is not necessary to save the current matrix with each render, 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);
NNS_G2dDrawOneOam3DDirectXXX
is implemented via NNS_G2dDrawOneOam3DDirectXXXFast
.Code Example 2: NNS_G2dDrawOneOam3DDirectXXX { G3_PushMtx(); NNS_G2dDrawOneOam3DDirectXXXFast(); G3_PopMtx(1); }
NNS_G2dDrawOneOam3DDirect
NNS_G2dDrawOneOam3DDirectWithPos
NNS_G2dDrawOneOam3DDirectWithPosAffine
2004/11/10 Initial version.
CONFIDENTIAL