GLTEXSUBIMAGE3D(3G)

πŸ“¦ version 24.3.3, in opensuse-leap 16.0

GLTEXSUBIMAGE3D(3G) πŸ’…βœ¨

okay bestie, you're in the 3G manual page and this is the whole vibe: we're replacing a 3D chunk of an existing 3D texture with new pixel data. no cap, it's giving texture glow-up. 🫢


🌸 NAME 🌸

glTexSubImage3D β€” specify a three-dimensional texture subimage. literally that. that's the plot. πŸ’–


✨ C SPECIFICATION ✨

this is the exact signature, bestie β€” do not retype it from memory, that's how you summon bugs πŸ’€

void glTexSubImage3D( GLenum target,
                      GLint level,
                      GLint xoffset,
                      GLint yoffset,
                      GLint zoffset,
                      GLsizei width,
                      GLsizei height,
                      GLsizei depth,
                      GLenum format,
                      GLenum type,
                      const GLvoid *pixels )

πŸ’– PARAMETERS πŸ’–

  • target β€” specifies the target texture. it must be GL_TEXTURE_3D, bestie. no substitutions. πŸ‘‘
  • level β€” specifies the level-of-detail number. level 0 is the base image level. level n is the nth mipmap reduction image. slay the pyramid. πŸ”₯
  • 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.
  • width β€” specifies the width of the texture subimage.
  • height β€” specifies the height of the texture subimage.
  • depth β€” specifies the depth of the texture subimage.
  • format β€” specifies the format of the pixel data. the following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA. πŸŽ€
  • type β€” specifies the data type of the pixel data. the following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV. πŸ’…
  • pixels β€” specifies a pointer to the image data in memory.

πŸ¦‹ DESCRIPTION πŸ¦‹

texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. to enable and disable three-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_3D. πŸ¦‹

glTexSubImage3D redefines a contiguous subregion of an existing three-dimensional texture image. the texels referenced by pixels replace the portion of the existing texture array with x indices xoffset and xoffset+widthβˆ’1, inclusive, y indices yoffset and yoffset+heightβˆ’1, inclusive, and z indices zoffset and zoffset+depthβˆ’1, inclusive. 🌈

this region may not include any texels outside the range of the texture array as it was originally specified. it is not an error to specify a subtexture with zero width, height, or depth, but such a specification has no effect. zero-sized and iconic, but functionally just vibes. πŸ’€


⭐ NOTES ⭐

  • glTexSubImage3D is available only if the GL version is 1.2 or greater. periodt.
  • texturing has no effect in color index mode.
  • glPixelStore and glPixelTransfer modes affect texture images in exactly the way they affect glDrawPixels.
  • formats GL_BGR, and GL_BGRA and types GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are available only if the GL version is 1.2 or greater. πŸŽ€
  • when the GL_ARB_multitexture extension is supported, glTexSubImage3D specifies a three-dimensional sub texture for the current texture unit, specified with glActiveTextureARB.
  • when the GL_ARB_imaging extension is supported, the RGBA components specified in pixels may be processed by the imaging pipeline. see glTexImage3D for specific 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 operation.
  • GL_INVALID_VALUE is generated if level is less than 0.
  • GL_INVALID_VALUE may be generated if level is greater than log2max, where max is the returned value of GL_MAX_TEXTURE_SIZE.
  • GL_INVALID_VALUE is generated if xoffset<βˆ’b, (xoffset+width)>(wβˆ’b), yoffset<βˆ’b, or (yoffset+height)>(hβˆ’b), or zoffset<βˆ’b, or (zoffset+depth)>(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 border width of the texture image being modified. note that w, h, and d include twice the border width. 😭
  • GL_INVALID_VALUE is generated if width, height, or depth is less than 0.
  • GL_INVALID_ENUM is generated if format is not an accepted constant.
  • GL_INVALID_ENUM is generated if type is not a type constant.
  • GL_INVALID_ENUM is generated if type is GL_BITMAP and format is not GL_COLOR_INDEX.
  • GL_INVALID_OPERATION is generated if glTexSubImage3D is executed between the execution of glBegin and the corresponding execution of glEnd.
  • GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.
  • GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

πŸŽ€ ASSOCIATED GETS πŸŽ€

  • glGetTexImage
  • glIsEnabled with argument GL_TEXTURE_3D

🌈 SEE ALSO 🌈

  • glActiveTextureARB(3G)
  • glCopyTexImage1D(3G)
  • glCopyTexImage2D(3G)
  • glCopyTexSubImage1D(3G)
  • glCopyTexSubImage2D(3G)
  • glCopyTexSubImage3D(3G)
  • glDrawPixels(3G)
  • glPixelStore(3G)
  • glPixelTransfer(3G)
  • glTexEnv(3G)
  • glTexGen(3G)
  • glTexImage1D(3G)
  • glTexImage2D(3G)
  • glTexImage3D(3G)
  • glTexSubImage1D(3G)
  • glTexSubImage2D(3G)
  • glTexParameter(3G)

okay that's the whole page, bestie πŸ’– the footer/source-version-date slot on this one is just the page sign-off GLTEXSUBIMAGE3D(3G) β€” no separate source/version or date text is shown, so we're not inventing one. and that's the cute little end of the manual. βœ¨πŸ’…πŸ«Ά

πŸ“¦ where this page comes from