# G3*_PushMtx

## Syntax

      #include <nitro/gx/g3imm.h>
      #include <nitro/gx/g3b.h>
      #include <nitro/gx/g3c.h>

      void G3_PushMtx();

      // Below are APIs for creating the display list (command list)
      void G3B_PushMtx(GXDLInfo* info);
      void G3C_PushMtx(GXDLInfo* info);
      void G3BS_PushMtx(GXDLInfo* info);
      void G3CS_PushMtx(GXDLInfo* info);

## Arguments

info | Command List Information.

## Return Values

None.

## Description

This function pushes the current matrix onto the stack. However, because the position coordinate matrix stack and the directional vector matrix are connected, operations are performed on both stacks when the matrix mode is set to either Position or Position-Vector simultaneous set mode. You can use the `G3X_IsMtxStackOverflow` function to check whether the push operation caused a matrix stack overflow.
The current matrix stack level can be retrieved with the `G3X_GetMtxStackLevelPV` or `G3X_GetMtxStackLevelPJ` functions.

## See Also

`G3*_MtxMode
G3*_Identity
G3*_LoadMtx43
G3*_LoadMtx44
G3*_MultMtx43
G3*_MultMtx44
G3*_MultMtx33
G3*_PopMtx
G3*_StoreMtx
G3*_RestoreMtx
G3*_Scale
G3*_Translate`

## Revision History

2004/01/19 Initial version.

CONFIDENTIAL