codeblocks配置GLUT

原文地址:

http://my.oschina.net/storysnail/blog/117374


一份在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压缩包,复制解压后的文件到对应位置. (位置每个人都不一样,前两个就是复制到CodeBlock的安装目录中的一些文件,我的就是在D盘)

    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项目

001

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

002

五:示例源代码:

//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>
*/
static GLfloat spin = 0.0; 

void init(void)
{
    glClearColor(0.0,0.0,0.0,0.0);
    glShadeModel(GL_FLAT);
} 

void display(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();
} 

void spinDisplay(void)
{
    spin = spin + 2.0;
    if(spin > 360.0)
        spin = spin - 360.0;
    glutPostRedisplay();
} 

void reshape(int w, int h)
{
    glViewport(0,0,(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();
} 

void mouse(int button,int state,int x, int y)
{
    switch(button) {
    case GLUT_LEFT_BUTTON:
        if(state == GLUT_DOWN)
            glutIdleFunc(spinDisplay);
        break;
    case GLUT_MIDDLE_BUTTON:
        if(state == GLUT_DOWN)
            glutIdleFunc(NULL);
        break;
    default:
        break;
    }
} 

int main(int argc,char ** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
    glutInitWindowSize(250,250);
    glutInitWindowPosition(100,100);
    glutCreateWindow(argv[0]);
    init();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMouseFunc(mouse);
    glutMainLoop();
    return 0;
} 

六:编译运行

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

编译

003

运行

004


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值