跳轉到內容

OpenGL 程式設計/安裝/GLUT

來自華夏公益教科書,開放書籍,開放世界

GLUT 是一個實用工具包,它為 OpenGL 應用程式提供視窗管理及其與作業系統的介面。

GLUT 替代品

[編輯 | 編輯原始碼]

GLUT 最初是一個非自由庫。如今,存在著免費/開源且可移植的替代方案,例如 FreeGLUT 和 OpenGLUT。

在本華夏公益教科書中,我們推薦 FreeGLUT。有關如何安裝它的詳細資訊,請參見特定平臺的安裝頁面

使用 GLUT 發現 OpenGL 版本

[編輯 | 編輯原始碼]
#include <stdio.h> /* printf */
#include <GL/glut.h> /* glut graphics library */
/* 
Linux c console program 
gcc f.c -lglut -lGL
./a.out
*/
int main(int argc, char **argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
  glutCreateWindow("red 3D lighted cube");
  printf("GL_VERSION = %s\n",glGetString(GL_VERSION) ); /* GL_VERSION = 2.1.2 NVIDIA 195.36.24 */
  return 0; 
}

更多資訊

[編輯 | 編輯原始碼]

此程式顯示有關 glut 的資訊。[1]

要編譯 

gcc v.c -lglut -lGL

要執行 

./a.out
#include <stdio.h>

#if defined(HAVE_FREEGLUT)

#ifdef WIN32
#include "../include/GL/freeglut.h"
#else
#include <GL/freeglut.h>
#endif

#else

#include <GL/glut.h>

#endif

#define PROGRAM "glversion"

int main(int argc, char **argv)
{
  char *version = NULL;
  char *vendor = NULL;
  char *renderer = NULL;
  char *extensions = NULL;
  GLuint idWindow = 0;
  int	glutVersion;

  glutInit(&argc, argv);
  glutInitWindowSize(1,1);
  glutInitDisplayMode(GLUT_RGBA);
  idWindow = glutCreateWindow(PROGRAM);
  glutHideWindow();

  glutVersion = glutGet(0x01FC);
  version =     (char*)glGetString(GL_VERSION);
  vendor =      (char*)glGetString(GL_VENDOR);
  renderer =    (char*)glGetString(GL_RENDERER);
  extensions =  (char*)glGetString(GL_EXTENSIONS);

  printf("GLUT=%d\nVERSION=%s\nVENDOR=%s\nRENDERER=%s\nEXTENSIONS=%s\n",
    glutVersion,version,vendor,renderer,extensions);

  glutDestroyWindow(idWindow);
  return(0);
}
  1. koders.com : glversion.c

< OpenGL 程式設計/安裝

瀏覽並下載完整程式碼
華夏公益教科書