Shader Object及Program操作API
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的更多相关文章
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- 线程操作API
线程操作API 1.currentThread 2.getId() .getName().getPriority().getStart.isAlive().isDaemon().isInterrupt ...
- 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...
- paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi copy() =====java的无,要自己写... ====php copy ...
- Delphi内存操作API函数(备查,并一一学习)
Delphi内存操作API函数System.IsMemoryManagerSet;System.Move;System.New;System.ReallocMem;System.ReallocMemo ...
- HTML5文件操作API
HTML5文件操作API 一.文件操作API 在之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台.或 ...
- Js 常用字符串操作 API
常用的一些字符串操作 API 整理 1.str.charAt(index).str.charCodeAt(index) - 返回指定位置的字符 / 字符编码(0~65535) index - 必须,表 ...
- 数据库操作API 或万能的双下划线
数据库操作API: 类型 描述 exact 精确匹配: polls.get_object(id__exact=14). iexact 忽略大小写的精确匹配: polls.objects.filter( ...
- 文件的概念以及VC里的一些文件操作API简介
文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文 ...
随机推荐
- IEEE Bigger系列题解
Bigger系列题解 Bigger Python 坑点在于要高精度以及表达式求值,用java写可以很容易避免高精度问题 然后这道题就可以AC了 代码 import java.io.*; import ...
- java对mongodb的and, in, or 经常使用操作
DBCollection dbcon = null; DBObject query = new BasicDBObject(); BasicDBList values = new BasicDBLis ...
- Delphi7 中使用FastMM 转载
http://blog.csdn.net/cai5/article/details/17142697 Delphi7 中使用FastMM 在工程的第一行引用FastMM4即可(注意,一定要在第一个Us ...
- 压缩 js/css 的工具
最近检测服务器,发现js/css文件都没有压缩过,动手解决此问题先. 本次压缩采用 yui compress (2.4.8) 压缩脚本: #!/bin/sh echo "########## ...
- iPhone应用提交流程:如何将App程序发布到App Store-转
对于刚加入iOS应用开发行列的开发者来说,终于经过艰苦的Coding后完成了第一个应用后最重要的历史时刻就是将应用程序提交到iTunes App Store.Xcode 4.2开发工具已经把App提交 ...
- DevExpress SpreadSheet报表模板设置 z
DevExpres SpreadSheetControl报表模板设置,这一个还是挺牛逼的,字段绑定直接在单元格里面设置公式(=Field("字段名")),当然直接拖更方便, 跟xt ...
- Selenium2+python自动化37-爬页面源码(page_source)
前言 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息.selenium的page_source方法可以获取到页面源码. selenium的page_sour ...
- CAS工作流程
CAS3.0的工作流程: 0.app将用户转发到CAS处, 并将自己的url作为callback参数传给CAS. 1.CAS验证用户成功(authentication) 2.生成用户实体(princi ...
- Configuring HDFS High Availability
Configuring HDFS High Availability 原文请訪问 http://blog.csdn.net/ashic/article/details/47024617,突袭新闻小灵儿 ...
- vim/vi 命令详解
在工作中,要对服务器上的文件进行的修改,可以使用ssh远程登录到服务器上,并且使用vi进行快速的编辑即可,在没有图形界面的环境下,要编辑文件,vi是最佳选择! vi命令是Linux中最经典的文本编辑器 ...