Friday, May 13, 2011

1、glGenTextures(GLsizei n, GLuint *textures)函数说明

glGenTextures(GLsizei n, GLuint *textures)函数说明 
n:       用来生成纹理的数量 
textures:存储纹理索引的 
        glGenTextures函数根据纹理参数返回n个纹理索引。glGenTextures就是用来产生你要操作的纹理对象的索引的,比如你告诉OpenGL,我需要5个纹理对象glGenTextures(5,&textures),它会从没有用到的纹理对象索引里返回5个纹理对象的索引号存放到textures数组中。 
       OpenGL中存在内部状态机,OpenGL内部实际上存储了很多状态,比如当前操作的纹理对象索引号,glBindTexture实际上是改变了OpenGL的这个状态,它告诉OpenGL下面对纹理的任何操作都是对它所绑定的纹理对象的,比如glBindTexture(GL_TEXTURE_2D,1)告诉OpenGL下面代码中对2D纹理的任何设置都是针对索引为1的纹理的。 
       glGenTextures函数根据纹理参数返回n个纹理名称。纹理名称集合不必是一个连续的整数集合。因此,可能在先前调用的glGenTextures的时候没有名称集合被返回。产生纹理函数假定目标纹理的面积是由glBindTexture函数限制的。先前调用glGentTextures产生的纹理名称集不会由后面调用的glGenTextures得到,除非他们首先被glDeleteTextures删除。 
你不可以在显示列表中包含glGenTextures 
      EXP: 
       GLuint   Tex[5]; 
       glGenTextures(5,&Tex); 
       执行以上两行代码,就得到了5个纹理对象的索引号,他们分别存储在Tex[0]~~Tex[4]中。

No comments:

Post a Comment