|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Saving and Restoring Sets of State Variables
You can save and restore the values of a collection of state variables on an attribute stack with the commands glPushAttrib and glPopAttrib. The attribute stack has a depth of at least 16, and the actual depth can be obtained using GL_MAX_ATTRIB_STACK_DEPTH with glGetIntegerv. Pushing a full stack or popping an empty one generates an error.
In general, it's faster to use glPushAttrib and glPopAttrib than to get and restore the values yourself. Some values might be pushed and popped in the hardware, and saving and restoring them might be expensive. Also, if you're operating on a remote client, all the attribute data must be transferred across the network connection and back as it's saved and restored. However, your OpenGL implementation keeps the attribute stack on the server, avoiding unnecessary network delays.
void glPushAttrib(GLbitfield mask);
Saves all the attributes indicated by bits in mask by pushing them onto the attribute stack. The following Attribute Groups table lists the possible mask bits than can be logically ORed together to save any combination of attributes. Each bit corresponds to a collection of individual state variables. For example, GL_LIGHTING_BIT refers to all the state variables related to lighting, which include the current material color, the ambient, diffuse, specular, and emitted light, a list of the lights that are enabled, and the directions of the spotlights. When glPopAttrib is called, all those variables are restored. To find out exactly which attributes are saved for particular mask values, see OpenGL State Variables.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Экономия и Восстановление Комплектов Государственных Переменных
Вы можете сохранить и восстанавливать величины сбора государственных переменных во вспомогательную кипу с командами glPushAttrib и glPopAttrib. Вспомогательная кипа имеет глубину в 16, и фактическая глубина может быть получена используя GL_MAX_ATTRIB_STACK_DEPTH с glGetIntegerv. Выталкивая полную кипу или выталкивая пустой генерирует ошибку.
В общих чертах, это быстрее должно использовать glPushAttrib и glPopAttrib чем, чтобы получать и восстанавливать сами величины. Некоторые величины могли быть вытолкнуты и заглянуты аппаратные средства, и сохраняя и восстанавливая их могли быть дорогы. Также, если Вы действуете на дистанционном клиенте, все вспомогательные данные должны быть переданы через сетевую связь и как оно быть сохраненное и восстановленное. Тем не менее, ваша реализация OpenGL держит вспомогательному стеку в сервере, избегающих необязательных сетевых задержках.
аннулируйте glPushAttrib(маска GLbitfield);
Сохраняет все атрибуты указанные битами в маске выталкивая их во вспомогательный стек. Следующее Атрибута Группирует табличным спискам возможные биты маски чем может быть logically ORed вместе, чтобы сохранять любую комбинацию атрибутов. Каждый бит переписывается на сбор индивидуальных государственных переменных. Например, GL_LIGHTING_BIT имеет отношение ко всем государственным переменным имело отношение к освещению, которое включает текущий материальный цвет, окружающая среда, рассеянная, specular, и выдавшее свет, список освещения, которые приспособлены, и направления прожекторов. Когда glPopAttrib назван, все те переменные восстановлены. Чтобы обнаруживать, что точно какие атрибуты за исключением конкретные величины маски, смотри Государственные Переменные OpenGL.
| |
|
|
| |