名称
glFramebufferRenderbuffer- 将renderbuffer对象附加到framebuffer对象
C规范
void glFramebufferRenderbuffer(GLenum target,
GLenum attachment,
GLenum renderbuffertarget,
GLuint renderbuffer);
参数
target
指定帧缓冲目标。 符号常量必须是GL_FRAMEBUFFER。
attachment
指定renderbuffer应附加到的附着点。 必须是以下符号常量之一:GL_COLOR_ATTACHMENT0,GL_DEPTH_ATTACHMENT或GL_STENCIL_ATTACHMENT。
renderbuffertarget
指定renderbuffer目标。 符号常量必须为GL_RENDERBUFFER。
renderbuffer
指定要附加的renderbuffer对象。
描述
glFramebufferRenderbuffer将renderbuffer指定的renderbuffer附加为当前绑定的framebuffer对象的逻辑缓冲区之一。 attachment指定是否应将renderbuffer附加到framebuffer对象的颜色,深度或模板缓冲区。 渲染缓冲区不可以附加到默认(名称为0)的帧缓冲对象。
如果renderbuffer不为0,则指定附加点的GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE值设置为GL_RENDERBUFFER,GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME的值设置为renderbuffer。 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL和GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE分别设置为默认值0和GL_TEXTURE_CUBE_MAP_POSITIVE_X。 先前绑定的帧缓冲区对象的附件逻辑缓冲区都将被破坏。
如果renderbuffer为0,则分离附加到当前绑定的framebuffer对象的附件逻辑缓冲区的当前图像(如果有的话)。 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE的值设置为GL_NONE。 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME的值设置为0. GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL和GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE分别设置为默认值0和GL_TEXTURE_CUBE_MAP_POSITIVE_X。
注意
如果在将图像附加到当前绑定的帧缓冲区时删除了渲染缓冲区对象,则就好像glFramebufferRenderbuffer已使用渲染缓冲区为0调用此图像附加到当前绑定的帧缓冲区对象中的附着点。 换句话说,渲染缓冲区图像与当前绑定的帧缓冲区分离。 请注意,渲染缓冲区图像不会与任何未绑定的帧缓冲区分离。从任何非绑定帧缓冲区中分离映像是应用程序的责任。
错误
GL_INVALID_ENUM
:如果target不是GL_FRAMEBUFFER。
GL_INVALID_ENUM
:如果renderbuffertarget不是GL_RENDERBUFFER且renderbuffer不是0。
GL_INVALID_ENUM
:attachment是不可接收的附着点。
GL_INVALID_OPERATION
:如果绑定了默认的帧缓冲对象名称0。
GL_INVALID_OPERATION
:如果renderbuffer既不是0也不是现有渲染缓冲区对象的名称。
相关Gets
glGetFramebufferAttachmentParameteriv
另见
glBindFramebuffer,glBindRenderbuffer,glCheckFramebufferStatus,glDeleteFramebuffers,glDeleteRenderbuffers,glFramebufferTexture2D,glGetFramebufferAttachmentParameteriv,glRenderbufferStorage
版权
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glFramebufferRenderbuffer.xml
https://blog.youkuaiyun.com/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.
