GLREADBUFFER(3G)

hiii bestie πŸ’– welcome to the GLREADBUFFER(3G) page β€” that's the page for the 3G manual, and the original header's manual-name slot is literally [FIXME: manual] 😭. this one's all about picking which color buffer your pixel reads come from, and honestly it's more iconic than it sounds ✨.

πŸ’– NAME πŸ’–

glReadBuffer, glNamedFramebufferReadBuffer β€” select a color buffer source for pixels.

✨ C SPECIFICATION ✨

the signatures, exactly as served:

void glReadBuffer(GLenum mode);

void glNamedFramebufferReadBuffer(GLuint framebuffer, GLenum mode);

πŸŽ€ PARAMETERS πŸŽ€

  • framebuffer β€” specifies the name of the framebuffer object for the glNamedFramebufferReadBuffer function.
  • mode β€” specifies a color buffer. Accepted values are GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, and the constants GL_COLOR_ATTACHMENTi.

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so glReadBuffer specifies a color buffer as the source for subsequent glReadPixels(), glCopyTexImage1D(), glCopyTexImage2D(), glCopyTexSubImage1D(), glCopyTexSubImage2D(), and glCopyTexSubImage3D() commands. mode accepts one of twelve or more predefined values. In a fully configured system, GL_FRONT, GL_LEFT, and GL_FRONT_LEFT all name the front left buffer, GL_FRONT_RIGHT and GL_RIGHT name the front right buffer, and GL_BACK_LEFT and GL_BACK name the back left buffer. Also, the constants GL_COLOR_ATTACHMENTi may be used to indicate the ith color attachment where i ranges from zero to the value of GL_MAX_COLOR_ATTACHMENTS minus one.

Nonstereo double-buffered configurations have only a front left and a back left buffer. Single-buffered configurations have a front left and a front right buffer if stereo, and only a front left buffer if nonstereo. It is an error to specify a nonexistent buffer to glReadBuffer β€” lowkey do not do that πŸ™ˆ.

mode is initially GL_FRONT in single-buffered configurations and GL_BACK in double-buffered configurations.

For glReadBuffer, the target framebuffer object is that bound to GL_READ_FRAMEBUFFER. For glNamedFramebufferReadBuffer, framebuffer must either be zero or the name of the target framebuffer object. If framebuffer is zero, then the default read framebuffer is affected.

πŸ’€ ERRORS πŸ’€

  • GL_INVALID_ENUM is generated if mode is not one of the twelve (or more) accepted values.
  • GL_INVALID_OPERATION is generated if mode specifies a buffer that does not exist.
  • GL_INVALID_OPERATION is generated by glNamedFramebufferReadBuffer if framebuffer is not zero or the name of an existing framebuffer object.

πŸ”₯ ASSOCIATED GETS πŸ”₯

glGet() with argument GL_READ_BUFFER β€” that's the associated get, bestie.

🌈 VERSION SUPPORT 🌈

the original table has columns for OpenGL Version and rows for Function / Feature Name, so here's the whole vibe translated into bullets ✨:

  • glNamedFramebufferReadBuffer β€” 2.0 -; 2.1 -; 3.0 -; 3.1 -; 3.2 -; 3.3 -; 4.0 -; 4.1 -; 4.2 -; 4.3 -; 4.4 -; 4.5 βœ”
  • glReadBuffer β€” 2.0 βœ”; 2.1 βœ”; 3.0 βœ”; 3.1 βœ”; 3.2 βœ”; 3.3 βœ”; 4.0 βœ”; 4.1 βœ”; 4.2 βœ”; 4.3 βœ”; 4.4 βœ”; 4.5 βœ”

πŸ’œ SEE ALSO πŸ’œ

  • glCopyTexImage1D()
  • glCopyTexImage2D()
  • glCopyTexSubImage1D()
  • glCopyTexSubImage2D()
  • glCopyTexSubImage3D()
  • glDrawBuffer()
  • glReadPixels()

Copyright Β© 1991-2006 Silicon Graphics, Inc. Copyright Β© 2011-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.

Copyright Β© 1991-2006 Silicon Graphics, Inc.

Copyright Β© 2011-2014 Khronos Group

okay bye bestie 🫢 β€” the original footer says source [FIXME: source], version/date 08/09/2021, and title GLREADBUFFER(3G), so that's the whole page. go forth and select your color buffer πŸ’…βœ¨

πŸ“¦ where this page comes from