code::blocks下freeglut配置与使用

本教程配置环境

win7 ×64位系统(win10 ×64位系统也测试过,完全可以)  + codeblocks-13.12mingw-setup-RC2

下载并安装FreeGlut

1、www.transmissionzero.co.uk/software/freeglut-devel/

2、将freeglut->include->GL->*.h拷贝到mingw->include->GL


3、将freeglut->lib->*.a拷贝到mingw->lib  (注意×64文件夹用不着,暂时忽略)


4、将freeglut->bin->*.dll拷贝到Windows->System32(如果是×64系统,可以在SysWOW64文件夹下放置一份;注意×64文件夹用不着,暂时忽略)


配置OpenGL

1、Code::Blocks-> create a new project ->Console application->C++

2、Settings->Compiler ->Link settings
3、Add: “libopengl32”, “libglu32”, “libfreeglut”,如图所示。


把如下代码,放入main.cpp文件中,编译执行。

#include <GL/glut.h>

static void resize(int width, int height)
{
    const float ar = (float) width / (float) height;

    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0, ar, 0.1, 100.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity() ;
}

static void display(void)
{
    static double theta = 0;

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    theta = theta+0.05;

    glLoadIdentity();
    glColor3d(1, 0.5, 1);
	glTranslated(0, 0, -8);
    glRotated(30, 1, 0, 0);
    glRotated(theta, 0, 1, 0);
    glutSolidTeapot(2.0f);

    glutSwapBuffers();
}

static void idle()
{
    glutPostRedisplay();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitWindowSize(800, 600);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("GLUT Teapot");

    glutReshapeFunc(resize);
    glutDisplayFunc(display);
    glutIdleFunc(idle);

    glClearColor(1,1,1,1);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);

    glEnable(GL_LIGHT0);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);

    glutMainLoop();

    return 0;
}

运行的效果图如下。到此code::blocks下OpenGL配置与使用就结束了。



  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值