Difference between revisions of "GLAPI/glReadBuffer"

From OpenGL.org
Jump to: navigation, search
m (Renaming category: 'GL 4 API Framebuffer Objects' to 'Core API Ref Framebuffer Objects'.)
m (Link fix.)
(6 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
}}
 
}}
  
'''glReadBuffer:''' select a color buffer source for pixels
+
'''glReadBuffer:''' select a color buffer source for pixel read operations from the current read framebuffer.
  
 
== Function Definition ==
 
== Function Definition ==
  
   void '''glReadBuffer'''(GLenum ''mode'');
+
   void '''glReadBuffer'''(GLenum {{param|mode}});
  
 
; mode
 
; mode
: Specifies a color buffer. Accepted values are {{code|GL_FRONT_LEFT}}, {{code|GL_FRONT_RIGHT}}, {{code|GL_BACK_LEFT}}, {{code|GL_BACK_RIGHT}}, {{code|GL_FRONT}}, {{code|GL_BACK}}, {{code|GL_LEFT}}, {{code|GL_RIGHT}}, and the constants {{code|GL_COLOR_ATTACHMENT''i''}}.
+
: Specifies a color buffer. Accepted values are {{enum|GL_FRONT_LEFT}}, {{enum|GL_FRONT_RIGHT}}, {{enum|GL_BACK_LEFT}}, {{enum|GL_BACK_RIGHT}}, {{enum|GL_FRONT}}, {{enum|GL_BACK}}, {{enum|GL_LEFT}}, {{enum|GL_RIGHT}}, and the constants {{enum|GL_COLOR_ATTACHMENT''i''}}.
  
 
== Description ==
 
== Description ==
  
