名称
glFramebufferTexture — 将纹理对象的级别附加为帧缓冲区对象的逻辑缓冲区
C 规范
void glFramebufferTexture( GLenum target,
GLenum attachment,
GLuint texture,
GLint level);
参数
target
指定帧缓冲区绑定的目标。
attachment
指定帧缓冲区的连接点。
texture
指定要附加的现有纹理对象的名称。
level
指定要附加的纹理对象的mipmap级别。
描述
glFramebufferTexture将选定的mipmap级别或纹理对象的图像附加为绑定到指定目标的帧缓冲区对象的逻辑缓冲区之一。无法将纹理附加到默认的绘制和读取帧缓冲区,因此它们不是这些命令的有效目标。
帧缓冲区对象是绑定到目标的对象,必须是GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER或GL_FRAMEBUFFER。 GL_FRAMEBUFFER等效于GL_DRAW_FRAMEBUFFER。
附件指定帧缓冲区的逻辑附件,并且必须为GL_COLOR_ATTACHMENTi,GL_DEPTH_ATTACHMENT,GL_STENCIL_ATTACHMENT或GL_DEPTH_STENCIL_ATTACHMENT。 GL_COLOR_ATTACHMENTi中的i范围可以从零到GL_MAX_COLOR_ATTACHMENTS的值减一。将纹理级别附加到GL_DEPTH_STENCIL_ATTACHMENT等效于将该级别同时附加到GL_DEPTH_ATTACHMENT和GL_STENCIL_ATTACHMENT附加点。
如果texture非零,则将指定级别的名为texture的纹理对象附加到由attachment命名的帧缓冲区附加点。
如果纹理是多采样纹理,则级别必须为零。
如果纹理是3D纹理,则级别必须大于或等于GL_MAX_3D_TEXTURE_SIZE的log2。
如果纹理是立方体映射的纹理,则级别必须大于或等于零且小于或等于GL_MAX_CUBE_MAP_TEXTURE_SIZE的值的log2。
对于所有其他纹理类型,级别必须大于或等于GL_MAX_TEXTURE_SIZE的值的log2。
如果纹理是三维,立方体贴图,立方体贴图,二维阵列或二维多样本阵列贴图的名称,则指定的贴图级别是图像阵列,并且认为帧缓冲区附件是分层的并且GL_FRAMEBUFFER_ATTACHMENT_LAYERED设置为true。
错误
如果目标不是GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER或GL_FRAMEBUFFER,则如果目标生成GL_INVALID_ENUM
如果将零绑定到目标,则生成GL_INVALID_OPERATION。
如果附件不是可接受的附件点之一,则生成GL_INVALID_ENUM。
如果纹理不为零或现有纹理对象的名称,则生成GL_INVALID_VALUE。
如果纹理不为零且纹理级别不受支持,则生成GL_INVALID_VALUE。
GL_INVALID_OPERATION是通过纹理是否为缓冲区纹理生成的
API支持版本
函数名 | 2.0 | 3.0 | 3.1 | 3.2 |
---|---|---|---|---|
glFramebufferTexture | - | - | - | ✔ |
另见
glGenFramebuffers, glBindFramebuffer, glGenRenderbuffers, glFramebufferTextureLayer, glFramebufferTexture2D
版权
https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glFramebufferTexture.xhtml
Copyright © 2010-2015 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.