OPENGL中文教程 OPENGL-6-框架结构.doc

上传人:工**** 文档编号:556327338 上传时间:2024-03-26 格式:DOC 页数:13 大小:398.51KB
返回 下载 相关 举报
OPENGL中文教程 OPENGL-6-框架结构.doc_第1页
第1页 / 共13页
OPENGL中文教程 OPENGL-6-框架结构.doc_第2页
第2页 / 共13页
OPENGL中文教程 OPENGL-6-框架结构.doc_第3页
第3页 / 共13页
OPENGL中文教程 OPENGL-6-框架结构.doc_第4页
第4页 / 共13页
OPENGL中文教程 OPENGL-6-框架结构.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《OPENGL中文教程 OPENGL-6-框架结构.doc》由会员分享,可在线阅读,更多相关《OPENGL中文教程 OPENGL-6-框架结构.doc(13页珍藏版)》请在金锄头文库上搜索。

1、5、创建一个空白的OpenGL程序框架NeHe SDK是把Nehe的教程中所介绍的所有功能,以面向对象的形式,提供给编程人员快速开发的一套编程接口。在下面的教程中,我将按NeHe SDK源码的功能分类,一步一步把这套api介绍给大家。如果你觉得有更好的学习方法,或者有其他有益的建议,请联系我。,我在第四课的基础上,把公共的功能提取出来,并删除了特定的绘制函数,就完成了这个空白的程序框架,它可以使用基本的OpenGL绘制命令,并提供视口,文本,纹理类的接口,实用他们可以快速创建你想要的效果。这个框架分为两个部分,启用main.cpp文件完成创建窗口,提供必需的全局变量和执行程序循环等固定的功能。

2、在以后的演示程序中一般不在改变。draw.cpp文件完成具体的绘制操作,它随你的应用而变化。main.cpp的所有功能在前面的课程中都详细讲解过,这里只是把整个程序结构在说明一下,让你有一个清晰的认识。下面是它的七大结构1. 头文件和全局变量 2. Windows主函数 3. 根据用户设置配置OpenGL的窗口 4. 创建OpenGL运行的窗口,并返回窗口的句柄 5. 设置绘制字体的参数 6. 程序循环 7. 退出程序 我们一一介绍如下:1、头文件和全局变量#include opengl.h/ 包含创建OpenGL程序的框架类#include splash.h/ 创建配置对话框#include

3、 view.h/ 包含视口类的声明#include text.h/ 包含2D文字类的声明#include texture.h/ 包含纹理类的声明#pragma comment( lib, NeheSDK.lib )/ 包含NeheSDK.lib库using namespace NeHe;/ 使用NeHe名字空间Viewview;/ 创建视口类Text2Dtext2D;/ 2D文字类Texturetex;/ 使用全局变量Texture类的实例inttexID;/ 使用全局变量texID,保存加载的纹理ID2、Windows主函数int WINAPI WinMain(HINSTANCE hInst

4、ance, / 程序实例句柄 HINSTANCE hPrevInstance, / 前一个程序实例句柄 LPSTR lpCmdLine, / 命令行参数 int nCmdShow) / Window 显示状态OpenGL WinOpenGL;/ OpenGL类3、根据用户设置配置OpenGL的窗口/*根据用户设置配置OpenGL的窗口*/ 显示配置对话框 SplashResolutionres;/ 记录分辨率SplashDepthdepth;/ 记录颜色深度boolfs;/ 是否全屏 if(!DoSplash(setup.cfg,&res,&depth,&fs)return 1;int wid

5、th,height;/ 窗口的大小int bpp;/ 颜色位深/ 设置分辨率switch(res)case sr640x480:width=640;height=480; break;case sr800x600:width=800;height=600; break;case sr1024x768:width=1024; height=768; break;default:width=800; height=600;/ 设置颜色位深switch(depth)case sd8bit:bpp=8;break;case sd16bit:bpp=16;break;case sd32bit:bpp=3

6、2;break;default:bpp=32;/ 设置是否全屏WinOpenGL.SetFullScreen(fs=true) ? true : false); /*根据用户设置配置OpenGL的窗口:结束*/4、创建OpenGL运行的窗口,并返回窗口的句柄/*创建OpenGL运行的窗口,并返回窗口的句柄*/ 创建我们的OpenGL窗口if (!WinOpenGL.CreateGLWindow(DancingWinds OpenGL Framework, width, height, bpp, WinOpenGL.GetFullScreen()return 0; / 失败,则退出/ 返回窗口类

7、Window *win=WinOpenGL.GetWindow();/*创建OpenGL运行的窗口,并返回窗口的句柄:结束*/5、设置绘制字体的参数/*设置绘制字体的参数*/TextType ttype;/ 设置字体结构ttype.name=Courier New;/ 字体名称为Courier Newttype.size=24;/ 字体大小为24ttype.bold=false;/ 不使用粗体ttype.italic=false;/ 不使用斜体ttype.underline=false;/ 不使用下划线text2D.Setup(&WinOpenGL,ttype);/ 设置字体/*设置绘制字体的

8、参数:结束*/6、程序循环/*程序循环*/bool finish=false;/ 执行程序循环while(!finish)/ 绘制场景finish=!WinOpenGL.DrawGLScene();/ 按ESC退出if(!finish)finish=win-GetKey(VK_ESCAPE);/*程序循环:结束*/7、退出程序/*退出程序*/ / 关闭 WinOpenGL.KillGLWindow(); return 0; / 退出程序/*退出程序:结束*/到这里框架结构就完成了,下面我们进入到draw.cpp文件中。这个文件主要完成你特定功能的绘制操作,为了以后的演示方便,我们定义了一些默认

9、函数,当你熟悉了以后,完全可以使用自己的函数替代这些功能简单的“玩具函数:)”。它主要提供了绘制函数的接口,完成以下四个功能:1. 头文件和全局变量 2. 绘制三棱锥 3. 初始化场景 4. 设置默认的视口棱台体 5. 绘制场景 我们一一介绍如下:1、头文件和全局变量#include opengl.h/ 包含创建OpenGL程序的框架类#include view.h/ 包含视口类的声明#include text.h/ 包含2D文字类的声明#include texture.h/ 包含纹理类的声明#pragma comment( lib, NeheSDK.lib )/ 包含NeheSDK.lib库using namespace NeHe;/ 使用NeHe名字空间extern Viewview;/ 使用全局变量View类的实例extern Text2Dtext2D;/ 使用全局变量Text2D类实例extern Texturetex;/ 使用全局变量Texture类的实例extern inttexID;/ 使用全局变

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号