glGetTexImage.3gl




Name

  glGetTexImage	- return a texture image


C Specification

  void glGetTexImage( GLenum target,
		      GLint level,
		      GLenum format,
		      GLenum type,
		      GLvoid *pixels )


Parameters


  target  Specifies which texture is to	be obtained.  GL_TEXTURE_1D and
	  GL_TEXTURE_2D	are accepted.

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

  format  Specifies a pixel format for the returned data.  The supported
	  formats are GL_RED, GL_GREEN,	GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA,
	  GL_LUMINANCE,	and GL_LUMINANCE_ALPHA.

  type	  Specifies a pixel type for the returned data.	 The supported types
	  are GL_UNSIGNED_BYTE,	GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT,
	  GL_UNSIGNED_INT, GL_INT, and GL_FLOAT.

  pixels  Returns the texture image.  Should be	a pointer to an	array of the
	  type specified by type.


Description

  glGetTexImage	returns	a texture image	into pixels.  target specifies
  whether the desired texture image is one specified by	glTexImage1D
  (GL_TEXTURE_1D) or by	glTexImage2D (GL_TEXTURE_2D).  level specifies the
  level-of-detail number of the	desired	image.	format and type	specify	the
  format and type of the desired image array.  Please see the reference	pages
  glTexImage1D and glDrawPixels	for a description of the acceptable values
  for the format and type parameters, respectively.

  Operation of glGetTexImage is	best understood	by considering the selected
  internal four-component texture image	to be an RGBA color buffer the size
  of the image.	 The semantics of glGetTexImage	are then identical to those
  of glReadPixels called with the same format and type,	with x and y set to
  zero,	width set to the width of the texture image (including border if one
  was specified), and height set to one	for 1-D	images,	or to the height of
  the texture image (including border if one was specified) for	2-D images.
  Because the internal texture image is	an RGBA	image, pixel formats
  GL_COLOR_INDEX, GL_STENCIL_INDEX, and	GL_DEPTH_COMPONENT are not accepted,
  and pixel type GL_BITMAP is not accepted.

  If the selected texture image	does not contain four components, the
  following mappings are applied.  Single-component textures are treated as
  RGBA buffers with red	set to the single-component value, and green, blue,
  and alpha set	to zero.  Two-component	textures are treated as	RGBA buffers
  with red set to the value of component zero, alpha set to the	value of
  component one, and green and blue set	to zero.  Finally, three-component
  textures are treated as RGBA buffers with red	set to component zero, green
  set to component one,	blue set to component two, and alpha set to zero.

  To determine the required size of pixels, use	glGetTexLevelParameter to
  ascertain the	dimensions of the internal texture image, then scale the
  required number of pixels by the storage required for	each pixel, based on
  format and type.  Be sure to take the	pixel storage parameters into
  account, especially GL_PACK_ALIGNMENT.

Notes

  If an	error is generated, no change is made to the contents of pixels.

Errors

  GL_INVALID_ENUM is generated if target, format, or type is not an accepted
  value.

  GL_INVALID_VALUE is generated	if level is less than zero or greater than
  log max, where max is	the returned value of GL_MAX_TEXTURE_SIZE.
     2
  GL_INVALID_OPERATION is generated if glGetTexImage is	executed between the
  execution of glBegin and the corresponding execution of glEnd.

Associated Gets

  glGetTexLevelParameter with argument GL_TEXTURE_WIDTH
  glGetTexLevelParameter with argument GL_TEXTURE_HEIGHT
  glGetTexLevelParameter with argument GL_TEXTURE_BORDER
  glGetTexLevelParameter with argument GL_TEXTURE_COMPONENTS
  glGet	with arguments GL_PACK_ALIGNMENT and others

See Also

  glDrawPixels,	glReadPixels, glTexImage1D, glTexImage2D




Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV