关闭

OpenGLES---纹理的API

标签: OpenGL-ES 2.0OpenGLESopengl esapi
419人阅读 评论(0) 收藏 举报
分类:


{目录
	//关联纹理层(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);

不一定全,以后还会更新的。。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34075次
    • 积分:705
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论