glcopyteximage2dext - Man Page






glCopyTexImage2DEXT(3G)	       OpenGL Reference	       glCopyTexImage2DEXT(3G)



NAME
     glCopyTexImage2DEXT - copy	pixels into a 2D texture image


C SPECIFICATION
     void glCopyTexImage2DEXT( GLenum target,
			       GLint level,
			       GLenum internalformat,
			       GLint x,
			       GLint y,
			       GLsizei width,
			       GLsizei height,
			       GLint border )


PARAMETERS
     target	     The target	texture.  Must be GL_TEXTURE_2D	or
		     GL_DETAIL_TEXTURE_2D_SGIS.

     level	     The level-of-detail number.  Level	0 is the base image
		     level.  Level n is	the nth	mipmap reduction image.

     internalformat  The internal storage format of the	texture	image.	Must
		     be	one of the following symbolic constants:  GL_ALPHA,
		     GL_ALPHA4_EXT, GL_ALPHA8_EXT, GL_ALPHA12_EXT,
		     GL_ALPHA16_EXT, GL_LUMINANCE, GL_LUMINANCE4_EXT,
		     GL_LUMINANCE8_EXT,	GL_LUMINANCE12_EXT,
		     GL_LUMINANCE16_EXT, GL_LUMINANCE_ALPHA,
		     GL_LUMINANCE4_ALPHA4_EXT, GL_LUMINANCE6_ALPHA2_EXT,
		     GL_LUMINANCE8_ALPHA8_EXT, GL_LUMINANCE12_ALPHA4_EXT,
		     GL_LUMINANCE12_ALPHA12_EXT, GL_LUMINANCE16_ALPHA16_EXT,
		     GL_INTENSITY_EXT, GL_INTENSITY4_EXT, GL_INTENSITY8_EXT,
		     GL_INTENSITY12_EXT, GL_INTENSITY16_EXT, GL_RGB,
		     GL_RGB2_EXT, GL_RGB4_EXT, GL_RGB5_EXT, GL_RGB8_EXT,
		     GL_RGB10_EXT, GL_RGB12_EXT, GL_RGB16_EXT, GL_RGBA,
		     GL_RGBA2_EXT, GL_RGBA4_EXT, GL_RGB5_A1_EXT, GL_RGBA8_EXT,
		     GL_RGB10_A2_EXT, GL_RGBA12_EXT, GL_RGBA16_EXT.  (Note
		     that the values 1,	2, 3, and 4, which are accepted	by
		     glTexImage2D, are not accepted by glCopyTexImage2DEXT.)

     x		     The x coordinate of the lower-left	corner of the pixel
		     rectangle to be transferred to the	texture	array.

     y		     The y coordinate of the lower-left	corner of the pixel
		     rectangle to be transferred to the	texture	array.

     width	     The width of the texture image.

     height	     The height	of the texture image.






									Page 1






glCopyTexImage2DEXT(3G)	       OpenGL Reference	       glCopyTexImage2DEXT(3G)



     border	     The border	width of the texture.  Must be 0 or 1.

DESCRIPTION
     glCopyTexImage2DEXT defines a two-dimensional texture image with pixels
     from the current GL_READ_BUFFER (rather than from main memory, as is the
     case for glTexImage2D).

     The screen-aligned	pixel rectangle	with lower-left	corner at (x, y)
     having width width+2*border and height height+2*border is used to define
     the texture array at the mipmap level specified by	level.	(But see the
     discussion	of GL_INTERLACE_SGIX below.)  The internal format of the
     texture array is selected by internalformat.

     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.

     Pixel ordering is such that lower x screen	coordinates correspond to
     lower i texture coordinates, and lower y screen coordinates correspond to
     lower j 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.

     If	GL_INTERLACE_SGIX is enabled, then successive rows of the pixel
     rectangle define every other row of the texture image, rather than
     successive	rows of	the texture image.  That is, row j of the source image
     is	used to	define row 2j of the texture image, while rows (1,3,5,...) are
     left undefined.  Note, that when GL_INTERLACE_SGIX	is enabled the total
     height (i.e., the height of interior texture image	plus twice the border)
     of	the defined texture is 2xheight.

NOTES
     glCopyTexImage2DEXT is part of the	EXT_copy_texture extension.  See
     glIntro for more information about	using extensions.

ERRORS
     GL_INVALID_ENUM is	generated when target is not one of the	allowable
     values.

     GL_INVALID_VALUE is generated if level is less than zero or greater than
     log2(max),	where max is the returned value	of GL_MAX_TEXTURE_SIZE.

     GL_TEXTURE_TOO_LARGE_EXT is generated if the specified image is too
     large.






									Page 2






glCopyTexImage2DEXT(3G)	       OpenGL Reference	       glCopyTexImage2DEXT(3G)



     GL_INVALID_VALUE is generated if width or height is less than zero,
     greater than 2+GL_MAX_TEXTURE_SIZE, when width cannot be represented as
     2k+2border	for some integer k, or when height cannot be represented as
     2k+Ixborder, where	I is 2 when GL_INTERLACE_SGIX is disabled and 1
     otherwise.

     GL_INVALID_VALUE is generated if border is	not 0 or 1.

     GL_INVALID_VALUE is generated if internalformat is	not one	of the
     allowable values.

     GL_INVALID_OPERATION is generated if glCopyTexImage2DEXT is executed
     between the execution of glBegin and the corresponding execution of
     glEnd.

ASSOCIATED GETS
     glGetTexImage


MACHINE	DEPENDENCIES
     RealityEngine, RealityEngine2, and	VTX systems support
     glCopyTexImage2DEXT with the following restrictions:

	  1.  Only level 0 is supported; other levels result in	a
	      GL_INVALID_VALUE error.

	  2.  glCopyTexImage2DEXT cannot be used if a GLX video	source is the
	      current read drawable (see glXMakeCurrentReadSGI).  Executing it
	      will generate a GL_INVALID_OPERATION error.

	  3.  GL_INTERLACE_SGIX	is not supported (see glEnable).

	  4.  Borders are not supported; hence the width of the	border should
	      be 0.

     On	InfiniteReality	systems, the width of the image	to be transferred to
     texture memory must be a multiple of 8.  This constraint will be lifted
     in	a future release, though transfers that	are a multiple of 8 in length
     will have somewhat	higher performance than	other transfers.

     Texture borders are not supported on InfiniteReality systems.  They will
     be	supported in a future release, however,	they will require large
     amounts of	texture	memory.	 Whenever possible, applications should	use
     borderless	textures and GL_CLAMP_TO_EDGE_SGIS wrap	mode.

     The SGIX_interlace	extension is supported only on InfiniteReality systems
     and on RealityEngine, RealityEngine2, and VTX systems.

     Note that InfiniteReality systems currently do not	support	copying
     depth-format textures (used for shadow maps) from the framebuffer to
     texture memory.  This will	be fixed in a subsequent release.




									Page 3






glCopyTexImage2DEXT(3G)	       OpenGL Reference	       glCopyTexImage2DEXT(3G)



SEE ALSO
     glTexImage2D, glCopyTexSubImage2DEXT, glCopyPixels.





















































									Page 4