glPushMatrix 関数

glPushMatrix 関数と glPopMatrix 関数は、現在のマトリックス スタックをプッシュしてポップします。

構文

void WINAPI glPushMatrix(void);

パラメーター

この関数にはパラメーターはありません。

戻り値

この関数は値を返しません。

エラー コード

完全なマトリックス スタックをプッシュするか、1 つのマトリックスのみを含むマトリックス スタックをポップすると、エラーになります。 いずれの場合も、エラー フラグが設定され、OpenGL 状態に対するその他の変更は行われません。

glGetError 関数では、次のエラー コードを取得できます。

名前 意味
GL_STACK_OVERFLOW
関数は、現在のマトリックス スタックがいっぱいの間に呼び出されました。
GL_INVALID_OPERATION
glBegin の呼び出しと glEnd の対応する呼び出しの間に関数が呼び出されました。

解説

各行列モードには行列の積み重ねがあります。 GL_MODELVIEW モードでは、スタックの深さは少なくとも 32 です。 GL_PROJECTIONとGL_TEXTUREの他の 2 つのモードでは、深度は少なくとも 2 です。 任意のモードの現在の行列は、そのモードのスタックの上部にある行列です。

glPushMatrix 関数は、現在のマトリックス スタックを 1 つずつ押し下げ、現在のマトリックスを複製します。 つまり、 glPushMatrix 呼び出しの後、スタックの上部にあるマトリックスは、その下の行列と同じです。 glPopMatrix 関数は、現在の行列スタックをポップし、現在の行列をスタック上のその下の行列に置き換えます。 最初は、各スタックに 1 つの行列 (ID 行列) が含まれています。

次の関数は 、glPushMatrixglPopMatrix に関連する情報を取得します。

引数GL_MATRIX_MODEを含む glGet

引数GL_MODELVIEW_MATRIXを含む glGet

引数GL_PROJECTION_MATRIXを含む glGet

引数GL_TEXTURE_MATRIXを含む glGet

引数GL_MODELVIEW_STACK_DEPTHを含む glGet

引数GL_PROJECTION_STACK_DEPTHを含む glGet

引数GL_TEXTURE_STACK_DEPTHを含む glGet

引数GL_MAX_MODELVIEW_STACK_DEPTHを含む glGet

引数GL_MAX_PROJECTION_STACK_DEPTHを含む glGet

引数GL_MAX_TEXTURE_STACK_DEPTHを含む glGet

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

関連項目

glBegin

glEnd

glFrustum

glLoadIdentity

glLoadMatrix

glMatrixMode

glMultMatrix

glOrtho

glPopMatrix

glRotate

glScale

glTranslate

glViewport