# NNS_G2dDrawSprite*Fast

## Syntax

      #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 are not saved before and after rendering with the `NNS_G2dDrawSpriteXXXFast` function. 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_G2dDrawSpriteXXXFast();
    }
    G3_PopMtx(1);

As indicated in Code Example 2, `NNS_G2dDrawSpriteXXX` is implemented via `NNS_G2dDrawSpriteXXXFast`.

    Code Example 2:

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

## See Also

`NNS_G2dDrawSprite`
`NNS_G2dDrawSprite*`

## Revision History

2004/11/10 Initial version.

CONFIDENTIAL