您的位置:首页 > 运维架构

OpenGLES---纹理的API

2016-06-01 10:16 411 查看
{目录
//关联纹理层(GL_TEXTURE0 ~ GL_TEXTURE31)
glActiveTexture (GLenum texture);
//生成纹理
glGenTextures (GLsizei n, GLuint* textures);
//删除纹理
glDeleteTextures (GLsizei n, const GLuint* textures);
//绑定纹理
glBindTexture (GLenum target, GLuint texture);
//将图片数据传给opengl
glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
//将图片局部数据传给opengl
glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
//压缩纹理
glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
//将图片局部数据传给opengl
glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
//拷贝纹理
glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
//拷贝局部纹理
glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);

glTexParameterf (GLenum target, GLenum pname, GLfloat param);
glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
//设置纹理参数
glTexParameteri (GLenum target, GLenum pname, GLint param);
glTexParameteriv (GLenum target, GLenum pname, const GLint* params);

glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
//获取纹理参数
glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
glGenerateMipmap (GLenum target);
}

/** 关联纹理层(GL_TEXTURE0 ~ GL_TEXTURE31)
* @param  texture 纹理层一共能关联32个 GL_TEXTURE0 ~ GL_TEXTURE31
* @return
*/
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);

/** 生成纹理的索引
* 功能:函数根据纹理参数返回n个纹理索引。纹理名称集合不必是一个连续的整数集合。
* @param  n  用来生成纹理的数量
* @param  textures 存储纹理索引的第一个元素指针
*  删除
* 		unsigned tId=0;
*		glGenTextures(1,&tId);//生成纹理的索引
*		...
*		glDeleteTextures(1,&tId);
*/
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);

/** 删除纹理
* @param  n 产生纹理的数量
* @param  textures 存储纹理索引的第一个元素指针
*  删除
* 		unsigned tId=0;
*		glGenTextures(1,&tId);
*		...
*		glDeleteTextures(1,&tId);
*/
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures);

/** 绑定纹理
* @param  target   纹理是几维的
* @param  texture  纹理id
* @return
*/
GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);

/** 将图片数据传给opengl
* @param  target 纹理是几维的 GL_TEXTURE_2D ...
* @param  level 纹理层级别[0,10] 0最大,10最小
* @param  internalformat 纹理存储格式(显冲用的纹理格式)
* @param  width 纹理宽度,老一点的显卡,不支持不规则的纹理,即宽度和高度不是2^n。
* @param  height 纹理高度,老一点的显卡,不支持不规则的纹理,即宽度和高度不是2^n。
* @param  border 是否有边框
* @param  format 数据的格式(传入图片数据的格式)RGB,GRBA ...
* @param  type 纹理数据类型  unsigned byte ...
* @param  pixels 纹理数据
*/
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);

/** 将图片局部数据传给opengl
* @param  target  纹理是几维的 GL_TEXTURE_2D ...
* @param  level 纹理层级别[0,10] 0最大,10最小
* @param  xoffset 偏移量x(相对整张图片(0,0)点偏移多少)
* @param  yoffset 偏移量y
* @param  width 纹理宽度,老一点的显卡,不支持不规则的纹理,即宽度和高度不是2^n。
* @param  height 纹理高度,老一点的显卡,不支持不规则的纹理,即宽度和高度不是2^n。
* @param  format 数据的格式(传入图片数据的格式)RGB,GRBA ...
* @param  type 纹理数据类型  unsigned byte ...
* @param  pixels 纹理数据
*/
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);

/** 压缩纹理
* @param  target 纹理是几维的 GL_TEXTURE_2D ...
* @param  level 纹理层级别[0,10] 0最大,10最小
* @param  internalformat 压缩格式
* @param  width  纹理宽度
* @param  height  纹理高度
* @param  border  是否有边框
* @param  imageSize
* @param  data   纹理数据
* @return
*/
GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);

/** 将图片局部数据传给opengl
* @param  target  纹理是几维的 GL_TEXTURE_2D ...
* @param  level   纹理层级别[0,10] 0最大,10最小
* @param  xoffset  偏移量x(相对整张图片(0,0)点偏移多少)
* @param  yoffset  偏移量y
* @param  width   纹理宽度
* @param  height  纹理高度
* @param  format  数据的格式(传入图片数据的格式)RGB,GRBA ...
* @param  imageSize
* @param  data    纹理数据
* @return
*/
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);

/** 拷贝纹理
* @param  target 纹理是几维的 GL_TEXTURE_2D ...
* @param  level 纹理层级别[0,10] 0最大,10最小
* @param  internalformat
* @param  x 起始位x(相对屏幕(0,0)点偏移多少)
* @param  y 起始位x
* @param  width 纹理宽度
* @param  height 纹理高度
* @param  border 是否有边框
*/
GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);

/** 拷贝局部纹理
* @param  target  纹理是几维的 GL_TEXTURE_2D ...
* @param  level  纹理层级别[0,10] 0最大,10最小
* @param  xoffset 偏移量x(相对屏幕(0,0)点偏移多少)
* @param  yoffset 偏移量y
* @param  x
* @param  y
* @param  width 纹理宽度
* @param  height 纹理高度
*/
GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);

/**
* @param  target
* @param  pname
* @param  param
* @return
*/
GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);

/** 设置纹理参数
* @param  target 纹理是几维的 GL_TEXTURE_2D ...
* @param  pname
*         	GL_TEXTURE_MAG_FILTER  放大滤波(参数)
*				GL_NEAREST  最近的(用第0级)
*				GL_LINEAR   线性的(用第0级)
*			GL_TEXTURE_MIN_FILTER  缩小滤波(参数)
*				GL_NEAREST 最近的(用第0级)
*				GL_LINEAR  线性的(用第0级)
*				GL_NEAREST_MIPMAP_NEAREST(用mipmap)   	(NEAREST:本级之间的算法,GL_LINEAR:级与级之间是否做了差值过滤)
*				GL_LINEAR_MIPMAP_NEAREST (用mipmap)
*				GL_NEAREST_MIPMAP_LINEAR (用mipmap)
*				GL_LINEAR_MIPMAP_LINEAR  (用mipmap)  最好级别
*			GL_TEXTURE_WRAP_S  s方向(水平方向,uv坐标xy轴,这st是一个意思)
*			GL_TEXTURE_WRAP_T  t方向(垂直方向)
*				GL_REPEAT          重复(默认)
*				GL_CLAMP_TO_EDGE   用边缘的像素填充(纹理超过1的话)
*				GL_MIRRORED_REPEAT 纹理镜像重复(纹理超过1的话)
* @param  param
*/
GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params);

GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);

/** 获取纹理参数
* @param  target 纹理是几维的 GL_TEXTURE_2D ...
* @param  pname  参数
* @param  params 内容
* @return
*/
GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);

/**
* @param  target
* @return
*/
GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target);


不一定全,以后还会更新的。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息