DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

glCopyTexSubImage3D(3)





NAME

       glCopyTexSubImage3D - copy a three-dimensional texture subimage


C SPECIFICATION

       void glCopyTexSubImage3D( GLenum target,
                                 GLint level,
                                 GLint xoffset,
                                 GLint yoffset,
                                 GLint zoffset,
                                 GLint x,
                                 GLint y,
                                 GLsizei width,
                                 GLsizei height )

       delim $$


PARAMETERS

       target   Specifies the target texture.  Must be GL_TEXTURE_3D

       level    Specifies  the  level-of-detail  number.   Level 0 is the base
                image level.  Level n is the nth mipmap reduction image.

       xoffset  Specifies a texel offset in the x direction within the texture
                array.

       yoffset  Specifies a texel offset in the y direction within the texture
                array.

       zoffset  Specifies a texel offset in the z direction within the texture
                array.

       x, y     Specify the window coordinates of the lower left corner of the
                rectangular region of pixels to be copied.

       width    Specifies the width of the texture subimage.

       height   Specifies the height of the texture subimage.


DESCRIPTION

       glCopyTexSubImage3D replaces a rectangular portion  of  a  three-dimen-
       sional  texture  image  with  pixels  from  the  current GL_READ_BUFFER
       (rather than from main memory, as is the case for glTexSubImage3D).

       The screen-aligned pixel rectangle with lower left corner at (x, y) and
       with  width width and height height replaces the portion of the texture
       array with x indices xoffset  through  xoffset$~+~$width$~-~$1,  inclu-
       sive,  and  y  indices yoffset through yoffset$~+~$height$~-~$1, inclu-
       sive, at z index zoffset and at the mipmap level specified by level.

       The pixels in the rectangle are processed exactly  as  if  glCopyPixels
       had  been  called,  but the process stops just before final conversion.
       At this point, all pixel component values  are  clamped  to  the  range
       [0, 1] and then converted to the texture's internal  for storage in the
       texel array.

       The destination rectangle in the texture array may not include any tex-
       els  outside  the  texture array as it was originally specified.  It is
       not an error to specify a subtexture with zero  width  or  height,  but
       such a specification has no effect.

       If  any  of  the  pixels  within the specified rectangle of the current
       GL_READ_BUFFER are outside the read window associated with the  current
       rendering  context, then the values obtained for those pixels are unde-
       fined.

       No change is made to the internalformat, width, height, depth, or  bor-
       der  parameters  of the specified texture array or to texel values out-
       side the specified subregion.


NOTES

       glCopyTexSubImage3D is available only if  the  GL  version  is  1.2  or
       greater.

       Texturing has no effect in color index mode.

       glPixelStore and glPixelTransfer modes affect texture images in exactly
       the way they affect glDrawPixels.

       When the GL_ARB_imaging extension is  supported,  the  RGBA  components
       copied  from  the framebuffer may be processed by the imaging pipeline,
       as if they were a two-dimensional texture.  See glTexImage2D  for  spe-
       cific details.


ERRORS

       GL_INVALID_ENUM is generated if target is not GL_TEXTURE_3D.

       GL_INVALID_OPERATION  is  generated  if  the texture array has not been
       defined by a previous glTexImage3D or glCopyTexImage3D operation.

       GL_INVALID_VALUE is generated if level is less than 0.

       GL_INVALID_VALUE may be generated if level is  greater  than  $log  sub
       2^max$, where $max$ is the returned value of GL_MAX_3D_TEXTURE_SIZE.

       GL_INVALID_VALUE  is  generated if x$ ~<~ ~-b$ or if y$ ~<~ ~-b$, where
       $b$ is the border width of the texture array.

       GL_INVALID_VALUE  is  generated   if   $"xoffset"   ~<~   -b$,   (xoff-
       set$~+~$width)$~>~(w      ~-~b)$,      yoffset$~<~     ~-b$,     (yoff-
       set$~+~$height)$~>~(h  ~-~b)$,  zoffset$~<~  ~-b$,   or   zoffset$~>~(d
       ~-~b)$,    where    $w$   is   the   GL_TEXTURE_WIDTH,   $h$   is   the
       GL_TEXTURE_HEIGHT,  $d$  is  the  GL_TEXTURE_DEPTH,  and  $b$  is   the
       GL_TEXTURE_BORDER  of the texture image being modified.  Note that $w$,
       $h$, and $d$ include twice the border width.

       GL_INVALID_OPERATION is generated if  glCopyTexSubImage3D  is  executed
       between  the  execution  of  glBegin and the corresponding execution of
       glEnd.


ASSOCIATED GETS

       glGetTexImage
       glIsEnabled with argument GL_TEXTURE_3D


SEE ALSO

       glCopyPixels(3G),      glCopyTexImage1D(3G),      glCopyTexImage2D(3G),
       glCopyTexSubImage1D(3G),   glCopyTexSubImage2D(3G),   glPixelStore(3G),
       glPixelTransfer(3G),  glReadBuffer(3G),   glTexEnv(3G),   glTexGen(3G),
       glTexImage1D(3G),          glTexImage2D(3G),          glTexImage3D(3G),
       glTexParameter(3G),      glTexSubImage1D(3G),      glTexSubImage2D(3G),
       glTexSubImage3D(3G)

                                                       GLCOPYTEXSUBIMAGE3D(3G)

Man(1) output converted with man2html