zoukankan      html  css  js  c++  java
  • 【OpenGL编程指南】之状态管理

       OpenGL是一个状态机,很多状态一旦设定除非修改,否则将一直有效。这些状态如何被设置和管理呢?

    清除窗口

      函数glClearColor用于设置当前清除颜色,它由4个参数,分别指定red、green、blue和alpha的值,范围限定在[0,1]之内。

      函数glClear用当前清除值清除制定的缓冲区,常用缓冲区和名称如下图。

      

    基本状态管理

      OpenGL维护了许多状态和状态变量,其中大部分默认是“否”的状态,激活这些状态可能有很大的开销。为了打开或关闭状态,可以使用glEnableglDisable函数。

      通过glIsEnable、glGetBooleanv、glGetIntegerv等函数可以查询许多状态的当前值。

    属性组

      OpenGL将相关状态进行归组,称为属性组。比如,GL_LINE_BIT包含了5个状态变量:直线的宽度,GL_LINE_STIPPLE启用状态、直线点画模式、直线点画重复计数器和GL_LINE_SMOOTH启用状态。

      OpenGL大约有20个不同的属性组,他们都可以用glPushAttribglPopAttrib进行保存和恢复。其中前者的形式为:void glPushAttrib(GLbitfield mask),mask为后缀是_BIT的掩码位,OpenGL提供的数学组如下图所示。

      

  • 相关阅读:
    SQLite的SQL语法
    C/C++中各种类型int、long、double、char表示范围(最大最小值)
    君子性非异也,善假于物也
    简单工厂模式
    Linux下通配符总结
    Readprocessmemory使用方法
    C++ 清空消息队列
    一周自学动态站点设计
    iOS 8.0正式公布啦
    What is the difference between JRE,JVM and JDK?
  • 原文地址:https://www.cnblogs.com/liustdelphi/p/2933387.html
Copyright © 2011-2022 走看看