class_docstr: Frame buffer object
  
  Parameters
  ----------
  color : RenderBuffer (optional)
      The color buffer to attach to this frame buffer
  depth : RenderBuffer (optional)
      The depth buffer to attach to this frame buffer
  stencil : RenderBuffer (optional)
      The stencil buffer to attach to this frame buffer
class_docstr_tok: ["Frame","buffer","object","Parameters","--","--","--","--","--","color",":","RenderBuffer","(","optional",")","The","color","buffer","to","attach","to","this","frame","buffer","depth",":","RenderBuffer","(","optional",")","The","depth","buffer","to","attach","to","this","frame","buffer","stencil",":","RenderBuffer","(","optional",")","The","stencil","buffer","to","attach","to","this","frame","buffer"]
docstr: Resize all attached buffers with the given shape
  
  Parameters
  ----------
  shape : tuple of two integers
      New buffer shape (h, w), to be applied to all currently
      attached buffers. For buffers that are a texture, the number
      of color channels is preserved.
docstr_tok: ["Resize","all","attached","buffers","with","the","given","shape","Parameters","--","--","--","--","--","shape",":","tuple","of","two","integers","New","buffer","shape","(","h",",","w",")",",","to","be","applied","to","all","currently","attached","buffers",".","For","buffers","that","are","a","texture",",","the","number","of","color","channels","is","preserved","."]
code: def resize(self, shape):
      """Resize all attached buffers with the given shape
  
      Parameters
      ----------
      shape : tuple of two integers
          New buffer shape (h, w), to be applied to all currently
          attached buffers. For buffers that are a texture, the number
          of color channels is preserved.
      """
      # Check
      if not (isinstance(shape, tuple) and len(shape) == 2):
          raise ValueError(
              "RenderBuffer shape must be a 2-element tuple"
          )
      # Resize our buffers
      for buf in (
          self.color_buffer,
          self.depth_buffer,
          self.stencil_buffer,
      ):
          if buf is None:
              continue
          shape_ = shape
          if isinstance(buf, Texture2D):
              shape_ = shape + (buf._inv_formats[buf.format],)
          buf.resize(shape_, buf.format)
  
imports: from .globject import GLObject
  from .texture import Texture2D
  from .wrappers import _check_valid, read_pixels
  from .context import get_current_canvas
label_desc: Use image node_id 14 for calling the FrameBuffer obj's underlying member method code with example usage: obj.resize(shape) without return types