OpenGL解析

时间:2021-7-21 作者:qvyue

int main(int argc,char *argv[])
{

//初始化GLUT库,这个函数只是传说命令参数并且初始化glut库
glutInit(&argc, argv);

/*
 初始化双缓冲窗口,其中标志GLUT_DOUBLE、GLUT_RGBA、GLUT_DEPTH、GLUT_STENCIL分别指
 双缓冲窗口、RGBA颜色模式、深度测试、模板缓冲区
 
 --GLUT_DOUBLE`:双缓存窗口,是指绘图命令实际上是离屏缓存区执行的,然后迅速转换成窗口视图,这种方式,经常用来生成动画效果;
 --GLUT_DEPTH`:标志将一个深度缓存区分配为显示的一部分,因此我们能够执行深度测试;
 --GLUT_STENCIL`:确保我们也会有一个可用的模板缓存区。
 深度、模板测试后面会细致讲到
 */
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);

//GLUT窗口大小、窗口标题
glutInitWindowSize(800, 600);
glutCreateWindow("Triangle");

/*
 GLUT 内部运行一个本地消息循环,拦截适当的消息。然后调用我们不同时间注册的回调函数。我们一共注册2个回调函数:
 1)为窗口改变大小而设置的一个回调函数
 2)包含OpenGL 渲染的回调函数
 */
//注册重塑函数
glutReshapeFunc(changeSize);
//注册显示函数
glutDisplayFunc(RenderScene);

/*
 初始化一个GLEW库,确保OpenGL API对程序完全可用。
 在试图做任何渲染之前,要检查确定驱动程序的初始化过程中没有任何问题
 */
GLenum status = glewInit();
if (GLEW_OK != status) {
    
    printf("GLEW Error:%sn",glewGetErrorString(status));
    return 1;
    
}

//设置我们的渲染环境
setupRC();

glutMainLoop();




return  0;

}

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。