glBindTexture 函数

glBindTexture 函数支持创建绑定到纹理目标的命名纹理。

语法

void WINAPI glBindTexture(
   GLenum target,
   GLuint texture
);

参数

目标

纹理绑定到的目标。 必须具有值GL_TEXTURE_1D或GL_TEXTURE_2D。

纹理

纹理的名称;纹理名称当前无法使用。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_ENUM
参数 目标 不是接受的值。
GL_INVALID_OPERATION
参数 纹理 的维数与 目标不同,或者在对 glBegin 的调用和对 glEnd 的相应调用之间调用了 函数。

备注

使用 glBindTexture 函数可以创建命名纹理。 如果目标设置为 GL_TEXTURE_1D 或 GL_TEXTURE_2D,并且纹理设置为已创建的新纹理的名称,则调用 glBindTexture 会将纹理名称绑定到相应的纹理目标。 当纹理绑定到某个目标时,该目标的上一个绑定不再有效。

纹理名称是无符号整数,保留值 0 以表示每个纹理目标的默认纹理。 纹理名称和相应的纹理内容是当前 OpenGL 呈现上下文的共享显示列表空间的本地内容;仅当两个呈现上下文也共享显示列表时,它们才会共享纹理名称。 可以使用 glGenTextures 生成一组新的纹理名称。

首次绑定纹理时,它假定其纹理目标的维数;绑定到GL_TEXTURE_1D的纹理变为一维,绑定到GL_TEXTURE_2D的纹理变为二维。 对纹理目标执行的操作也会影响绑定到目标的纹理。 查询纹理目标时,返回值是绑定到它的纹理的状态。 纹理目标将成为当前绑定到它们的纹理的别名。

使用 glBindTexture 绑定纹理时,绑定将保持活动状态,直到将不同的纹理绑定到同一目标,或者使用 glDeleteTextures 函数删除绑定纹理。 创建命名纹理后,可以根据需要将其绑定到具有相同维度的纹理目标。

使用 glBindTexture 将现有命名纹理绑定到纹理目标之一通常比使用 glTexImage1DglTexImage2D 重新加载纹理图像要快得多。 若要进一步控制纹理性能,请使用 glPrioritizeTextures

可以在显示列表中包括对 glBindTexture 的 调用。

注意

glBindTexture 函数仅在 OpenGL 版本 1.1 或更高版本中可用。

以下函数检索与 glBindTexture 相关的信息:

  • 带参数GL_TEXTURE_1D_BINDING的 glGet

带参数GL_TEXTURE_2D_BINDING的 glGet

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glAreTexturesResident

glDeleteTextures

glGenTextures

glGet

glGetTexParameter

glIsTexture

glPrioritizeTextures

glTexImage1D

glTexImage2D

glTexParameter