引言:OpenGL本身是一个大的状态机,会把当前对应的所有状态展示,为了不每次都重新加载这些状态,浪费资源和时间,会有一个持有ID的object记录某一种特定状态,方便之后绑定切换
以绑定窗口状态为例,形式如下:
//创建记录ID
GLuint objid = 0;
glGenObject(1,&objid); //这里分配一个id,相当于初始化分配内存,第一个参数表示1个
//绑定到上下文
glBindObject(GL_WINDOW_TARGET,objid); //绑定后才能确定后续操作的针对objid是哪一个,根据第一个参数确定是进行的什么操作
//设置窗口的一些选项
glSetObjectOption(GL_WINDOW_TARGET,GL_OPTION_WINDOW_WIDTH,800);
glSetObjectOption(GL_WINDOW_TARGET,GL_OPTION_WINDOW_HEIGHT,600);
//将上下文针对GL_WINDOW_TARGET的状态设置恢复为默认id位置设置为0即可
glBindObject(GL_WINDOW_TARGET,0);
//下次使用再次绑定 objid到GL_WINDOW_TARGET,这些选项再次生效