OpenGLES---纹理的API

原创 2016年06月01日 10:16:00


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

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

opengles创建圆柱体(光照加纹理)

  • 2016年09月05日 14:25
  • 8.41MB
  • 下载

opengles多重纹理动画

  • 2017年05月03日 15:14
  • 295KB
  • 下载

OpenGLES2.0 Iphone开发指引:第二部分,纹理贴图

转自:http://www.cnblogs.com/zilongshanren/archive/2011/09/02/2155061.html      免责申明(必读!):本博客提...

opengles构建过程纹理地形

  • 2016年10月11日 10:28
  • 1.56MB
  • 下载

opengles加载3d模型(纹理+光照)

  • 2016年09月12日 16:13
  • 9.31MB
  • 下载

OpenGLES 1.1教程(四)-纹理映射

http://www.helmsmansoft.com/index.php/archives/1536 继续哈,从前面的几篇文章里,可以在三维空间里绘制出一个z轴为0的平面图形,这样绘制...

opengles绘制纹理

  • 2016年08月16日 11:02
  • 7.83MB
  • 下载

OpenglES 1.0 纹理贴图

  • 2009年06月29日 23:41
  • 1.81MB
  • 下载

OpenglES2.0 for Android:纹理映射

OpenglES2.0 for Android:纹理映射 前言  纹理映射又叫做纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。就是把一幅图像贴到三维物体的表面上来增强真实感, 可...

OpenGlEs显示纹理例子程序

  • 2012年10月25日 12:16
  • 74KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenGLES---纹理的API
举报原因:
原因补充:

(最多只允许输入30个字)