W三步,创徏工程Q其步骤如下Q?/span>
Q?Q创Z个Win32 Console Application。(以我创徏的ؓ例,工程名ؓsimpleGLQ?nbsp;
Q?Q链接OpenGL libraries:在Visual C++中先单击ProjectQ再单击SettingsQ再扑ֈLink单击Q最后在Object/library modules 的最前面加上opengl32.lib Glut32.lib Glaux.lib glu32.lib ?nbsp;
Q?Q单击Project Settings中的C/C++标签Q将Preprocessor definitions 中的_CONSOLE改ؓ__WINDOWS。最后单击OK?nbsp;
现在Q准备工作基本上完成了,可不要轻视这一步,如果你没有设|好在编译及q行q程中M出错的?
对于VS2005可以如下讄Q?br>1、把 glut.h 复制?VC 安装路径下的 PlatFormSDK\include\gl 文g?br>2、把 glut32.lib 复制?VC 安装路径下的 PlatFormSDK\lib 文g?br>3、把 glut32.dll 复制?Windows\System32 文g?br>4、在 VC 中创建控制台应用E序Q在选项中清?#8220;使用预编译头”Q以免媄响可UL性)
5、在 VC 中打开目->属性对话框q行如下讄Q?br> ?#8220;配置”下拉框选则?#8220;所有配|?#8221;
打开 “链接?-输入”?br> ?#8220;附加依赖?#8221;中增加:
OpenGL32.lib
glu32.lib
glut32.lib
W四步,创徏一个最单的openglE序
#include <GL/glut.h>
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("W一个OpenGLE序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
该程序的作用是在一个黑色的H口中央M个白色的矩Ş。下面对各行语句q行说明?
首先Q需要包含头文g#include<GL/glut.h>Q这是GLUT的头文g?br>本来OpenGLE序一般还要包?lt;GL/gl.h>?lt;GL/glu.h>Q但GLUT的头文g中已l自动将q两个文件包含了Q不必再ơ包含?br>
然后看main函数?br>int main(int argc, char *argv[])Q这个是带命令行参数的main函数Q各位应该见q吧Q没见过的同志们请多ȝ书,{弄明白了再往下看?br>注意main函数中的各语句,除了最后的return之外Q其余全部以glut开头。这U以glut开头的函数都是GLUT工具包所提供的函敎ͼ下面对用到的几个函数q行介绍?br>1、glutInitQ对GLUTq行初始化,q个函数必须在其它的GLUT使用之前调用一ơ。其格式比较LQ一般照抄这句glutInit(&argc, argv)可以了?br>2、glutInitDisplayModeQ设|显C方式,其中GLUT_RGB表示使用RGB颜色Q与之对应的q有GLUT_INDEXQ表CZ用烦引颜Ԍ。GLUT_SINGLE表示使用单缓Ԍ与之对应的还有GLUT_DOUBLEQ用双~冲Q。更多信息,误己Google。当然以后的教程也会有一些讲解?br>3、glutInitWindowPositionQ这个简单,讄H口在屏q中的位|?br>4、glutInitWindowSizeQ这个也单,讄H口的大?br>5、glutCreateWindowQ根据前面设|的信息创徏H口。参数将被作为窗口的标题。注意:H口被创建后Qƈ不立xC到屏幕上。需要调用glutMainLoop才能看到H口?br>6、glutDisplayFuncQ设|一个函敎ͼ当需要进行画图时Q这个函数就会被调用。(q个说法不够准确Q但准确的说法可能初学者不太好理解Q暂时这栯吧)?br>7、glutMainLoopQ进行一个消息@环。(q个可能初学者也不太明白Q现在只需要知道这个函数可以显C窗口,q且{待H口关闭后才会返回,q就_了。)
在glutDisplayFunc函数中,我们讄?#8220;当需要画图时Q请调用myDisplay函数”。于是myDisplay函数q来画图。观?myDisplay中的三个函数调用Q发现它们都以gl开头。这U以gl开头的函数都是OpenGL的标准函敎ͼ下面对用到的函数q行介绍?br>1、glClearQ清除。GL_COLOR_BUFFER_BIT表示清除颜色QglClear函数q可以清除其它的东西Q但q里不作介绍?br>2、glRectfQ画一个矩形。四个参数分别表CZ位于对角U上的两个点的横、纵坐标?br>3、glFlushQ保证前面的OpenGL命o立即执行Q而不是让它们在缓冲区中等待)。其作用跟fflush(stdout)cM?

]]>