#include <nnsys/g3d/glbstate.h> typedef struct { u32 cmd0; // G3_MtxMode -> G3_LoadMtx44 -> G3_MtxMode -> G3_LoadMtx43 u32 mtxmode_proj; // GX_MTXMODE_PROJECTION MtxFx44 projMtx; // Projection matrix // u32 mtxmode_posvec; // GX_MTXMODE_POSITION_VECTOR MtxFx43 cameraMtx; // Camera matrix u32 cmd1; // G3_LightVector * 4 u32 lightVec[4]; // Light vector u32 cmd2; // G3_MatColorDiffAmb -> G3_MatColorSpecEmi -> G3_PolygonAttr -> G3_ViewPort u32 prmMatColor0; u32 prmMatColor1; u32 prmPolygonAttr; u32 prmViewPort; u32 cmd3; // G3_LightColor * 4 u32 lightColor[4]; // Light color u32 cmd4; // G3_MultMtx43 -> G3_Scale -> G3_TexImageParam MtxFx33 prmBaseRot; VecFx32 prmBaseTrans; VecFx32 prmBaseScale; u32 prmTexImageParam; u32 flag; // NNSG3dGlbFlag MtxFx43 invCameraMtx; MtxFx43 srtCameraMtx; MtxFx43 invSrtCameraMtx; MtxFx43 invBaseMtx; MtxFx44 invProjMtx; MtxFx44 invCameraProjMtx; VecFx32 camPos; VecFx32 camUp; VecFx32 camTarget; } NNSG3dGlb;
The NNSG3dGlb
structure manages the types of data used for multiple models and entire scenes, such as projection matrices, light color and direction, and camera position and direction. The structure stores data for the following.
The NNSG3dGlb
structure's only instance is the NNS_G3dGlb
global variable, which you can initialize before use by calling the NNS_G3dGlbInit
function. To access the data members held in this structure, use the NNS_G3dGlb*
functions.
To apply the NNSG3dGlb
structure's data in the Geometry Engine before you render with the NNS_G3dDraw
function, call the NNS_G3dGlbFlushP
, NNS_G3dGlbFlushVP
, or NNS_G3dGlbFlushWVP
function. When the NNS_G3dMdlUseGlbXXXXX
functions are used on model resources, the settings in this structure are used for such items as the default material color.
Note that G3D will sometimes use the data stored in the NNSG3dGlb
structure when information such as the camera matrix is needed while rendering models, such as those including billboards.
2007/05/17 Added structure definition.
2004/10/12 Initial version.
CONFIDENTIAL