如何在window下面使用OpenGL作图-续GDI作图
2004-09-19 22:28
495 查看
如何在window下面使用OpenGL作图
1.先设置显示设备DC的位图格式(PIXELFORMAT)属性.
方法:填充(PIXELFORMATDESCRIPTOR)的结构//该结构决定了OpenGL作图的物理设备属性
比如:该结构中的dwFlags中PFD_DOUBLEBUFFER位如果没有被设置(置一),通过该设备的DC上作图的OpenGL的命令就不可能使用双缓冲来做动画.
注意:有些位图格式(PIXELFORMAT)是DC支持的,而有些DC就不支持了.
所以:程序必须先用ChoosePixelFormat来选择DC所支持的与指定的位图格式最接近的位图格式.
然后用SetPixelFormat设置DC的位图格式.
2.利用刚才的设备DC建立渲染上下文RC(),使得RC与DC建立联系
方法:用wglCreateContext在设备DC建立渲染上下文RC;用wglMakeCurrent使得RC与DC建立联系
3.调用OpenGL函数作图.由于线程与RC一一对应,OpenGL函数中的参数中都不指明本线程RC的句柄
方法:用OpenGL函数就够了
4.作图完毕后先通过设置当前线程的RC为NULL(方法::wglMakeCurrent(NULL,NULL);)断开当前线程和该渲染上下文的联系,由此断开与设备DC的联系.
注意:由于此时的RC句柄的有效性在微软自己的文档中并没有讲清楚,所以在后面的删除RC的时候要先判断RC的有效性(if(hRC) wglDeleteContext(hRC);)
在根据情况释放(ReleaseDC)或者删除(DeleteDC)设备DC
1.先设置显示设备DC的位图格式(PIXELFORMAT)属性.
方法:填充(PIXELFORMATDESCRIPTOR)的结构//该结构决定了OpenGL作图的物理设备属性
比如:该结构中的dwFlags中PFD_DOUBLEBUFFER位如果没有被设置(置一),通过该设备的DC上作图的OpenGL的命令就不可能使用双缓冲来做动画.
注意:有些位图格式(PIXELFORMAT)是DC支持的,而有些DC就不支持了.
所以:程序必须先用ChoosePixelFormat来选择DC所支持的与指定的位图格式最接近的位图格式.
然后用SetPixelFormat设置DC的位图格式.
2.利用刚才的设备DC建立渲染上下文RC(),使得RC与DC建立联系
方法:用wglCreateContext在设备DC建立渲染上下文RC;用wglMakeCurrent使得RC与DC建立联系
3.调用OpenGL函数作图.由于线程与RC一一对应,OpenGL函数中的参数中都不指明本线程RC的句柄
方法:用OpenGL函数就够了
4.作图完毕后先通过设置当前线程的RC为NULL(方法::wglMakeCurrent(NULL,NULL);)断开当前线程和该渲染上下文的联系,由此断开与设备DC的联系.
注意:由于此时的RC句柄的有效性在微软自己的文档中并没有讲清楚,所以在后面的删除RC的时候要先判断RC的有效性(if(hRC) wglDeleteContext(hRC);)
在根据情况释放(ReleaseDC)或者删除(DeleteDC)设备DC
相关文章推荐
- 如何使用opengl的扩展
- window下如何配置sybase使用最大内存
- 如何在ASP.NET2.0下面使用基于数据库(SqlServer2000)的Cache
- 如何在asp.net2.0下面使用基于数据库(sqlserver2000)的cache
- 如何在VC++.NET2003中使用OpenGL
- 如何使用项目子文件夹下面的资源文件?
- 如何在Windows下面使用bison
- 如何在Windows下面使用bison呢?
- 教你如何使用window live writer给博客图片添加水印
- (转)如何在Windows下使用OpenGL 2.0的API(包括GLSL)
- 如何在自己的opengl程序中使用GLSL
- 如何使用radiobuttonlist实现下面的功能
- Windows下如何使用高版本OpenGL
- window下如何配置sybase使用最大内存
- 在使用JS调用Window.close()方法关闭一个窗口是,如何禁止弹出对话窗口?
- 如何在ASP.NET2.0下面使用基于数据库(SqlServer2000)的Cache
- JSView 2.0.5 如何在firefox 3.6下面进行使用
- 如何使用用window.open()
- 如何使用opengl扩展
- 如何在ASP.NET2.0下面使用基于数据库(SqlServer2000)的Cache