_C_ License Applicability. Except to the extent portions of this file are
_C_ made subject to an alternative license as permitted in the SGI Free
_C_ Software License B, Version 1.1 (the "License"), the contents of this
_C_ file are subject only to the provisions of the License. You may not use
_C_ this file except in compliance with the License. You may obtain a copy
_C_ of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
_C_ Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
_C_ 
_C_ http://oss.sgi.com/projects/FreeB
_C_ 
_C_ Note that, as provided in the License, the Software is distributed on an
_C_ "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
_C_ DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
_C_ CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
_C_ PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
_C_ 
_C_ Original Code. The Original Code is: OpenGL Sample Implementation,
_C_ Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
_C_ Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
_C_ Copyright in any portions created by third parties is as indicated
_C_ elsewhere herein. All Rights Reserved.
_C_ 
_C_ Additional Notice Provisions: The application programming interfaces
_C_ established by SGI in conjunction with the Original Code are The
_C_ OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
_C_ April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
_C_ 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
_C_ Window System(R) (Version 1.3), released October 19, 1998. This software
_C_ was created using the OpenGL(R) version 1.2.1 Sample Implementation
_C_ published by SGI, but has not been independently verified as being
_C_ compliant with the OpenGL(R) version 1.2.1 Specification.
_C_
_C_ $Date$ $Revision$
_C_ The first character in this file must be an '_'!
_C_ Anything on a line after _C_ is ignored
_define(_filters,tbl|eqn)_C_
_C_      eqn is automatically replaced with neqn for nroff
_header(TexSubImage3D,specify a three-dimensional texture subimage)
_names(TexSubImage3D)
.EQ
delim $$
.EN
_define(@<__target>@,@<_param1>@)_C_
_define(@<__level>@,@<_param2>@)_C_
_define(@<__xoffset>@,@<_param3>@)_C_
_define(@<__eqnxoffset>@,@<_eqnparam3>@)_C_
_define(@<__yoffset>@,@<_param4>@)_C_
_define(@<__eqnyoffset>@,@<_eqnparam4>@)_C_
_define(@<__zoffset>@,@<_param5>@)_C_
_define(@<__eqnzoffset>@,@<_eqnparam5>@)_C_
_define(@<__width>@,@<_param6>@)_C_
_define(@<__eqnwidth>@,@<_eqnparam6>@)_C_
_define(@<__height>@,@<_param7>@)_C_
_define(@<__eqnheight>@,@<_eqnparam7>@)_C_
_define(@<__depth>@,@<_param8>@)_C_
_define(@<__eqndepth>@,@<_eqnparam8>@)_C_
_define(@<__format>@,@<_param9>@)_C_
_define(@<__type>@,@<_param10>@)_C_
_define(@<__pixels>@,@<_param11>@)_C_
.SH PARAMETERS
_phead(__target)
Specifies the target texture.
Must be _const(TEXTURE_3D).
_phead(__level)
Specifies the level-of-detail number.
Level 0 is the base image level.
Level \f2n\fP is the \f2n\fPth mipmap reduction image.
_phead(__xoffset)
Specifies a texel offset in the x direction within the texture array.
_phead(__yoffset)
Specifies a texel offset in the y direction within the texture array.
_phead(__zoffset)
Specifies a texel offset in the z direction within the texture array.
_phead(__width)
Specifies the width of the texture subimage.
_phead(__height)
Specifies the height of the texture subimage.
_phead(__depth)
Specifies the depth of the texture subimage.
_phead(__format)
Specifies the format of the pixel data.
The following symbolic values are accepted:
_const(COLOR_INDEX),
_const(RED),
_const(GREEN),
_const(BLUE),
_const(ALPHA),
_const(RGB),
_const(BGR),
_const(RGBA),
_const(BGRA),
_C_ _const(ABGR_EXT),
_const(LUMINANCE), and
_const(LUMINANCE_ALPHA).
_phead(__type)
Specifies the data type of the pixel data.
The following symbolic values are accepted:
_const(UNSIGNED_BYTE),
_const(BYTE),
_const(BITMAP),
_const(UNSIGNED_SHORT),
_const(SHORT),
_const(UNSIGNED_INT),
_const(INT), 
_const(FLOAT),
_const(UNSIGNED_BYTE_3_3_2),
_const(UNSIGNED_BYTE_2_3_3_REV),
_const(UNSIGNED_SHORT_5_6_5),
_const(UNSIGNED_SHORT_5_6_5_REV),
_const(UNSIGNED_SHORT_4_4_4_4),
_const(UNSIGNED_SHORT_4_4_4_4_REV),
_const(UNSIGNED_SHORT_5_5_5_1),
_const(UNSIGNED_SHORT_1_5_5_5_REV),
_const(UNSIGNED_INT_8_8_8_8),
_const(UNSIGNED_INT_8_8_8_8_REV),
_const(UNSIGNED_INT_10_10_10_2), and
_const(UNSIGNED_INT_2_10_10_10_REV).
_phead(__pixels)
Specifies a pointer to the image data in memory.
.SH 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 _cmnd(Enable)
and _cmnd(Disable) with argument _const(TEXTURE_3D).
.P
_cmnd 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
$__eqnxoffset ~+~ __eqnwidth ~-~ 1$, inclusive,
y indices __yoffset and $__eqnyoffset ~+~ __eqnheight ~-~ 1$, inclusive,
and z indices __zoffset and $__eqnzoffset ~+~ __eqndepth ~-~ 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.
.SH NOTES
_cmnd is available only if the GL version is 1.2 or greater.
.P
Texturing has no effect in color index mode.
.P
_cmnd(PixelStore) and _cmnd(PixelTransfer) modes affect texture images
in exactly the way they affect _cmnd(DrawPixels).
.P
Formats _const(BGR), and _const(BGRA) and types
_const(UNSIGNED_BYTE_3_3_2),
_const(UNSIGNED_BYTE_2_3_3_REV),
_const(UNSIGNED_SHORT_5_6_5),
_const(UNSIGNED_SHORT_5_6_5_REV),
_const(UNSIGNED_SHORT_4_4_4_4),
_const(UNSIGNED_SHORT_4_4_4_4_REV),
_const(UNSIGNED_SHORT_5_5_5_1),
_const(UNSIGNED_SHORT_1_5_5_5_REV),
_const(UNSIGNED_INT_8_8_8_8),
_const(UNSIGNED_INT_8_8_8_8_REV),
_const(UNSIGNED_INT_10_10_10_2), and
_const(UNSIGNED_INT_2_10_10_10_REV) are available only if the GL version 
is 1.2 or greater.
.P
When the _arbstring(multitexture) extension is supported, _cmnd
specifies a three-dimensional sub texture for the current texture unit,
specified with _cmnd(ActiveTextureARB).
.P
When the _arbstring(imaging) extension is supported, the RGBA components
specified in __pixels may be processed by the imaging pipeline.  See
_cmnd(TexImage3D) for specific details.
.SH ERRORS
_const(INVALID_ENUM) is generated if __target is not _const(TEXTURE_3D). 
.P
_const(INVALID_OPERATION) is generated if the texture array has not
been defined by a previous _cmnd(TexImage3D) operation.
.P
_const(INVALID_VALUE) is generated if __level is less than 0.
.P 
_const(INVALID_VALUE) may be generated if __level is greater
than $log sub 2$\f2max\fP,
where \f2max\fP is the returned value of _const(MAX_TEXTURE_SIZE).
.P
_const(INVALID_VALUE) is generated if $__eqnxoffset ~<~ ~-b$,
$(__eqnxoffset ~+~ __eqnwidth) ~>~ (w~-~b)$, 
$__eqnyoffset ~<~ ~-b$, or $(__eqnyoffset ~+~ __eqnheight) ~>~ (h~-~b)$, 
or $__eqnzoffset ~<~ ~-b$, or $(__eqnzoffset ~+~ __eqndepth) ~>~ (d~-~b)$,
where $w$ is the _const(TEXTURE_WIDTH), 
$h$ is the _const(TEXTURE_HEIGHT), $d$ is the _const(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.
.P
_const(INVALID_VALUE) is generated if __width, __height, or __depth
is less than 0.
.P
_const(INVALID_ENUM) is generated if __format is not an accepted
format constant.
.P
_const(INVALID_ENUM) is generated if __type is not a type constant.
.P
_const(INVALID_ENUM) is generated if __type is _const(BITMAP) and
__format is not _const(COLOR_INDEX).
.P
_const(INVALID_OPERATION) is generated if _cmnd is executed
between the execution of _cmnd(Begin) and the corresponding
execution of _cmnd(End).
.P
_const(INVALID_OPERATION) is generated if __type is one of
_const(UNSIGNED_BYTE_3_3_2),
_const(UNSIGNED_BYTE_2_3_3_REV),
_const(UNSIGNED_SHORT_5_6_5), or
_const(UNSIGNED_SHORT_5_6_5_REV)
and __format is not _const(RGB).
.P
_const(INVALID_OPERATION) is generated if __type is one of
_const(UNSIGNED_SHORT_4_4_4_4),
_const(UNSIGNED_SHORT_4_4_4_4_REV),
_const(UNSIGNED_SHORT_5_5_5_1),
_const(UNSIGNED_SHORT_1_5_5_5_REV),
_const(UNSIGNED_INT_8_8_8_8),
_const(UNSIGNED_INT_8_8_8_8_REV),
_const(UNSIGNED_INT_10_10_10_2), or
_const(UNSIGNED_INT_2_10_10_10_REV)
and __format is neither _const(RGBA) nor _const(BGRA).
.SH ASSOCIATED GETS
_cmnd(GetTexImage)
.br
_cmnd(IsEnabled) with argument _const(TEXTURE_3D)
.SH SEE ALSO
_cmnd(ActiveTextureARB),
_cmnd(CopyTexImage1D),
_cmnd(CopyTexImage2D),
_cmnd(CopyTexSubImage1D),
_cmnd(CopyTexSubImage2D),
_cmnd(CopyTexSubImage3D),
_cmnd(DrawPixels),
_cmnd(PixelStore),
_cmnd(PixelTransfer),
_cmnd(TexEnv),
_cmnd(TexGen),
_cmnd(TexImage1D),
_cmnd(TexImage2D),
_cmnd(TexImage3D),
_cmnd(TexSubImage1D),
_cmnd(TexSubImage2D),
_cmnd(TexParameter)

