Gl.PushMatrix (gb.opengl)

Static Sub PushMatrix ( )

Push the current matrix stack.

Description

There is a stack of matrices for each of the matrix modes. In Gl.MODELVIEW mode, the stack depth is at least 32. In the other modes, Gl.COLOR, Gl.PROJECTION, and Gl.TEXTURE, the depth is at least 2. The current matrix in any mode is the matrix on the top of the stack for that mode.

Gl.PushMatrix pushes the current matrix stack down by one, duplicating the current matrix. That is, after a Gl.PushMatrix call, the matrix on top of the stack is identical to the one below it.

Gl.PopMatrix pops the current matrix stack, replacing the current matrix with the one below it on the stack.

Initially, each of the stacks contains one matrix, an identity matrix.

It is an error to push a full matrix stack or to pop a matrix stack that contains only a single matrix. In either case, the error flag is set and no other change is made to GL state.

Errors

Gl.STACK_OVERFLOW is generated if Gl.PushMatrix is called while the current matrix stack is full.

Gl.STACK_UNDERFLOW is generated if Gl.PopMatrix is called while the current matrix stack contains only a single matrix.

Gl.INVALID_OPERATION is generated if Gl.PushMatrix or Gl.PopMatrix is executed between the execution of Gl.Begin and the corresponding execution of Gl.End.

Associated Gets

Gl.Get with argument Gl.MATRIX_MODE

Gl.Get with argument Gl.COLOR_MATRIX

Gl.Get with argument Gl.MODELVIEW_MATRIX

Gl.Get with argument Gl.PROJECTION_MATRIX

Gl.Get with argument Gl.TEXTURE_MATRIX

Gl.Get with argument Gl.COLOR_MATRIX_STACK_DEPTH

Gl.Get with argument Gl.MODELVIEW_STACK_DEPTH

Gl.Get with argument Gl.PROJECTION_STACK_DEPTH

Gl.Get with argument Gl.TEXTURE_STACK_DEPTH

Gl.Get with argument Gl.MAX_MODELVIEW_STACK_DEPTH

Gl.Get with argument Gl.MAX_PROJECTION_STACK_DEPTH

Gl.Get with argument Gl.MAX_TEXTURE_STACK_DEPTH

See also

Gl.LoadMatrix, Gl.LoadTransposeMatrix, Gl.MultMatrix, Gl.MultTransposeMatrix, Gl.Rotate, Gl.Scale, Gl.Translate,

See original documentation on OpenGL website