1.GLUT

// 进入GLUT事件处理循环,在GLUT程序中最多调用一次该函数,一旦被调用,该函数将永不返回,它将根据需要调用已注册的任何回调函数。
void glutMainLoop(void); 

// 将当前窗口标记为需要重新显示,通过glutMainLoop下一次迭代,将调用窗口的显示回调来重新显示窗口
void glutPostRedisplay(void);

// 为当前窗口设置display回调函数
void glutDisplayFunc(void (*func)(void));// 为当前窗口设置reshape回调函数
void glutReshapeFunc(void (*func)(int width, int height));// 设置当前窗口的键盘回调函数
void glutKeyboardFunc(void(* func)(unsigned char key, int x,int y));// 设置当前窗口的特殊键盘回调函数
void glutSpecialFunc(void(* func)(int key,int x,int y));

// 设置初始显示模式
void glutInitDisplayMode(unsigned int mode);
// eg
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);

// 渲染一个实心茶壶,  size 茶壶相对大小
void glutSolidTeapot(GLdouble size); 

2.glMatrixMode()

glMatrixMode是用来指定哪一个矩阵是当前矩阵,而它的参数代表要操作的目标

GL_PROJECTION是对投影矩阵操作

glMatrixMode(GL_PROJECTION); //将当前矩阵指定为投影矩阵//然后把矩阵设为单位矩阵:
glLoadIdentity();
//然后调用glFrustum()或gluPerspective(),它们生成的矩阵会与当前的矩阵相乘,生成透视的效果;

GL_MODELVIEW是对模型视景矩阵操作

GL_TEXTURE是对纹理矩阵进行随后的操作

3.glLoadIdentity()

  OpenGL为我们提供了一个非常简单的恢复初始坐标系的手段,那就是调用glLoadIdentity()命令。

  该命令是一个无参的无值函数,其功能是用一个4×4的单位矩阵来替换当前矩阵,实际上就是对当前矩阵进行初始化。

4.

//你可以使用下面的两个函数来加载你的列主序的矩阵到投影矩阵,模型视图矩阵或者纹理矩阵栈中//用指定矩阵替代当前矩阵
glLoadMatrixf(GLfloat* m);  // float
glLoadMatrixd(GLdouble* m); // double

//相对应的OpenGL还提供了加载行主序的矩阵的两个函数void glLoadTransposeMatrixf(GLfloat *m);
void glLoadTransposeMatrixd(GLdouble *m);

5 返回所选参数的值

void glGetFloatv(GLenum pname, GLfloat * data); // float类型的

6

glEnable(GL_DEPTH_TEST); // 进行深度比较,并更新深度缓冲区

7

// 链接程序,返回对应‘name’的程序program中的统一变量的地址GLint glGetUniformLocation(GLuint program, const GLchar *name); 

8

// 指定统一变量的值(将value指向的值赋予location代表的统一变量)void glUniform4fv(GLint location, GLsizei count, const GLfloat *value);

9

// 设置视窗左上角坐标,窗口宽度和高度
void glViewport(    GLint x,GLint y,GLsizei width,GLsizei height);

10

// 创建或使用命名缓冲区对象
void glBindBuffer(GLenum target,GLuint buffer);// target:选择要绑定的缓冲区类型,只有当前被绑定的才会被用户操作,通过(从表中选择,表见api文档)
// buffer:指定绑定缓冲区的handle

11

// 创建和初始化缓冲区对象的数据存储
void glBufferData(GLenum target,GLsizeiptr size,const GLvoid * data,GLenum usage);
// target:绑定的缓冲区对象类型
// size:指定缓冲区对象的新数据存储的大小(以字节为单位)
// data:用于初始化的数据的指针,没有数据则为NULL
// usage:指定使用的数据存储的方式

12..(OpenGL2.1)

