codeblocks配置GLUT

codeblocks配置OPENGL GLUT





作者

He YiJun – storysnail<at>hotmail.com

   

版权

转载请保留本声明!


本文档包含的原创代码根据General Public License,v3 发布
GPLv3
许可证的副本可以在这里获得:http://www.gnu.org/licenses/gpl.html

本文档根据GNU Free Documentation License 1.3发布
GFDL1.3
许可证的副本可以在这里获得:http://www.gnu.org/licenses/gfdl.html

文中所引用的软件版权详见各软件版权具体声明,文中所提及的所有商标均为各自商标所有人的财产。
作者在此向所有提供过帮助和支持的朋友表示感谢,此致!

更新

2014-11-10

修改版权和重新编辑

 

 本文已经停止更新






前言:

一份在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 Files (x86)CodeBlocksMinGWincludeGL

glut32.lib

C:Program Files (x86)CodeBlocksMinGWlib

glut32.dll

C:Windowssystem



 

 

 

 

四:创建Glut项目

创建Glut项目









指定GLUT的位置,我的是C:Program Files (x86)CodeBlocksMinGW





五 示例源代码



  1 //windows头文件
  2 
  3 #include<windows.h>
  4 
  5 #include<GL/gl.h>
  6 
  7 #include<GL/glu.h>
  8 
  9 #include<gl/glut.h>
 10 
 11  
 12 
 13 /*linux头文件
 14 
 15 #include <X11/Xlib.h>
 16 
 17 #include<GL/gl.h>
 18 
 19 #include<GL/glu.h>
 20 
 21 #include<GL/glut.h>
 22 
 23 #include<GL/glx.h>
 24 
 25 */
 26 
 27 staticGLfloatspin=0.0;
 28 
 29  
 30 
 31 voidinit(void)
 32 
 33 {
 34 
 35 glClearColor(0.0,0.0,0.0,0.0);
 36 
 37 glShadeModel(GL_FLAT);
 38 
 39 }
 40 
 41  
 42 
 43 voiddisplay(void)
 44 
 45 {
 46 
 47 glClear(GL_COLOR_BUFFER_BIT);
 48 
 49 glPushMatrix();
 50 
 51 glRotatef(spin,0.0,0.0,1.0);
 52 
 53 glColor3f(1.0,1.0,1.0);
 54 
 55 glRectf(-25.0,-25.0,25.0,25.0);
 56 
 57 glPopMatrix();
 58 
 59 glutSwapBuffers();
 60 
 61 }
 62 
 63  
 64 
 65 voidspinDisplay(void)
 66 
 67 {
 68 
 69 spin=spin+2.0;
 70 
 71 if(spin>360.0)
 72 
 73 spin=spin-360.0;
 74 
 75 glutPostRedisplay();
 76 
 77 }
 78 
 79  
 80 
 81 voidreshape(intw,inth)
 82 
 83 {
 84 
 85 glViewport(0,0,(GLsizei)w,(GLsizei)h);
 86 
 87 glMatrixMode(GL_PROJECTION);
 88 
 89 glLoadIdentity();
 90 
 91 glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0);
 92 
 93 glMatrixMode(GL_MODELVIEW);
 94 
 95 glLoadIdentity();
 96 
 97 }
 98 
 99  
100 
101 voidmouse(intbutton,intstate,intx,inty)
102 
103 {
104 
105 switch(button){
106 
107 caseGLUT_LEFT_BUTTON:
108 
109 if(state==GLUT_DOWN)
110 
111 glutIdleFunc(spinDisplay);
112 
113 break;
114 
115 caseGLUT_MIDDLE_BUTTON:
116 
117 if(state==GLUT_DOWN)
118 
119 glutIdleFunc(NULL);
120 
121 break;
122 
123 default:
124 
125 break;
126 
127 }
128 
129 }
130 
131  
132 
133 intmain(intargc,char**argv)
134 
135 {
136 
137 glutInit(&argc,argv);
138 
139 glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
140 
141 glutInitWindowSize(250,250);
142 
143 glutInitWindowPosition(100,100);
144 
145 glutCreateWindow(argv[0]);
146 
147 init();
148 
149 glutDisplayFunc(display);
150 
151 glutReshapeFunc(reshape);
152 
153 glutMouseFunc(mouse);
154 
155 glutMainLoop();
156 
157 return0;
158 
159 } 





五 编译运行

这个示例也可以在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

 

编译

 



 

运行





原文地址:https://www.cnblogs.com/arely/p/4416122.html