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 
#include 


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

运行结果:
OpenGL Tips: 在Visual C++中调用FreeGLUT_第1张图片

你可能感兴趣的:(OpenGL)