// 启用客户端功能
void glEnableClientState( GLenum cap);
// cap: 指定要启动的功能,例举两个参数如下,详细见api
// GL_COLOR_ARRAY 如果启用,则在调用glArrayElement,glDrawArrays,glDrawElements,glDrawRangeElements ,
//   glMultiDrawArrays或glMultiDrawElements时,将启用颜色数组进行写入和使用。
// GL_VERTEX_ARRAY 如果启用,在调用上述函数时,将启用顶点数组进行写入和使用// 指定渲染时要使用的顶点坐标数组的位置和数据格式,
// 如果已将缓冲区对象绑定到缓冲区,则将指针视为缓冲区对象的数据存储中的字节偏移量
void glVertexPointer(    GLint size, // 每个定点的坐标维数GLenum type,                    // 每个坐标的数据类型GLsizei stride,                 // 从一个顶点到下一个顶点的字节跨度const GLvoid * pointer);        // 指定指向数组中第一个定点的第一个坐标的指针,初始值为0

// 在有限时间内强制执行之前发出的GL命令
void glFlush(void);

转载于:https://www.cnblogs.com/Ziyo/p/9716443.html

OpenGL及GLUT---------------函数整理相关推荐

  1. OpenGL中常用的 GLUT 函数

    GLUT函数说明 一.初始化 void glutInit(int* argc,char** argv) 这个函数用来初始化GLUT库.对应 main 函数的形式应是: int main(int arg ...

  2. [OpenGL笔记]glut入门(1)

    开头 写在开头,推荐看一下这篇文章涨涨知识OpenGL库文件的区别(glut/glew/glfw/glad/freeglut)和环境配置 不知道从哪扒来的glut的参考文档 代码初识 其实之前学的是g ...

  3. OpenGL的API函数使用手册

    OpenGL的API函数使用手册 (一)OpenGL函数库 格式: <库前缀><根命令><可选的参数个数><可选的参数类型> 库前缀有 gl.glu.a ...

  4. OpenGL教程——GLUT初始化

    在这个部分我们将在我们的程序里建立一个main函数,这个main函数将完成必须的初始化和开启事件处理循环.所有的GLUT函数都有glut前缀并且那些完成一些初始化的函数有glutInit前缀.你首先要 ...

  5. OpenGL ES glut glew glfw glad freeglut

    目录 一.简介 1.freeglut 2.glew 3.glut 4.glfw 5.glad 二.分类 1.窗口管理 2.函数加载 三.组合使用 1.freeglut + glew 2.glfw + ...

  6. OpenGL,GLUT,FreeGLUT,GLFW,GLEW,GLAD,GL3W,GLAD,GLM,GLSL的区别详解

    OpenGL,GLUT,FreeGLUT,GLFW,GLEW,GLAD,GL3W,GLAD,GLM,GLSL的区别详解 很多同学在初学计算机图形学时,都要去配置OpenGL环境,其中涉及多个库的选择和 ...

  7. Mac平台配置OpenGL(glut,glew)

    //oepngl库 opengl原生库 gl*  随opengl一起发布 opengl实用库  glu*   随opengl一起发布 opengl实用工具库glut  glut*   需要下载配置安装 ...

  8. OpenGL像素阵列函数、光栅操作和字符函数

    一.OpenGL像素阵列函数:OpenGL中有两个函数可用于定义矩阵阵列的形状图案.一个是位图,另一个是像素图. (1).OpenGL位图函数 void glBitmap(GLsizei width, ...

  9. opengl之glut学习笔记(含学习资料来源,对于没头绪,缺少glut资料的有很大帮助)

    目录 单词学习 环境搭建 opengl函数样式 初始化-主函数部分 名词解释 opengl基本图形绘制 点 线 多边形 示例: 窗口改变 动画 键盘控制 场景漫游 学习资料有: 1.Microsoft ...

  10. OpenGL ES glut 下载和使用

    目录 一.glut 简介 二.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录  >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推 ...

最新文章

  1. 容器环境红队手法总结
  2. 查看终端进程是否死掉技巧
  3. 四则运算个人项目反思总结
  4. 大地震前有三个明显征兆:1.井水异常2.牲畜反应异常3.专家出来辟谣。但是细心网友指出,第三和第二重复了。...
  5. 中望cad2018中文版
  6. 【iBoard电子学堂】【iCore双核心板】资料光盘A盘更新,版本号为A6
  7. switch分解试验部分-LAB4:VLAN VTP设置
  8. 自然语言处理真实项目实战(20170822)
  9. centos lamp
  10. Python多项逻辑回归用LogisticRegression识别英文字母数据集letter-recognition.data
  11. JavaScript高级程序设计[美]Nicholas C.Zakas著 读书笔记(三)
  12. 2020年中国IT咨询行业市场现状及发展趋势
  13. 基于STM32和ATH20实现OLED显示温湿度
  14. 中国移动OneOS 3.0物联网操作系统正式发布
  15. golang性能调优工具pprof的使用
  16. 华为鸿蒙系统HarmonyOS学习之十一:华为个人开发者账号注册步骤及方法
  17. 自行车安全交叉路口设计
  18. UnityVR--小程序3--金色的子弹2
  19. Linux配置NAT网络
  20. KEPServer软件使用

热门文章

  1. 目标目录非空,而且似乎未包含以前编译的应用程序。请手动删除它,或选择其他目标目录...
  2. lg android tv 手机助手,LG电视安装第三方APP教程 仅针对安卓电视
  3. 大型网站SEO该怎么引爆流量_如何学网络推广
  4. Oracle--替代触发器(INSTEAD OF)
  5. linux设置dns简单的,Linux下的DNS简单配置
  6. digispark使用
  7. Linux下制作动图的软件,GIF制作教程 | 如何制作高清动图_什么值得买
  8. Cannot resolve the name 'repository:auditing-attributes' to a(n) 'attribute grou
  9. 5线上模式刷2亿bug_GTA5还想冲销量?玩家利用BUG刷钱,遭受比封号更严厉惩罚
  10. 浅谈Es6中import * as xxx from几种基本用法