Функция glPushAttrib
Отправляет стек атрибутов.
Синтаксис
void WINAPI glPushAttrib(
GLbitfield mask
);
Параметры
-
mask
-
Маска, указывающая, какие атрибуты следует сохранить. Символические константы маски и связанное с ними состояние OpenGL приведены ниже (список абзацев с отступом, атрибуты которых сохраняются):
-
GL_ACCUM_BUFFER_BIT
-
Значение очистки буфера накопления
-
GL_COLOR_BUFFER_BIT
-
бит включения GL_ALPHA_TEST
Функция альфа-теста и ссылочные значения
бит включения GL_BLEND
Смешивание функций источника и назначения
бит включения GL_DITHER
параметр GL_DRAW_BUFFER
бит включения GL_LOGIC_OP
Функция логического операции
Цветовые и индексные режимы очистки значений
Цветовые и индексные маски для записи
-
GL_CURRENT_BIT
-
Текущий цвет RGBA
Текущий индекс цвета
Текущий нормальный вектор
Текущие координаты текстуры
Флаг GL_CURRENT_RASTER_POSITION_VALID текущей позиции растра
Цвет RGBA, связанный с текущей позицией растра
Индекс цвета, связанный с текущей позицией растра
Координаты текстуры, связанные с текущей позицией растра
флаг GL_EDGE_FLAG
-
GL_DEPTH_BUFFER_BIT
-
бит включения GL_DEPTH_TEST
Функция тестирования буфера глубины
Значение очистки буфера глубины
бит включения GL_DEPTH_WRITEMASK
-
GL_ENABLE_BIT
-
флаг GL_ALPHA_TEST
флаг GL_AUTO_NORMAL
флаг GL_BLEND
Включение битов для определяемых пользователем плоскостей обрезки
GL_COLOR_MATERIAL
флаг GL_CULL_FACE
флаг GL_DEPTH_TEST
Флаг GL_DITHER
флаг GL_FOG
GL_LIGHTi , где 0 <= i< GL_MAX_LIGHTS
флаг GL_LIGHTING
флаг GL_LINE_SMOOTH
флаг GL_LINE_STIPPLE
флаг GL_COLOR_LOGIC_OP
флаг GL_INDEX_LOGIC_OP
GL_MAP1_x, где x — тип карты
GL_MAP2_x, где x — тип карты
флаг GL_NORMALIZE
флаг GL_POINT_SMOOTH
флаг GL_POLYGON_OFFSET_LINE
Флаг GL_POLYGON_OFFSET_FILL
флаг GL_POLYGON_OFFSET_POINT
флаг GL_POLYGON_SMOOTH
флаг GL_POLYGON_STIPPLE
флаг GL_SCISSOR_TEST
флаг GL_STENCIL_TEST
флаг GL_TEXTURE_1D
флаг GL_TEXTURE_2D
Флаги GL_TEXTURE_GEN_x, где x — S, T, R или Q
-
GL_EVAL_BIT
-
GL_MAP1_x включить биты, где x — это тип карты
GL_MAP2_x включить биты, где x — это тип карты
Конечные точки и деления 1-D сетки
Конечные точки и деления 2-D сетки
бит включения GL_AUTO_NORMAL
-
GL_FOG_BIT
-
GL_FOG включить флаг
Цвет тумана
Плотность тумана
Начало линейного тумана
Линейный конец тумана
Индекс тумана
значение GL_FOG_MODE
-
GL_HINT_BIT
-
параметр GL_PERSPECTIVE_CORRECTION_HINT
параметр GL_POINT_SMOOTH_HINT
параметр GL_LINE_SMOOTH_HINT
параметр GL_POLYGON_SMOOTH_HINT
параметр GL_FOG_HINT
-
GL_LIGHTING_BIT
-
бит включения GL_COLOR_MATERIAL
значение GL_COLOR_MATERIAL_FACE
Параметры цветного материала, отслеживающие текущий цвет
Цвет окружающей сцены
значение GL_LIGHT_MODEL_LOCAL_VIEWER
параметр GL_LIGHT_MODEL_TWO_SIDE
бит включения GL_LIGHTING
Включить бит для каждого индикатора
Интенсивность окружающего, диффузного и зеркального освещения для каждого света
Направление, положение, экспоненты и угол отсечения для каждого света
Константные, линейные и квадратитические коэффициенты затухания для каждого света
Внешний, диффузный, зеркальный и испускающий цвет для каждого материала
Индексы внешнего, диффузного и зеркального цвета для каждого материала
Зричная экспонента для каждого GL_SHADE_MODEL параметра материала
-
GL_LINE_BIT
-
флаг GL_LINE_SMOOTH
бит включения GL_LINE_STIPPLE
Шаблон прогона линии и счетчик повтора
Толщина линии
-
GL_LIST_BIT
-
параметр GL_LIST_BASE
-
GL_PIXEL_MODE_BIT
-
параметры GL_RED_BIAS и GL_RED_SCALE
значения GL_GREEN_BIAS и GL_GREEN_SCALE
GL_BLUE_BIAS и GL_BLUE_SCALE
GL_ALPHA_BIAS и GL_ALPHA_SCALE
GL_DEPTH_BIAS и GL_DEPTH_SCALE
значения GL_INDEX_OFFSET и GL_INDEX_SHIFT
флаги GL_MAP_COLOR и GL_MAP_STENCIL
факторы GL_ZOOM_X и GL_ZOOM_Y
параметр GL_READ_BUFFER
-
GL_POINT_BIT
-
флаг GL_POINT_SMOOTH
Размер точки
-
GL_POLYGON_BIT
-
бит включения GL_CULL_FACE
значение GL_CULL_FACE_MODE
индикатор GL_FRONT_FACE
параметр GL_POLYGON_MODE
флаг GL_POLYGON_SMOOTH
бит включения GL_POLYGON_STIPPLE
Флаг GL_POLYGON_OFFSET_FILL
флаг GL_POLYGON_OFFSET_LINE
флаг GL_POLYGON_OFFSET_POINT
GL_POLYGON_OFFSET_FACTOR
GL_POLYGON_OFFSET_UNITS
-
GL_POLYGON_STIPPLE_BIT
-
Изображение многоугольника
-
GL_SCISSOR_BIT
-
флаг GL_SCISSOR_TEST
Ножницы
-
GL_STENCIL_BUFFER_BIT
-
бит включения GL_STENCIL_TEST
Функция набора элементов и ссылочные значения
Маска значений набора элементов
Действия сбоем набора элементов, передачей и передачей буфера глубины
Прозрачное значение буфера набора элементов
Маска записи в буфер трафарета
-
GL_TEXTURE_BIT
-
Включение битов для четырех координат текстуры
Цвет границы для каждого изображения текстуры
Функция минификации для каждого изображения текстуры
Функция увеличения для каждого изображения текстуры
Координаты текстуры и режим переноса для каждого изображения текстуры
Цвет и режим для каждой среды текстуры
Включить биты GL_TEXTURE_GEN_x; x — S, T, R и Q.
параметр GL_TEXTURE_GEN_MODE для S, T, R и Q
Уравнения плоскости glTexGen для S, T, R и Q
-
GL_TRANSFORM_BIT
-
Коэффициенты шести отсеченных плоскостей
Включение битов для определяемых пользователем плоскостей обрезки
GL_MATRIX_MODE значение
флаг GL_NORMALIZE
-
GL_VIEWPORT_BIT
-
Диапазон глубин (ближний и дальний)
Источник окна просмотра и экстент
-
Возвращаемое значение
Эта функция не возвращает значение.
Коды ошибок
Следующие коды ошибок могут быть получены функцией glGetError .
Имя | Значение |
---|---|
|
Функция была вызвана при заполнении стека атрибутов. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Комментарии
Функция glPushAttrib принимает один аргумент, маску, которая указывает, какие группы переменных состояния следует сохранить в стеке атрибутов. Символические константы используются для задания битов в маске. Параметр mask обычно создается путем применения логической операции OR к нескольким из этих констант. Для сохранения всех состояний стека можно использовать специальную маску GL_ALL_ATTRIB_BITS.
Функция glPopAttrib восстанавливает значения переменных состояния, сохраненные с помощью последней команды glPushAttrib . Те, которые не сохранены, остаются без изменений.
Это ошибка при отправке атрибутов в полный стек или при выводе атрибутов из пустого стека. В любом случае флаг ошибки установлен, и никакие другие изменения не вносятся в состояние OpenGL.
Изначально стек атрибутов пуст.
Не все значения состояния OpenGL можно сохранить в стеке атрибутов. Например, нельзя сохранить пакет пикселей и распаковать состояние, состояние режима отрисовки, а также состояние выбора и обратной связи.
Глубина стека атрибутов зависит от реализации, но она должна быть не менее 16.
Следующие функции извлекают сведения, связанные с glPushAttrib и glPopAttrib:
glGet с аргументом GL_ATTRIB_STACK_DEPTH
glGet с аргументом GL_MAX_ATTRIB_STACK_DEPTH
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|