'''glReadBuffer''' specifies a color buffer as the source for subsequent [[GLAPI/glReadPixels|glReadPixels]], [[GLAPI/glCopyTexImage1D|glCopyTexImage1D]], [[GLAPI/glCopyTexImage2D|glCopyTexImage2D]], [[GLAPI/glCopyTexSubImage1D|glCopyTexSubImage1D]], [[GLAPI/glCopyTexSubImage2D|glCopyTexSubImage2D]], and [[GLAPI/glCopyTexSubImage3D|glCopyTexSubImage3D]] commands. ''mode'' accepts one of twelve or more predefined values. In a fully configured system, {{code|GL_FRONT}}, {{code|GL_LEFT}}, and {{code|GL_FRONT_LEFT}} all name the front left buffer, {{code|GL_FRONT_RIGHT}} and {{code|GL_RIGHT}} name the front right buffer, and {{code|GL_BACK_LEFT}} and {{code|GL_BACK}} name the back left buffer. Further more, the constants {{code|GL_COLOR_ATTACHMENT''i''}} may be used to indicate the ''i''<sup>th</sup> color attachment where ''i'' ranges from zero to the value of {{code|GL_MAX_COLOR_ATTACHMENTS}} minus one.
+
'''glReadBuffer''' specifies which color buffer within the current bound {{enum|GL_READ_FRAMEBUFFER}} will be used as the source for pixel reading commands. These commands include: {{apifunc|glBlitFramebuffer}}, {{apifunc|glReadPixels}}, {{apifunc|glCopyTexImage1D}}, {{apifunc|glCopyTexImage2D}}, {{apifunc|glCopyTexSubImage1D}}, {{apifunc|glCopyTexSubImage2D}}, and {{apifunc|glCopyTexSubImage3D}}.
  
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'''.
+
{{param|mode}} accepts one of twelve or more predefined values. If the [[Default Framebuffer]] (the zero [[Framebuffer Object]])is bound to {{enum|GL_READ_FRAMEBUFFER}}, then the following enumerators can be used: {{enum|GL_FRONT}}, {{enum|GL_LEFT}}, and {{enum|GL_FRONT_LEFT}} all name the front left buffer, {{enum|GL_FRONT_RIGHT}} and {{enum|GL_RIGHT}} name the front right buffer, and {{enum|GL_BACK_LEFT}} and {{enum|GL_BACK}} name the back left buffer. 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.
  
''mode'' is initially {{code|GL_FRONT}} in single-buffered configurations and {{code|GL_BACK}} in double-buffered configurations.
+
If a non-zero framebuffer object is bound, then the constants {{enum|GL_COLOR_ATTACHMENT''i''}} may be used to indicate the ''i''<sup>th</sup> color attachment, where ''i'' ranges from zero to the value of {{enum|GL_MAX_COLOR_ATTACHMENTS}} minus one.
 +
 
 +
It is an error to specify a nonexistent buffer to '''glReadBuffer'''.
 +
 
 +
For the default framebuffer, {{param|mode}} is initially {{enum|GL_FRONT}} in single-buffered configurations and {{enum|GL_BACK}} in double-buffered configurations. For framebuffer objects, the default read buffer is {{enum|GL_COLOR_ATTACHMENT0}}.
  
 
== Errors ==
 
== Errors ==
  
{{code|GL_INVALID_ENUM}} is generated if ''mode'' is not one of the twelve (or more) accepted values.
+
{{enum|GL_INVALID_ENUM}} is generated if {{param|mode}} is not one of the twelve (or more) accepted values.
  
{{code|GL_INVALID_OPERATION}} is generated if ''mode'' specifies a buffer that does not exist.
+
{{enum|GL_INVALID_OPERATION}} is generated if {{param|mode}} specifies a buffer that does not exist.
  
 
== Associated Gets ==
 
== Associated Gets ==
  
[[GLAPI/glGet|glGet]] with argument {{code|GL_READ_BUFFER}}
+
{{apifunc|glGet}} with argument {{enum|GL_READ_BUFFER}}
  
 
== See Also ==
 
== See Also ==
  
[[GLAPI/glCopyTexImage1D|glCopyTexImage1D]], [[GLAPI/glCopyTexImage2D|glCopyTexImage2D]], [[GLAPI/glCopyTexSubImage1D|glCopyTexSubImage1D]], [[GLAPI/glCopyTexSubImage2D|glCopyTexSubImage2D]], [[GLAPI/glCopyTexSubImage3D|glCopyTexSubImage3D]], [[GLAPI/glDrawBuffer|glDrawBuffer]], [[GLAPI/glReadPixels|glReadPixels]]
+
{{apifunc|glBindFramebuffer}}, {{apifunc|glDrawBuffer}}, {{apifunc|glDrawBuffers}}, {{apifunc|glReadPixels}}
  
 
== Copyright ==
 
== Copyright ==
Line 39: Line 43:
 
Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2011 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see [http://oss.sgi.com/projects/FreeB/ http://oss.sgi.com/projects/FreeB/].
 
Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2011 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see [http://oss.sgi.com/projects/FreeB/ http://oss.sgi.com/projects/FreeB/].
  
[[Category:API Reference 4|ReadBuffer]]
 
 
[[Category:Core API Ref Framebuffer Objects|ReadBuffer]]
 
[[Category:Core API Ref Framebuffer Objects|ReadBuffer]]
 +
[[Category:Core API Reference|ReadBuffer]]

Revision as of 19:14, 13 February 2013

glReadBuffer
Core in version 4.5
Core since version 1.0

glReadBuffer: select a color buffer source for pixel read operations from the current read framebuffer.

Function Definition

 void glReadBuffer(GLenum mode​);
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

glReadBuffer specifies which color buffer within the current bound GL_READ_FRAMEBUFFER will be used as the source for pixel reading commands. These commands include: glBlitFramebuffer, glReadPixels, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, and glCopyTexSubImage3D.

mode​ accepts one of twelve or more predefined values. If the Default Framebuffer (the zero Framebuffer Object)is bound to GL_READ_FRAMEBUFFER, then the following enumerators can be used: 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. 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.

If a non-zero framebuffer object is bound, then 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.

It is an error to specify a nonexistent buffer to glReadBuffer.

For the default framebuffer, mode​ is initially GL_FRONT in single-buffered configurations and GL_BACK in double-buffered configurations. For framebuffer objects, the default read buffer is GL_COLOR_ATTACHMENT0.

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.

Associated Gets

glGet with argument GL_READ_BUFFER

See Also

glBindFramebuffer, glDrawBuffer, glDrawBuffers, glReadPixels

Copyright

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