OpenGL Tips: 在Visual C++中调用FreeGLUT

Why FreeGLUT?

首先回答一个问题:为什么要用FreeGLUT,为什么不用GLUT。
通常在Visual C++下调用OpenGL,大家都是通过GLUT来调用。但是GLUT已经停止更新了,所以建议采用GLUT的另一个开源实现:FreeGLUT。FreeGLUT是以MIT License开源的,而且目前是一个活跃的、持续更新的开源项目。

下载FreeGLUT库

FreeGLUT的开源项目站点是:http://freeglut.sourceforge.net/
在该网站上你可以找到:Martin Payne’s Windows binaries (MSVC and MinGW)
通过该链接可以下载 freeglut 3.0.0 MSVC Package

在Visual C++中引用FreeGLUT

无非是在VC++ Directories中,将include目录加入到“Include Directories”,将lib目录添加到“Library Directories”。
注意:
1. 运行时,需要事先将 freeglut.dll 拷贝到运行目录下。
2. 要注意 freeglut.dll 和 freeglut.lib 有32位和64位版本之分。

另外,还需要在 C/C++ | Preprocessor | Preprocessor Definitions 的设置中,增加一个宏定义 NDEBUG。(参考:《FreeGLUT Tips: Resolve compile issue: error LNK1104: cannot open file ‘freeglutd.lib’》

示例程序

// FreeGLUT_demo.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdlib.h>
#include <GL/glut.h>


static void keyboard (unsigned char key, int x, int y);
static void display (void);

int _tmain(int argc, _TCHAR* argv[])
{
  glutInit (&argc, argv);
  glutCreateWindow ("GLUT Test");
  glutKeyboardFunc (&keyboard);
  glutDisplayFunc (&display);
  glutMainLoop ();

  return 0;
}

static void keyboard (unsigned char key, int x, int y)
{
  switch (key)
  {
  case '\x1B':
    exit (EXIT_SUCCESS);
    break;
  }
}


static void display ()
{
  glClear (GL_COLOR_BUFFER_BIT);

  glColor3f (1.0f, 0.0f, 0.0f);

  glBegin (GL_POLYGON);
  glVertex2f (-0.5f, -0.5f);
  glVertex2f (0.5f, -0.5f);
  glVertex2f (0.5f, 0.5f);
  glVertex2f (-0.5f, 0.5f);
  glEnd ();

  glFlush ();
}

运行结果:
运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值