GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels )
eqn not supported
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.
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.
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 $log sub 2$max, 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.