您现在的位置: 中国教师站 >> 教师关注 >> 电脑技术 >> 编程技术 >> Delphi >> 正文

Google
NeHe的opengl教程delphi版(1)----基本框架
作者:Siny 文章来源:中国教师站cn-teacher 点击数: 更新时间:2007-4-22 15:51:28

将CKER翻译的NeHe的VC 的OPENGL框架转成了Delphi版,
希望对用Delphi学习OPENGL的兄弟有所帮助,
不知为什么,我的Delphi环境下无法直接运行,但是在别的机器上好像没问题
我的机器只能编译后运行EXE文件。
感谢NeHe提供的这么好的框架,感谢CKER翻译的VC的资料

 

Program Project1;

Uses
   opengl,
   windows,
   Messages;

Const
   WND_TITLE        = 'OPenGl 基本框架'; //标题
Var
   //===========================================================================
   // 每一个OpenGL都被连接到一个着色描述表上。着色描述表将所有的OpenGL调用命令连
   // 接到Device Context(设备描述表)上,将OpenGL的着色描述表定义为hRC ,要让程序能
   // 够绘制窗口的话,还需要创建一个设备描述表,Windows的设备描述表被定义为 hDC,
   // DC将窗口连接到GDI(Graphics Device Interface图形设备接口)。而RC将OpenGL连接
   // 到DC。
   //===========================================================================
   h_RC             : HGLRC;            // Rendering Context(着色描述表)。
   h_DC             : HDC;              // Device Context(设备描述表)
   h_Wnd            : HWND;             // 窗口句柄
   h_Instance       : HINST;            // 程序Instance(实例)。
   keys             : Array[0..255] Of Boolean; // 用于键盘例程的数组
   {$R *.res}

   //==============================================================================
   //重新设置OpenGL场景的大小,而不管窗口的大小是否已经改变(假定没有使用全屏模式)。
   //甚至无法改变窗口的大小时(例如在全屏模式下),它至少仍将运行一次————————
   //在程序开始时设置透视图。OpenGL场景的尺寸将被设置成它显示时所在窗口的大小。
   //==============================================================================

Procedure glResizeWnd(Width, Height: Integer); // 重置并初始化GL窗口大小
Begin
   If (Height = 0) Then                 // 防止高度为0,产生除0异常
      Height := 1;
   glViewport(0, 0, Width, Height);     // 重置当前的视口(Viewport)

   //下面几行为透视图设置屏幕。意味着越远的东西看起来越小。这么做创建了一个现实
   //外观的场景。此处透视按照基于窗口宽度和高度的45度视角来计算。0.1f,100.0f是
   //我们在场景中所能绘制深度的起点和终点。
   //glMatrixMode(GL_PROJECTION)指明接下来的两行代码将影响projection matrix(投影矩阵)。
   //投影矩阵负责为我们的场景增加透视。
   //glLoadIdentity()近似于重置。它将所选的矩阵状态恢复成其原始状态。
   //调用 glLoadIdentity()之后我们为场景设置透视图。

   glMatrixMode(GL_PROJECTION);         // 选择投影矩阵
   glLoadIdentity();                    // 重置投影矩阵

   gluPerspective(45.0, Width / Height, 0.1, 100.0); // 计算窗口的外观比例

   //glMatrixMode(GL_MODELVIEW)指明任何新的变换将会影响 modelview matrix(模型观察矩阵)。
   //模型观察矩阵中存放了我们的物体讯息。

   glMatrixMode(GL_MODELVIEW);          // 选择模型观察矩阵

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

相关专题:
 
 网友评论:(评论内容只代表网友观点,与本站立场无关!)
GOOGLE广告

阅读排行

| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
中国教师站

中国教师站 版权所有 Copyright © 2006-2020 All Rights Reserved 站长:Sina & Siny
[备用域名:www.JXZYW.Com] 有事请留言有事请留言
【实力成就精品 诚信呵护品牌】

信息产业部备案
苏ICP备06018635号