codeblocks配置OPENGL GLUT
作者 | He | ||||
版权 | 转载请保留本声明! 本文档包含的原创代码根据General 本文档根据GNU 文中所引用的软件版权详见各软件版权具体声明,文中所提及的所有商标均为各自商标所有人的财产。 | ||||
更新 |
|
前言:
一份在codeblocks下配置OPENGL
GLUT的简单教程。
一:下载安装codeblock10.05
到http://www.codeblocks.org下载codeblock,建议下载带MinGW编译器版本(GCC
compiler and GDB
debugger),这样基本不需要什么特殊配置。之后运行安装文件,一步步安装到结束。这里特别说明一下,我的计算机运行着windows
7 64位系统。
二 下载编译好的GLUT库
可以到OPENGL的老巢自己寻找需要的GLUT(http://www.opengl.org/),有很多的不同版本!
我使用的是GLUT-3.7.6,可以到下面的页面下载。
http://user.xmission.com/~nate/glut.html
三 安装glut
解压glut-3.7.6-bin.zip压缩包,复制解压后的文件到对应位置.
glut.h | C:\Program |
glut32.lib | C:\Program |
glut32.dll | C:\Windows\system |
四:创建Glut项目
创建Glut项目
指定GLUT的位置,我的是C:\Program
Files (x86)\CodeBlocks\MinGW
五 示例源代码
//windows头文件 #include<windows.h> #include<GL/gl.h> #include<GL/glu.h> #include<gl/glut.h> /*linux头文件 #include <X11/Xlib.h> #include<GL/gl.h> #include<GL/glu.h> #include<GL/glut.h> #include<GL/glx.h> */ staticGLfloatspin=0.0; voidinit(void) { glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_FLAT); } voiddisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glRotatef(spin,0.0,0.0,1.0); glColor3f(1.0,1.0,1.0); glRectf(-25.0,-25.0,25.0,25.0); glPopMatrix(); glutSwapBuffers(); } voidspinDisplay(void) { spin=spin+2.0; if(spin>360.0) spin=spin-360.0; glutPostRedisplay(); } voidreshape(intw,inth) { glViewport(,,(GLsizei)w,(GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } voidmouse(intbutton,intstate,intx,inty) { switch(button){ caseGLUT_LEFT_BUTTON: if(state==GLUT_DOWN) glutIdleFunc(spinDisplay); break; caseGLUT_MIDDLE_BUTTON: if(state==GLUT_DOWN) glutIdleFunc(NULL); break; default: break; } } intmain(intargc,char**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowSize(,); glutInitWindowPosition(,); glutCreateWindow(argv[]); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMouseFunc(mouse); glutMainLoop(); return0; }
五
编译运行
这个示例也可以在Linux下编译运行,效果和windows下一样,注意需要修改一下头文件,见上面源码。下面是makefile,在不同版本的linux下,makefile文件内容可能需要调整!
all:double
CC=gcc
double:double.c
$(CC)-Wall-g-I/usr/include/GL
double.c
-o
double-L/usr/lib
-L/usr/X11R6/lib
-lGL
-lGLU
-lX11
-lglut
#-lglut-lGLU-lGL-lXmu-lX11
编译
运行