发现学OpenGL总是容易忘,其实好多都只是似懂非懂的。从今天起打算重新再学。为了方便查阅,买了

《OpenGL编程指南》和《OpenGL超级宝典》两书。有兴趣的大家可以一起来学啊。我新建个QQ群:296853962,
大家有打算学OpenGL的或有兴趣帮助我们刚学OpenGL的孩子们,可以加入该群哈。
    好啦,该说说gl.h/glu.h/glut.h/gltools.h的区别啦。
    之前写代码都是这样几行:
    #include<windows.h>
    #include<gl/gl.h>
     #include<gl/glut.h>
    这样写不影响编译问题。为啥没问题?还是自己亲自试下比较好。
    在安装的VC目录VC/include/GL里找到glut.h文件,打开可以看到这两句:
#include<GL/gl.h>
#include<GL/glu.h>
再往下看,就可看到好多像glutInitWindowPosition()这样以glut为首的函数声明。 
    同理,打开gl.h可看到好多以gl为首的函数声明:例如glClear();打开glu.h就可看到好多以glu为首的函数声明。亲眼打开文件看了,我想记忆就要深刻得多了。
    GLU(OpenGL Utility library),叫做OpenGL工具函数库。
    GLUT(OpenGL Utility Toolkit),叫做OpenGL实用工具库。二者叫法易混淆,稍微注意一下即可。
    现在贴上超级宝典里的一段简单代码,再针对代码分析:
#include "stdafx.h"
#include<windows.h>
#include<gl/glut.h>
//#include"gl/superbible/gltools.h"
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
void SetupRC(void)
{
glClearColor(0.0,0.0,1.0,1.0);
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("first program");
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
return 0;
}
    首先要#include<windows.h>,因为gl.h和glu.h里用到了在windows.h里定义的宏定义。
    然后#include<gl/glut.h>,你尝试不要这句,运行一下,错误就会告诉你原因的。
    至于gltools.h,超级宝典第4版P30里说它包含了gl.h和glut.h,其实这里错了,应该是gl.h和glu.h,打开文件看看你就会相信我说的。而且书上程序清单只有#include"gl/superbible/gltools.h",这明显是有问题的,打开gltools.h,里面并没有glutInit()等以glut为首的函数声明。
    好啦,相信你此时对这几个头文件的包含不会再含糊了吧。
  
另:建群期间,许多朋友还是不大明白gltools.h是什么东东。这里再简单说一下。
    《Open个GL超级宝典》里有好多函数是大师为了开发需求自己编写的。gltools.h就是将gl.h、glu.h以及大师自己写的函数包装起来。对于初学者,完全不需要用gltools.h。需要的话,群共享里即可下载。

gl/glu/glut/gltools等的区别相关推荐

  1. glew, glee与 gl glu glut glx glext的区别和关系

    GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口.使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵数,但 OpenGL现在都发展到2.0以上了,要使用这些Open ...

  2. opengl库中gl glu glut glaux的区别

    GL GLU GLUT的关系 OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库. gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库. gl中包含了最基本的 ...

  3. OpenGL与gl glu glut freeglut glew glfw封装库关系(十五)

    1.概述     初学者往往搞不明白OpenGL与诸多库的联系下面一张图帮理清楚,gl glu glut freeglut glew glfw都是对OpenGL的封装而已.这些库已经将OpenGL.E ...

  4. GL GLU GLUT的关系

    GL GLU GLUT的关系 OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库. gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库. gl中包含了最基本的 ...

  5. OpenGL 各类库的解析 gl/glu/glut/freeglut/glfw/glew

    看了网上很多资料,讲的都不是很全,正好在学这一块,好好地总结一下吧 注:在windows中,对这些库的大小写是不作要求的 gl.h gl库是核心库,gl中包含了最基本的3D函数,可以再本地电脑中的: ...

  6. OpenGL 各类库的解析gl glu glut freeglut glfw glew

    gl.h gl库是核心库,gl中包含了最基本的3D函数,可以再本地电脑中的: C:\Program Files (x86)\MicrosoftSDKs\Windows\v7.0A\Include\gl ...

  7. 一张图弄懂opengl的诸多库gl glu glut freeglut glew glfw之间关系

    开始学习opengl,但是看opengl编程指南不同版本之间使用了一堆不同的库,概念名称全都搅起的,越看越糊涂,遂整理的一下opengl相关的一些库的名词, 才发现是不同时期不同版本不断发展的结果. ...

  8. OpenGL库中gl、glu、glut、glaux的关系

    GL GLU GLUT的关系 OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库. gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库. gl中包含了最基本的 ...

  9. GLUT, freeGLUT, GLFW, GLEW, GLAD 关系与区别

    GLUT:(来自百科)(OpenGL Utility Toolkit)是一个处理OpenGL程式的工具库,负责处理和底层操作系统的呼叫以及I/O. 是专为构建中小型OpenGL程序.虽然GLUT是适合 ...

最新文章

  1. CNN网络量化--Two-Step Quantization for Low-bit Neural Networks
  2. java中的强制类型转换:int和byte
  3. 规则化和模型选择(Regularization and model selection)
  4. Lesson 16.6Lesson 16.6 复现经典架构:LeNet5 复现经典架构 (2):AlexNet
  5. c++实现多态的方法 虚表
  6. 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他...
  7. Oracle代码块详解,Oracle可执行代码块
  8. JavaScript 学习笔记— —Date对象
  9. react-router-dom系列之-codesandbox
  10. 把触发器说透(转载)
  11. Android版抢票神器使用指南及下载地址
  12. 52 个有用的机器学习与预测接口盘点
  13. PHP简单在线二维码生成工具源码
  14. SpringBoot启动流程原理+自动装配原理
  15. 嵌入式软件架构的设计
  16. 微信公共号如何本地调试
  17. ThoughtWorks思特沃克2018校园招聘之春招家庭作业 - 无人机
  18. vivado和modelsim联合仿真,提示giving up waiting on lock,error:verilog compiler exiting解决方法
  19. 小程序:浅谈小程序更新机制,发版后多久能全覆盖
  20. 诚诚富众资讯1.02亿人次补偿式出游

热门文章

  1. Fn+F12查看response
  2. C++学习--布尔值函数的返回值
  3. 搜索引擎-超级搜索技巧
  4. JLOI 2013 卡牌游戏 bzoj3191
  5. 如何使用视频格式转换器将爱奇艺视频QSV格式转换MP4
  6. 注册和启动windows服务
  7. 让机器人依靠视觉识别抓取特定物体
  8. AU2019直装版/Audition CC2019安装包
  9. 快速排序-QuickSort
  10. PPT是什么的缩写?