glPushMatrixglPopMatrix - додати або витягнути з стеку матриць.

C специфікація

void glPushMatrix (void) ;
void glPopMatrix  (void) ;

Опис

Існує стек матриць для кожного режиму матриць. У режимі GL_MODELVIEW, глибина стеку повинна бути не меншою ніж 32 позиції. У режимах GL_COLOR, GL_PROJECTION i GL_TEXTURE, глибина стеку повинна бути не меншою 2 позицій. Поточна матриця у будь-якому режимі являється матрицею на вершині відповідного стеку матриць. Команда glPushMatrix вкладає поточну матрицю в стек, і дублює її. Тобто, після виклику команди glPushMatrix, матриця на вершині стеку являється ідентичною поточній. Команда glPopMatrix витягує матрицю з відповідного стеку матричного, замінюючи поточну матрицю матрицею розміщеною нижче у стеку. За умовчанням, кожен з стеків містить одну матрицю - матрицю ідентичності. Вважається, що додавання у переповнений стек матриць або витягування з стеку, який містить одну матрицю являється помилкою. У будь-якому випадку, встановлюється прапорець помилки і жодні зміни не вносяться у стан графічної бібліотеки.

Помилки

GL_STACK_OVERFLOW - генерується коли викликається команда glPushMatrix і відповідний стек матриць повністю заповнено. GL_STACK_UNDERFLOW - генерується коли викликається команда glPopMatrix і відповідний стек матриць містить тільки одну матрицю. GL_INVALID_OPERATION - генерується коли викликаються команди glPushMatrix або glPopMatrix між викликами glBegin і glEnd.

Пов'язані виклики

glGet з параметром GL_MATRIX_MODE glGet з параметром GL_COLOR_MATRIX glGet з параметром GL_MODELVIEW_MATRIX glGet з параметром GL_PROJECTION_MATRIX glGet з параметром GL_TEXTURE_MATRIX glGet з параметром GL_COLOR_MATRIX_STACK_DEPTH 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

Перегляньте також

glFrustum, glLoadIdentity, glLoadMatrix, glLoadTransposeMatrix, glMatrixMode, glMultMatrix, glMultTransposeMatrix, glOrtho, glRotate, glScale, glTranslate, glViewportВступ до OpenGL (Open Graphics Library) - відкрита графічна бібліотека Оригінал: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glPushMatrix.xml