# NNS_G3dDraw1Mat1Shp

## Syntax

      #include <nnsys/g3d/1mat1shp.h>

      void
      NNS_G3dDraw1Mat1Shp(
          const NNSG3dResMdl* pResMdl,
          u32 matID,
          u32 shpID,
          BOOL sendMat
      );

## Arguments

pResMdl | Pointer to the model resource.
matID | Index of the material to be rendered.
shpID | Index of the shape to be rendered.
sendMat | Whether to send material information to the geometry engine.

## Return Values

None.

## Description

This function is good for rendering very simple objects. It renders the material and shape specified in the model by `matID` and `shpID`. If `sendMat` is FALSE, this function does not send material information. With this function, some operations (including general setup processes required before rendering a model, and data copying that accompanies animation calculations) are not performed; the same rendering is thus accomplished faster than with the `NNS_G3dDraw` function. However, this function has the following limitations:

- Animation resources cannot be played.
- It cannot contain a callback process.
- It is not possible to compose with a material's global state. The model's material information is sent to the geometry engine as is.
- It is not possible to render shapes that have envelopes.

Because DMA transfer is used to send display lists, it is necessary to write the display list back to memory using functions such as `DC_Flush*` and `DC_Store*` -- before calling this function.

## See Also

`NNS_G3dDraw`

## Revision History

2008/01/23 Added text to reflect the use of DMA transfer.
2004/08/31 Initial version.

CONFIDENTIAL