关于Nehe‘s OpenGL tutorial on Win32 Multisampling Application Creation的一些代码分析。

  最近的工作需使用OpenGL的MultiSample功能,在不使用glut,glfw等库的情况下,要创建支持Multisampling的OpenGL Render Context对于初学者来讲还是要花一番功夫的。昨天晚上又把Nehe’s OpenGL tutorial里的Lesson 46拿出来看了一下,主要讲的是如何建立支持Multisampling的OpenGL RC。 为了加强理解,现把其代码实现的主要流程整理如下:

  (下面的流程图只针对建立RC过程中核心操作进行解析,并不涉及其他诸如 win32 消息循环,OpenGL矩阵设置,图形绘制等方面的内容,主要关注点在于如何建立RC)

  

  由上图可以看出,首先建立一个window,建立临时的RC, 以便获得opengl extension相关函数指针,或者使用glew库,初始化,获得所有opengl函数指针。调用相关函数查询是否支持Multisampling,如果支持,调用wglChoosePixelFormatARB()选择新的pixelformat。由于一个HWND只能设置一个pixelformat,因此我们要使用新的pixelformat需要销毁旧的window,重新生成。重新生成之后,采用新的pixelformat进行常规操作即可。

  以上。

关于Nehe‘s OpenGL tutorial on Win32 Multisampling Application Creation的一些代码分析。

时间: 2024-08-29 23:22:24

关于Nehe‘s OpenGL tutorial on Win32 Multisampling Application Creation的一些代码分析。的相关文章

OpenGL tutorial资源在mac yosemite下的cmake生成工程问题

如果你在使用cmake -G Xcode -Wno-dev OpenGL_Tutorial 时,出现了pThread.h not found的错误, 碰巧你和我一样使用的还是 2.8 版本的cmake. 那么请试用brew install cmake来安装最新的3.0.2版本的cmake. OpenGL tutorial的资源: 首先到网址[1],下载源代码,解压后使用cmake -G Xcode -Wno-dev ./Opengl_tutorial 生成xcode的项目文件. 然后就可以边看教

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ格式分析

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ文件格式分析作者:yuezang - iTyran 在iOS的3D开发中常常需要导入通过3DS MAX之类的3D设计软件生成的模型.因为OpenGL ES是不能直接读取这些文件的,所以常常需要开发人员增加接口来导入.通常的做法是在建模软件中建立3D模型之后在OpenGL ES中导入并进行控制.    3DS MAX通常的保存格式有*.max(现在生成的版本的格式),*.3ds(低版本的3ds Max生成的格式)

win32 Application 和Win32 Console Application 的区别

Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序.  其中Win32 Application 就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的.不规则形状的-- 它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制.  而Win32 Console Application(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令

【转】win32 Application和win32 Console Application

这几天在创建MFC项目时,常常遇到一下两个连接错误,例如: 1. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main解决方法: [Project] --> [Settings] --> 选择"Link"属性页, 在Project Options中将/subsystem:console改成/subsystem:windows. 2. 还有一种经常出现的相反的情况 LIBCD.lib(win

DeepLearning tutorial(1)Softmax回归原理简介+代码详解

DeepLearning tutorial(1)Softmax回归原理简介+代码详解 @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43157801 本文介绍Softmax回归算法,特别是详细解读其代码实现,基于python theano,代码来自:Classifying MNIST digits using Logistic Regression,参考UFLDL. 一.Softmax回归简介 关于算法的详

nehe的opengl教程 opengl窗口章 移植到vs2013 win7环境下

1. 配置opengl环境,下载glut(opengl utility toolkit) https://www.opengl.org/resources/libraries/glut/      到本地.解压后有两个lib文件,两个dll文件和一个.h文件. 2. glut.lib和glut32.lib拷贝到X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib下. 3. glut.dll和glut32.dll拷贝到C:\Windo

UFLDL tutorial 代码分析

之前一直没怎么接触过代码,前段时间朋友提起了caffe.本想看看caffe怎么用,无奈自己太渣了,不会用……想起之前也没怎么接触过这方面知识,就从入门开始吧.本文代码来自UFLDL tutorial. 1.函数分析 MATLAB代码,和UFLDL Tutorial对应.代码调用minFunc求解,可以先看第二部分再看此处. minFunc : uncontrained optimizer using a line search strategy.(注:虽然此处没有表明,但方法只能求解无约束凸优化

《OpenGL游戏编程》第9章-PlanarShadow关键代码注释

阴影这块确实是难点.说到阴影就必须提到投影矩阵.模板值为1和2时分别渲染.说来话长,仅仅放上代码,供日后查阅. 1 /** 渲染墙面和阴影 */ 2 void CPlanarShadow::Render() 3 { 4 glClear(GL_STENCIL_BUFFER_BIT); /**< 清除模版缓存 */ 5 glEnable(GL_STENCIL_TEST); /**< 启用模版测试 */ 6 7 /** 循环处理每个墙面 */ 8 for(int i = 0; i < (int

C++ 让 Win32 Console Application 程序后台运行

方法一:(无闪现) 添加 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 方法二:(这个会有闪现) #include "windows.h" void main() { HWND hwnd; if(hwnd=::FindWindow("ConsoleWindowClass",NULL)) //找到控制