Shader Object及Program操作API

Program: 
1。 GLuint glCreateProgram( void );//创建

2。 void glDeleteProgram( GLuint program );//销毁

3。 void glGetProgramiv(
GLuint program,
GLenum pname,
GLint *params
); //获取参数

4。void glGetProgramInfoLog(
GLuint program,
GLsizei maxLength,
GLsizei *length,
GLchar *infoLog
);//获取Log信息,Log信息在program链接或确认时会更新

5。void glLinkProgram(
GLuint program
);//链接

6。void glValidateProgram(
GLuint program
);//确认,通常只在开发时时有用

7。GLboolean glIsProgram(
GLuint program
);//判断是否是program object

8。void glUseProgram(
GLuint program
);//将program安装到当前状态中

9。void glGetAttachedShaders(
GLuint program,
GLsizei maxCount,
GLsizei *count,
GLuint *shaders
);//获取附加的shader列表

Shader:
1。GLuint glCreateShader(
GLenum shaderType
);//创建

2。void glDeleteShader(
GLuint shader
);//销毁

3。void glShaderSource(
GLuint shader,
GLsizei count,
const GLchar **string,
const GLint *length
);//为shader填充/替换源码,源码可由多个字符串组成

4。void glCompileShader(
GLuint shader
);//编译

5。void glGetShaderiv(
GLuint shader,
GLenum pname,
GLint *params
);//获取参数

6。void glGetShaderInfoLog(
GLuint shader,
GLsizei maxLength,
GLsizei *length,
GLchar *infoLog
);//获取Log信息,只在编译后更新

7。void glGetShaderSource(
GLuint shader,
GLsizei bufSize,
GLsizei *length,
GLchar *source
);//获取源码,源码长度可以先用glGetShader(GL_SHADER_SOURCE_LENGTH)获取

8。GLboolean glIsShader(
GLuint shader
);//判断是否是shader object

9。void glAttachShader(
GLuint program,
GLuint shader
);//将一个shader附加到program

10。void glDetachShader(
GLuint program,
GLuint shader
);//将shader从program中去除

Uniform参数
1。GLint glGetUniformLocation(
GLuint program,
const GLchar *name
); //获取Uniform变量的位置,它在编译后决定

2。glUniform{1|2|3|4}{f|i}, glUniformMatrix{2|3|4}fv ,glUniform{1|2|3|4}{f|i}v
//设置Uniform变量值

3。void glGetUniform{f|i}v(
GLuint program,
GLint location,
GLint *params
);//获取uniform当前值

4。void glGetActiveUniform(
GLuint program,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLint *size,
GLenum *type,
GLchar *name
);//获取uniform变量熟悉

Attribute变量
1。void glBindAttribLocation(
GLuint program,
GLuint index,
const GLchar *name
);//绑定一个自定义属性变量位置

2。void glGetActiveAttrib(
GLuint program,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLint *size,
GLenum *type,
GLchar *name
);//获取属性变量属性

3。GLint glGetAttribLocation(
GLuint program,
const GLchar *name
);//获取熟悉变量位置

4。glVertexAttrib
//设置一个属性变量的值

5。glVertexAttribPointer 
//设置一个属性变量数组

6。glGetVertexAttribdv, glGetVertexAttribfv, glGetVertexAttribiv
//获取一个属性变量值

7。glGetVertexAttribPointer
//获取一个属性数组

8。void glEnableVertexAttribArray(
GLuint index
);//使能一个属性数组

9。void glDisableVertexAttribArray(
GLuint index
);//禁用一个属性数组

Shader Object及Program操作API的更多相关文章

  1. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  2. 线程操作API

    线程操作API 1.currentThread 2.getId() .getName().getPriority().getStart.isAlive().isDaemon().isInterrupt ...

  3. 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】

    day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...

  4. paip.复制文件 文件操作 api的设计uapi java python php 最佳实践

    paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi   copy() =====java的无,要自己写... ====php   copy ...

  5. Delphi内存操作API函数(备查,并一一学习)

    Delphi内存操作API函数System.IsMemoryManagerSet;System.Move;System.New;System.ReallocMem;System.ReallocMemo ...

  6. HTML5文件操作API

    HTML5文件操作API       一.文件操作API 在之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台.或 ...

  7. Js 常用字符串操作 API

    常用的一些字符串操作 API 整理 1.str.charAt(index).str.charCodeAt(index) - 返回指定位置的字符 / 字符编码(0~65535) index - 必须,表 ...

  8. 数据库操作API 或万能的双下划线

    数据库操作API: 类型 描述 exact 精确匹配: polls.get_object(id__exact=14). iexact 忽略大小写的精确匹配: polls.objects.filter( ...

  9. 文件的概念以及VC里的一些文件操作API简介

    文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文 ...

随机推荐

  1. BZOJ 2749 HAOI 2012 外星人 数论 欧拉函数

    题意: 给出一个数,给出的形式是其分解质因数后,对应的质因数pi及其次数qi,问对这个数不停求phi,直至这个数变成1,需要多少次.(多组数据) 范围:pi <= 1e5,qi <= 1e ...

  2. ng-show和ng-if的区别

    第一点区别是, ng-if 在后面表达式为 true 的时候才创建这个 dom 节点, ng-show 是初始时就创建了,用display:block 和 display:none 来控制显示和不显示 ...

  3. HDU 4597 Play Game (DP,记忆化搜索)

    Play Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total S ...

  4. vim 之cscope的使用

    http://www.mcuos.com/thread-8488-1-1.html http://blog.csdn.net/longerzone/article/details/7789581 ht ...

  5. .NET泛型03,泛型类型的转换,协变和逆变

    协变(Convariant)和逆变(Contravariant)的出现,使数组.委托.泛型类型的隐式转换变得可能. 子类转换成基类,称之为协变:基类转换成子类,称之为逆变..NET4.0以来,支持了泛 ...

  6. 4. python 修改字符串实例总结

    4. python 修改字符串实例总结 我们知道python里面字符串是不可原处直接修改的,为了是原来的字符串修改过来,我们有一下方法: 1.分片和合并 >>> a='abcde'  ...

  7. Linux 操作当前时间

    一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" ...

  8. 玩转storm

    下载地址 http://storm.apache.org/downloads.html

  9. jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自己主动化(VSS、operamasks-UI框架)

    我的qq是2059055336,对这个课程有兴趣的能够加我qq联系. 一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景 jQuery 2.0 正式版公布.不在支持 IE 6/7/8  ...

  10. struts2 18拦截器详解(五)

    I18nInterceptor 该拦截器处理defaultStack第四的位置,是用来方便国际化的,如果说我们的一个Web项目要支持国际化的话,通常的做法是给定一个下拉框列出所支持的语言,当用户选择了 ...