openGL之API学习(一九三)glGenTextures

Posted hankern

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openGL之API学习(一九三)glGenTextures相关的知识,希望对你有一定的参考价值。

生成纹理单元名,单元名不一定是连续的,但是没有使用的。单元名是相对GL_TEXTURE0的,对于单元名1,其实是GL_TEXTURE0+1。glGenTextures产生的是一个比较小的整数id(纹理单元名),glActiveTexture激活的是纹理单元号(GL_TEXTUREi),它们二者的关系为GL_TEXTUREi=GL_TEXTURE0+id。glBindTexture使用的是纹理单元名。

void glGenTextures(     GLsizei n,
      GLuint * textures);

n

Specifies the number of texture names to be generated.

     指定生成纹理单元的数量
textures

Specifies an array in which the generated texture names are stored.

指定存放纹理单元号的数组

GLuint id;
glGenTextures( 1L, &id );
glGenTextures(1, byref(disp_tex_id))
 
glActiveTexture(GL_TEXTURE1)
glEnable(GL_TEXTURE_2D)
glBindTexture(GL_TEXTURE_2D, disp_tex_id)
glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
 
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 256, 128, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, pix)

以上是关于openGL之API学习(一九三)glGenTextures的主要内容,如果未能解决你的问题,请参考以下文章

openGL之API学习(一九二)PACK与UNPACK

openGL之API学习(一九八)默认着色器

openGL之API学习(一九四)glGenTextures glActiveTexture

openGL之API学习(一九一)webgl到webgpu

openGL之API学习(一九六)纹理单元名和纹理单元的管理

openGL之API学习(一九九)纹理单元和纹理对象的关系