预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1、创建配置对话框和建立程序框架 NeHeSDK是把Nehe的教程中所介绍的所有功能,以面向对象的形式,提供给编程人员快速开发的一套编程接口。在下面的教程中,我将按NeHeSDK源码的功能分类,一步一步把这套api介绍给大家。如果你觉得有更好的学习方法,或者有其他有益的建议,请联系我。zhouwei02@mails.tsinghua.edu.cn;zhouwei506@mails.gucas.ac.cn 程序结构:这个框架程序可以分为以下四个部分: 根据用户设置配置OpenGL的窗口 创建OpenGL运行的窗口,并返回窗口的句柄 程序循环 退出程序 好下面我们从基本的程序显示设置和框架开始介绍,为了使用NeHeSDK,我们一般包含下面两个头文件(opengl.h,splash.h)。通常为了链接方便,我们可以把需要的链接库添加到程序中,如:#pragmacomment(lib,"NeheSDK.lib"),这句话告诉我们,在链接时使用NeheSDK的链接库。由于NeheSDK所有的函数都在名字空间Nehe中,为了方便起见在不引起冲突的情况下,我们使用这个名字空间。 #include"opengl.h" //包含创建OpenGL程序的框架类 #include"splash.h" //创建配置对话框 #pragmacomment(lib,"NeheSDK.lib") //包含NeheSDK.lib库 usingnamespaceNeHe; //使用NeHe名字空间 下面是Windows主函数和全局变量--OpenGL类的一个实例,它用来创建OpenGL的程序框架。 intWINAPIWinMain(HINSTANCEhInstance, //程序实例句柄 HINSTANCEhPrevInstance, //前一个程序实例句柄 LPSTRlpCmdLine, //命令行参数 intnCmdShow) //Window显示状态 { OpenGLWinOpenGL; //OpenGL类 下面我们分四步来创建这个程序 1、根据用户设置配置OpenGL的窗口 我们首先定义三个变量res,depth和fs来保存分辨率,颜色深度和是否全屏模式。其中res和depth的枚举类型如下:HYPERLINK"http://www.owlei.com/DancingWind/SDK/reference/Data%20Struct/SplashResolution.htm"\t"_blank"SplashResolutionHYPERLINK"http://www.owlei.com/DancingWind/SDK/reference/Data%20Struct/SplashDepth.htm"\t"_blank"SplashDepth SplashResolution res; //记录分辨率 SplashDepth depth; //记录颜色深度 bool fs; //是否全屏 接着调用DoSplash函数,显示配置对话框,把用户设置的参数保存到上面声明的变量中。 配置对话框如下所示: if(!DoSplash("setup.cfg",&res,&depth,&fs)) return1; 有了用户的设置信息,我们就可以设置窗口的显示模式了,代码如下: intwidth,height; //窗口的大小 intbpp; //颜色位深 //设置分辨率 switch(res) { casesr640x480: width=640; height=480;break; casesr800x600: width=800; height=600;break; casesr1024x768: width=1024;height=768;break; default: width=800;height=600; }; //设置颜色位深 switch(depth) { casesd8bit: bpp=8; break; casesd16bit: bpp=16; break; casesd32bit: bpp=32; break; default: bpp=32; }; //设置是否全屏 WinOpenGL.SetFullScreen((fs==true)?true:false); 2、创建OpenGL运行的窗口,并返回窗口的句柄 我们使用OpenGL类的CreateGLWindow函数创建一个供OpenGL运行的窗口,这个函数共有四个参数,第一个参数为窗口的标题栏,第二个参数为位窗口的宽度