# NNS_G2dDrawSprite*Fast

## C Specification

      #include <nnsys/g2d/g2d_Softsprite.h>

      void NNS_G2dDrawSpriteFast
          (
      s16 px, s16 py, int pz,
      int sx, int sy,
      int U0, int V0, int U1, int V1
          );
      void NNS_G2dDrawSpriteSimpleFast  ( const NNSG2dSimpleSprite* pS );
      void NNS_G2dDrawSpriteBasicFast   ( const NNSG2dBasicSprite* pB );
      void NNS_G2dDrawSpriteExtendedFast( const NNSG2dExtendedSprite* pE );

## Description

Renders each type of sprite. The contents of the current matrix of the geometry engine will not be saved before and after rendering with the `NNS_G2dDrawSpriteXXXFast()` 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_G2dDrawSpriteXXXFast();
    }
    G3_PopMtx(1);

As indicated in the code example below, `NNS_G2dDrawSpriteXXX()` is implemented via `NNS_G2dDrawSpriteXXXFast()` (Code Example 2).

    Code Example 2:

    NNS_G2dDrawSpriteXXX();
    {
    G3_PushMtx();
    NNS_G2dDrawSpriteXXXFast();
    G3_PopMtx(1);
    }

## See Also

`NNS_G2dDrawSprite`, `NNS_G2dDrawSprite*`

## Revision History

11/10/2004 Initial version.