OpenGL 入门1
来源:互联网 发布:mac腾讯视频卡死 编辑:程序博客网 时间:2024/04/30 15:11
原文链接:http://blog.csdn.net/cordova/article/details/52485909
以及:http://ogldev.atspace.co.uk/www/tutorial01/tutorial01.html
OpenGl Tutorial 1
创建一个窗口
因为不同的窗口操作系统具有不同的创建窗口的API,为了屏蔽这种差异性,所有的东西都被GLUT封装了一遍,现在俺们就可以直接用GLUT写一窗口,而在不同的系统上用了。他是怎么做到的呢?
void createContex()
{
# ifdef WIN32
wglCreateContex()
# else ifdef LINUX
//linux 平台调用
# else ifdef MAC
//苹果平台调用
# endif
}
当然实际情况更复杂,不过暂时可以这么理解下下。
主要API
glutInit(&argc,argv);
这两个参数就是main函数传入的两个参数。可以通过使用传入-gldebug来显示GL的错误,或者用-sync禁掉窗口的异步特性。
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
设置窗口的显示模式。常用的模式如下:
glutInitWindowSize(GLint width,GLint height);
初始化窗口的大小
glutInitWindowPosition(GLint x,GLint y);
初始化窗口左上角的起始坐标
glutCreateWindow("you_window_name");
设置窗口的名字
glutDisplayFunc(displayFunc);
这个函数用于设置渲染回调,一般来说在刚创建窗口之后会执行一次渲染回调用于渲染一帧图像。若是改变窗口的位置和大小将会导致这个函数被调用一次
glClearColor(0.0f,0.0f,0.0f,0.0f);
OpenGL本身是一个虚拟状态机,此函数用于设置我们清空backbuffer所用的颜色值。一旦此颜色被设置而不被更改的话,每次清空backbuffer的操作都会使用这里设定的颜色值。颜色值的格式是rgba,每一个元素的取值范围是[0,1]。
glutMainLoop();
开始glut的主循环,这个循环会监测各种消息(比如按键消息)。当窗口接受到消息时,glut调用不同的处理函数来改变渲染状态进而以重绘来改变屏幕上渲染的结果。
glutClear(GL_COLOR_BUFFER_BIT);
用之前设置的颜色来设置backbuffer的颜色
glutSwapBuffer();
交换前后缓存的指针
示例在原文链接
0 0
- OpenGL入门【1 快速入门】
- OpenGL (1) 入门
- OpenGL入门(1)
- opengl入门1
- opengl入门6。1
- Opengl ES入门1
- OpenGL 入门1
- opengl入门系列1- OpenGL纹理环绕
- OpenGL入门
- OpenGL 入门
- Opengl入门
- OpenGL 入门
- OpenGL 入门
- opengl入门
- OpenGL入门
- opengl入门
- OpenGL入门
- openGL入门
- 提交表单时servlet接收到的参数为空
- [BZOJ1299] [LLH邀请赛]巧克力棒(博弈Nim游戏)
- android实现banner界面广告图片循环轮播(包括手动活动轮播)
- 开发工具的使用与WEB项目的建立【武理解析前端用户交互系统】
- Huffuman树
- OpenGL 入门1
- response向客户端输出的两种方式
- Android自定义URL使用Scheme方式唤起Activity或App
- 网络编程(44)—— windows平台下创建线程的四种方法(三) 工作者线程和CWinThread线程类管理
- 使用eclipse编译含有C++11特性的代码
- weerrrr
- 简单n!
- 通过js获取表单数据
- Log4net 日志文件的操作