gl.CopyTexImage(level, internalFormat, border, x, y, width[, height])
gl.CopyTexImage()
defines a one- or two-dimensional texture image with pixels from the current #GL_READ_BUFFER
.
If the optional height
argument is omitted, a one-dimensional texture will be defined, otherwise a two-dimensional
texture will be defined.
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. See Internal pixel formats for details.
Note that in contrast to gl.TexImage1D() and gl.TexImage2D() the
values 1, 2, 3, and 4 are not supported by the internalFormat
parameter with gl.CopyTexImage()
.
The pixels in the rectangle are processed exactly as if gl.CopyPixels() 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.
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.
Texturing has no effect in color index mode.
An image with height or width of 0 indicates a NULL
texture.
Please consult an OpenGL reference manual for more information.
#GL_INVALID_VALUE
is generated if level
is less than 0.
#GL_INVALID_VALUE
may be generated if level
is greater than log2(max), where max
is the returned value of #GL_MAX_TEXTURE_SIZE
.
#GL_INVALID_VALUE
is generated if internalformat
is not an allowable value.
#GL_INVALID_VALUE
is generated if width
is less than 0 or greater than 2 + #GL_MAX_TEXTURE_SIZE
.
#GL_INVALID_VALUE
is generated if non-power-of-two textures are not supported and the width cannot be represented as 2^n+2*border for some integer value of n
.
#GL_INVALID_VALUE
is generated if border is not 0 or 1.
#GL_INVALID_OPERATION
is generated if gl.CopyTexImage()
is executed between the execution of gl.Begin() and the corresponding execution of gl.End()
gl.IsEnabled() with argument #GL_TEXTURE_2D
or #GL_TEXTURE_1D