#include <nnsys/g3d/anm.h>
typedef enum
{
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SCALEONE = 0x00000001,
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_ROTZERO = 0x00000002,
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_TRANSZERO = 0x00000004,
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SET = 0x00000008,
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_MULT = 0x00000010,
NNS_G3D_MATANM_RESULTFLAG_WIREFRAME = 0x00000020
}
NNSG3dMatAnmResultFlag;
typedef struct NNSG3dMatAnmResult_
{
NNSG3dMatAnmResultFlag flag;
u32 prmMatColor0;
u32 prmMatColor1;
u32 prmPolygonAttr;
u32 prmTexImage;
u32 prmTexPltt;
fx32 scaleS, scaleT;
fx16 sinR, cosR;
fx32 transS, transT;
u16 origWidth, origHeight;
fx32 magW, magH;
}
NNSG3dMatAnmResult;
The NNSG3dMatAnmResult structure stores material information. GD3 uses the information stored in this structure to send commands to the Geometry Engine. The structure is created and used during the execution of the NNSi_G3dFuncSbc_MAT function (i.e., when it is called during the SBC's MAT command process). To implement material animation, the NNSi_G3dFuncSbc_MAT function acts internally to set the data stored in this structure in accordance with the animation data. By setting a callback in NNS_G3D_SBC_MAT, the material's settings can be controlled from the user program.
| Data Member | Description |
|---|---|
| flag | The flag of type NNSG3dMatAnmResultFlag. |
| prmMatColor0 | Stores diffuse and ambient. Equivalent to the parameter of the MaterialColor0 geometry command. |
| prmMatColor1 | Stores specular and emission. Equivalent to the parameter of the MaterialColor1 geometry command. |
| prmPolygonAttr | Stores the polygon attribute value. Equivalent to the parameter of the PolygonAttr geometry command. |
| prmTexImage | Stores the texture parameter. Equivalent to the parameter of the TexImageParam geometry command. |
| prmTexPltt | Stores the texture palette's base address. Equivalent to the parameter of the TexPlttBase geometry command. |
| scaleS | The texture's scale value in the S direction. |
| scaleT | The texture's scale value in the T direction. |
| sinR | The sine of the texture's rotation angle. |
| cosR | The cosine of the texture's rotation angle. |
| transS | The parallel transform component in the S direction for the texture. |
| transT | The parallel transform component in the T direction for the texture. |
| origWidth | The width of the texture corresponding to the material at time of g3dcvtr output. |
| origHeight | The height of the texture corresponding to the material at time of g3dcvtr output. |
| magW | The magnification determined when binding model and texture. Normally this is FX32_ONE. |
| magH | The magnification determined when binding model and texture. Normally this is FX32_ONE. |
NNSG3dMatAnmResultFlag Values |
Description |
|---|---|
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SCALEONE |
When this flag is set, the values stored in scaleS and scaleT are disabled. Both are treated as if FX32_ONE has been entered. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_ROTZERO |
When this flag is set, the values stored in sinR and cosR are disabled. sinR is 0, but cosR is treated as if FX32_ONE has been entered. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_TRANSZERO |
When this flag is set, the values stored in transS and transT are disabled. Both are treated as if 0 has been entered. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SET |
When this flag is set, the texture matrix corresponding to this structure's setting gets set as the current texture matrix. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_MULT |
When this flag is set, the texture matrix corresponding to this structure's setting gets multiplied to the current texture matrix. |
NNS_G3D_MATANM_RESULTFLAG_WIREFRAME |
When this flag is set, the polygons belonging to the material are drawn as wireframes. |
2004/10/13 Initial version.
CONFIDENTIAL