GLCOPYTEXIMAGE2D(3G)
π GLCOPYTEXIMAGE2D(3G) β copy pixels into a 2D texture image π
Okay bestie, you're on the GLCOPYTEXIMAGE2D(3G) page, aka the 3G manual, and it's literally all about copying pixels into a 2D texture image. Let's get into it π«Άβ¨
π NAME π
glCopyTexImage2D β copy pixels into a 2D texture image, no cap.
π C SPECIFICATION π
void glCopyTexImage2D( GLenum target,
GLint level,
GLenum internalformat,
GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLint border )
πΈ PARAMETERS πΈ
targetβ specifies the target texture. Must beGL_TEXTURE_2D, periodt.levelβ specifies the level-of-detail number. Level0is the base image level. Level n is the *n*th mipmap reduction image. Mipmap hierarchy vibes β¨internalformatβ specifies the internal format of the texture. Must be one of the following symbolic constants:GL_ALPHA,GL_ALPHA4,GL_ALPHA8,GL_ALPHA12,GL_ALPHA16,GL_LUMINANCE,GL_LUMINANCE4,GL_LUMINANCE8,GL_LUMINANCE12,GL_LUMINANCE16,GL_LUMINANCE_ALPHA,GL_LUMINANCE4_ALPHA4,GL_LUMINANCE6_ALPHA2,GL_LUMINANCE8_ALPHA8,GL_LUMINANCE12_ALPHA4,GL_LUMINANCE12_ALPHA12,GL_LUMINANCE16_ALPHA16,GL_INTENSITY,GL_INTENSITY4,GL_INTENSITY8,GL_INTENSITY12,GL_INTENSITY16,GL_RGB,GL_R3_G3_B2,GL_RGB4,GL_RGB5,GL_RGB8,GL_RGB10,GL_RGB12,GL_RGB16,GL_RGBA,GL_RGBA2,GL_RGBA4,GL_RGB5_A1,GL_RGBA8,GL_RGB10_A2,GL_RGBA12, orGL_RGBA16.x,yβ specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied. Cute little corner coordinates πwidthβ specifies the width of the texture image. Must be0or2n+2*borderfor some integer n.heightβ specifies the height of the texture image. Must be0or2m+2*borderfor some integer m.borderβ specifies the width of the border. Must be either0or1.
π¦ DESCRIPTION π¦
glCopyTexImage2D defines a two-dimensional texture image with pixels from the current GL_READ_BUFFER. Iconic behavior, honestly.
The screen-aligned pixel rectangle with lower left corner at (x, y) and with a width of width+2*border and a height of height+2*border defines the texture array at the mipmap level specified by level. internalformat specifies the internal format of the texture array.
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 format for storage in the texel array. That's the pipeline moment, bestie π
Pixel ordering is such that lower x and y screen coordinates correspond to lower s and t texture coordinates.
π¨ If any of the pixels within the specified rectangle of the current GL_READ_BUFFER are outside the window associated with the current rendering context, then the values obtained for those pixels are undefined. That's the risky undefined zone, so watch yourself π
β¨ NOTES β¨
glCopyTexImage2Dis available only if the GL version is1.1or greater.- Texturing has no effect in color index mode.
1,2,3, and4are not accepted values forinternalformat.- An image with height or width of
0indicates aNULLtexture. - When the
GL_ARB_imagingextension is supported, the RGBA components read from the framebuffer may be processed by the imaging pipeline. SeeglTexImage1Dfor specific details. Not me double-checking the extension tea π
π ERRORS π
GL_INVALID_ENUMis generated iftargetis notGL_TEXTURE_2D.GL_INVALID_VALUEis generated iflevelis less than0.GL_INVALID_VALUEmay be generated iflevelis greater thanlog2max, wheremaxis the returned value ofGL_MAX_TEXTURE_SIZE.GL_INVALID_VALUEis generated ifwidthorheightis less than0, greater than2+GL_MAX_TEXTURE_SIZE, or ifwidthorheightcannot be represented as2k+2*borderfor some integer k.GL_INVALID_VALUEis generated ifborderis not0or1.GL_INVALID_VALUEis generated ifinternalformatis not one of the allowable values.GL_INVALID_OPERATIONis generated ifglCopyTexImage2Dis executed between the execution ofglBeginand the corresponding execution ofglEnd. Do not do that, bestie π
π₯ ASSOCIATED GETS π₯
glGetTexImageglIsEnabledwith argumentGL_TEXTURE_2D
π SEE ALSO π
glCopyPixels(3G)glCopyTexImage1D(3G)glCopyTexSubImage1D(3G)glCopyTexSubImage2D(3G)glPixelStore(3G)glPixelTransfer(3G)glTexEnv(3G)glTexGen(3G)glTexImage1D(3G)glTexImage2D(3G)glTexSubImage1D(3G)glTexSubImage2D(3G)glTexParameter(3G)
That's the whole GLCOPYTEXIMAGE2D(3G) page, bestie! The footer in this copy is just GLCOPYTEXIMAGE2D(3G) again, so there's no extra source/version/date line to report β that's all the footer tea there is. Go copy those pixels and slay πβ¨π
π¦ where this page comes from
- opensuse-leap 16.0: Mesa-libGL-devel 24.1.7-160000.3.1 Β· MIT
- opensuse-leap 16.0: Mesa-libGL-devel 24.3.3-160000.3.1 Β· MIT
- opensuse-leap 16.0: Mesa-libGL-devel 24.3.3-160000.3.1 Β· MIT
- opensuse-leap 16.0: Mesa-libGL-devel 24.3.3-160000.3.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms