首先你需要下列*.lib包含在你的工程中:
opengl32.lib glu32.lib glaux.lib
本讲座所有例子“将”在VC5下调试通过,所以从
project->setting->link->general->object/libary modules
中加入上面三个*.lib
(这些LIB,VC4以上版本已经自带,加入即可,不用在四处搜寻文件)
2
另外在你的运行程序路径下或/win95/system/下你需要一些*.dll动态连接库
opengl32.dll glu32.dll rxddi.dll mga.drv
如果谁需要上述文件,跟我打个招呼
别跟我说要Visual C++ 5.0 呦
[编程入门]
这里我将给出一个小例子让大家熟悉用辅助库的编程结构:
// GLOS.H
//
// This is an OS specific header file
//判别操作系统的基本头文件
#include <windows.h>
// disable data conversion warnings
#pragma warning(disable : 4244) // MIPS
#pragma warning(disable : 4136) // X86
#pragma warning(disable : 4051) // ALPHA
//
//opengl.cpp
//主程序
#include "glos.h"
#include <GL/gl.h>
#include <GL/glaux.h>
#include "windows.h"
void main(void)
{
/*初始化:*/
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
//窗口显示单缓存和RGB(彩色)模式
auxInitPosition(0,0,500,500);
//大小x=500 y=500 (0,0)是屏幕左上点
auxInitWindow("sample1");
//窗口初始化,参数是标题
glClearColor(0.0,0.0,0.0,0.0);
//将窗口清为黑色
glClear(GL_COLOR_BUFFER_BIT);
//将颜色缓存清为glClearColor命令所设置的颜色
//即背景色
/*绘图*/
glColor3f(1.0,0.0,0.0);
//选颜色(R,G,B),参数0<x<1,这里就是红色
glRectf(-0.5,-0.5,0.5,0.5);
//画个方块
glFlush();
//强制绘图,不驻留缓存
_sleep(1000);
//windows函数,显示1秒(单位是毫秒)
}
//end of sample
根据注释,应该看出程序功能:显示红色方块(2D)一秒钟。
主程序结构不外乎:
初始化 + 绘图 + 其它功能调用,现在不用过分追究函数细节,知道是干什么的就可以乐,好吗?
我想结束本节前让大家实现第一个3D的例子,很简单而且好看的,但是我们必须被迫不得不多学些东东:
#include <windows.h>
#include <gl.h>
#include <glaux.h>
#pragma comment(lib,"OpenGL32.lib")
#pragma comment(lib,"GLu32.lib")
#pragma comment(lib,"GlAux.Lib")
#pragma comment(lib,"glut32.lib")
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
//#include <windows.h>
#endif
int main()
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,500,500);
auxInitWindow("simple");
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
glRectf(-0.5, -0.5, 0.5, 0.5);
glFlush();
//_sleep(1000);
return 0;
}