GLTEXSUBIMAGE2D(3G)

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

πŸ’– GLTEXSUBIMAGE2D(3G) πŸ’–

Bestie, welcome to the GLTEXSUBIMAGE2D(3G) manual page β€” the one and only glTexSubImage2D glow-up. This is about specifying a two-dimensional texture subimage, and yes, we're gonna get through every single flag together. πŸ’…βœ¨


🌸 NAME 🌸

glTexSubImage2D β€” specify a two-dimensional texture subimage.


πŸ¦‹ C SPECIFICATION πŸ¦‹

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

πŸŽ€ PARAMETERS πŸŽ€

  • target β€” specifies the target texture. It must be GL_TEXTURE_2D. No side-eyeing other targets, bestie. πŸ‘€
  • 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.
  • width β€” specifies the width of the texture subimage.
  • height β€” specifies the height of the texture subimage.
  • format β€” specifies the [word omitted in the original page] 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. It's giving "here's the actual pixel tea." πŸ“

🧚 DESCRIPTION 🧚

Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable two-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_2D.

glTexSubImage2D redefines a contiguous subregion of an existing two-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, and y indices yoffset and yoffset+heightβˆ’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 or height, but such a specification has no effect.

Lowkey important: that subregion has to stay inside the texture array as it was originally specified. No stretching outside the lines, bestie. πŸ’€

✨ NOTES ✨

  • glTexSubImage2D is available only if the GL version is 1.1 or greater.
  • 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, glTexSubImage2D specifies a two-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 glTexImage1D for specific details.

🫢 ERRORS 🫢

  • GL_INVALID_ENUM is generated if target is not GL_TEXTURE_2D.
  • GL_INVALID_OPERATION is generated if the texture array has not been defined by a previous glTexImage2D 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), where w is the GL_TEXTURE_WIDTH, h is the GL_TEXTURE_HEIGHT, and b is the border width of the texture image being modified. Note that w and h include twice the border width.
  • GL_INVALID_VALUE is generated if width or height 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 glTexSubImage2D 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_2D

🌈 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)
  • glTexSubImage3D(3G)
  • glTexParameter(3G)

That's the whole page, bestie β€” manual/source tag: GLTEXSUBIMAGE2D(3G), and the original footer has no date listed, so we are not inventing one. Periodt. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from