Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24651
  • 博文数量: 9
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 95
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-20 03:13
个人简介

我可以用几条微不足道的标签来定义:“石油炼化产业工人”、“程序匠人”、“成人大学学历”、“一个还算顾家的男人”、“会弹吉他和画画的父亲”、“他”。没错,你没看错,“他”也是我的标签,在熙熙攘攘的人群中,我就是那个“他”,默默无闻却自得其乐的耕耘在自己的一方天地里!

我的朋友

分类: C/C++

2015-04-11 02:34:41


codeblocks配置OPENGL GLUT



作者

He YiJun – storysnailgmail.com

团队

ls

版权

转载请保留本声明!


本文档包含的原创代码根据General Public License,v3 发布
GPLv3
许可证的副本可以在这里获得:

本文档根据GNU Free Documentation License 1.3发布
GFDL1.3
许可证的副本可以在这里获得:

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

更新

2014-11-10

修改版权和重新编辑

...

...





前言:

一份在codeblocks下配置OPENGL GLUT的简单教程。

一:下载安装codeblock10.05

下载codeblock,建议下载带MinGW编译器版本(GCC compiler and GDB debugger),这样基本不需要什么特殊配置。之后运行安装文件,一步步安装到结束。这里特别说明一下,我的计算机运行着windows 7 64位系统。


二 下载编译好的GLUT

可以到OPENGL的老巢自己寻找需要的GLUT(),有很多的不同版本!

我使用的是GLUT-3.7.6,可以到下面的页面下载。

~nate/glut.html



三 安装glut

解压glut-3.7.6-bin.zip压缩包,复制解压后的文件到对应位置.

glut.h

C:\Program Files (x86)\CodeBlocks\MinGW\include\GL

glut32.lib

C:\Program Files (x86)\CodeBlocks\MinGW\lib

glut32.dll

C:\Windows\system



四:创建Glut项目

创建Glut项目




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


五 示例源代码



点击(此处)折叠或打开

  1. //windows头文件

  2. #include <windows.h>

  3. #include <GL/gl.h>

  4. #include <GL/glu.h>

  5. #include <gl/glut.h>

  6. /* linux头文件

  7. #include <X11/Xlib.h>

  8. #include <GL/gl.h>

  9. #include <GL/glu.h>

  10. #include <GL/glut.h>

  11. #include <GL/glx.h>

  12. */

  13. static GLfloat spin = 0.0;

  14. void init(void)

  15. {

  16. glClearColor(0.0,0.0,0.0,0.0);

  17. glShadeModel(GL_FLAT);

  18. }

  19. void display(void)

  20. {

  21. glClear(GL_COLOR_BUFFER_BIT);

  22. glPushMatrix();

  23. glRotatef(spin,0.0,0.0,1.0);

  24. glColor3f(1.0,1.0,1.0);

  25. glRectf(-25.0,-25.0,25.0,25.0);

  26. glPopMatrix();

  27. glutSwapBuffers();

  28. }

  29. void spinDisplay(void)

  30. {

  31. spin = spin + 2.0;

  32. if(spin > 360.0)

  33. spin = spin - 360.0;

  34. glutPostRedisplay();

  35. }

  36. void reshape(int w, int h)

  37. {

  38. glViewport(0,0,(GLsizei) w, (GLsizei) h);

  39. glMatrixMode(GL_PROJECTION);

  40. glLoadIdentity();

  41. glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0);

  42. glMatrixMode(GL_MODELVIEW);

  43. glLoadIdentity();

  44. }

  45. void mouse(int button,int state,int x, int y)

  46. {

  47. switch(button) {

  48. case GLUT_LEFT_BUTTON:

  49. if(state == GLUT_DOWN)

  50. glutIdleFunc(spinDisplay);

  51. break;

  52. case GLUT_MIDDLE_BUTTON:

  53. if(state == GLUT_DOWN)

  54. glutIdleFunc(NULL);

  55. break;

  56. default:

  57. break;

  58. }

  59. }

  60. int main(int argc,char ** argv)

  61. {

  62. glutInit(&argc,argv);

  63. glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

  64. glutInitWindowSize(250,250);

  65. glutInitWindowPosition(100,100);

  66. glutCreateWindow(argv[0]);

  67. init();

  68. glutDisplayFunc(display);

  69. glutReshapeFunc(reshape);

  70. glutMouseFunc(mouse);

  71. glutMainLoop();

  72. return 0;

  73. }




五 编译运行

这个示例也可以在Linux下编译运行,效果和windows下一样,注意需要修改一下头文件,见上面源码。 下面是makefile,在不同版本的linux下,makefile文件内容可能需要调整!


点击(此处)折叠或打开

  1. all:double

  2. CC=gcc

  3. double:double.c

  4. $(CC) -Wall -g -I/usr/include/GL double.c -o double -L/usr/lib -L/usr/X11R6/lib -lGL -lGLU -lX11 -lglut

  5. #-lglut -lGLU -lGL -lXmu -lX11


编译

运行


阅读(1442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~