osg::Texture3D Class Reference

Encapsulates OpenGl 2D texture functionality. More...

Inheritance diagram for osg::Texture3D:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Texture3D ()
 Texture3D (const Texture3D &text, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.
 META_StateAttribute (osg, Texture3D, TEXTURE)
virtual int compare (const StateAttribute &rhs) const
 Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.
virtual bool getModeUsage (ModeUsage &usage) const
void setImage (Image *image)
 Sets the texture image.
ImagegetImage ()
 Gets the texture image.
const ImagegetImage () const
 Gets the const texture image.
unsigned int & getModifiedTag (unsigned int contextID) const
virtual void setImage (unsigned int, Image *image)
 Sets the texture image, ignoring face.
virtual ImagegetImage (unsigned int)
 Gets the texture image, ignoring face.
virtual const ImagegetImage (unsigned int) const
 Gets the const texture image, ignoring face.
virtual unsigned int getNumImages () const
 Gets the number of images that can be assigned to the Texture.
void setTextureSize (int width, int height, int depth) const
 Sets the texture width, height, and depth.
void getTextureSize (int &width, int &height, int &depth) const
 Gets the texture subload width.
void setSubloadCallback (SubloadCallback *cb)
SubloadCallbackgetSubloadCallback ()
const SubloadCallbackgetSubloadCallback () const
void setNumMipmapLevels (unsigned int num) const
 Helper function.
unsigned int getNumMipmapLevels () const
 Gets the number of mipmap levels created.
void copyTexSubImage3D (State &state, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
 Copies a two-dimensional texture subimage, as per glCopyTexSubImage3D.
virtual void apply (State &state) const
 Bind the texture object.

Static Public Member Functions

static ExtensionsgetExtensions (unsigned int contextID, bool createIfNotInitalized)
 Encapsulates queries of extension availability, obtains extension function pointers, and provides convinience wrappers for calling extension functions.
static void setExtensions (unsigned int contextID, Extensions *extensions)
 Overrides Extensions objects across graphics contexts.

Protected Types

typedef buffered_value< unsigned
int > 
ImageModifiedTag

Protected Member Functions

virtual ~Texture3D ()
void computeRequiredTextureDimensions (State &state, const osg::Image &image, GLsizei &width, GLsizei &height, GLsizei &depth, GLsizei &numMipmapLevels) const
virtual void computeInternalFormat () const
void applyTexImage3D (GLenum target, Image *image, State &state, GLsizei &inwidth, GLsizei &inheight, GLsizei &indepth, GLsizei &numMipmapLevels) const

Protected Attributes

ref_ptr< Image_image
 It's not ideal that _image is mutable, but it's required since Image::ensureDimensionsArePowerOfTwo() can only be called in a valid OpenGL context, and therefore within Texture::apply, which is const.
GLsizei _textureWidth
 Subloaded images can have different texture and image sizes.
GLsizei _textureHeight
GLsizei _textureDepth
GLsizei _numMipmapLevels
 Number of mip map levels the the texture has been created with,.
ref_ptr< SubloadCallback_subloadCallback
ImageModifiedTag _modifiedTag

Classes

class  Extensions
 Encapsulates queries of extension availability, obtains extension function pointers, and provides convinience wrappers for calling extension functions. More...
class  SubloadCallback

Detailed Description

Encapsulates OpenGl 2D texture functionality.

Doesn't support cube maps, so ignore face parameters.


Member Typedef Documentation

typedef buffered_value<unsigned int> osg::Texture3D::ImageModifiedTag [protected]
 


Constructor & Destructor Documentation

Texture3D::Texture3D  ) 
 

Texture3D::Texture3D const Texture3D text,
const CopyOp copyop = CopyOp::SHALLOW_COPY
 

Copy constructor using CopyOp to manage deep vs shallow copy.

Texture3D::~Texture3D  )  [protected, virtual]
 


Member Function Documentation

void Texture3D::apply State state  )  const [virtual]
 

Bind the texture object.

If the texture object hasn't already been compiled, create the texture mipmap levels.

Implements osg::Texture.

void Texture3D::applyTexImage3D GLenum  target,
Image image,
State state,
GLsizei &  inwidth,
GLsizei &  inheight,
GLsizei &  indepth,
GLsizei &  numMipmapLevels
const [protected]
 

int Texture3D::compare const StateAttribute rhs  )  const [virtual]
 

Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.

Implements osg::StateAttribute.

void Texture3D::computeInternalFormat  )  const [protected, virtual]
 

Implements osg::Texture.

void Texture3D::computeRequiredTextureDimensions State state,
const osg::Image image,
GLsizei &  inwidth,
GLsizei &  inheight,
GLsizei &  indepth,
GLsizei &  numMipmapLevels
const [protected]
 

image.isMipmap() && _useHardwareMipMapGeneration && extensions->isGenerateMipMapSupported();

void Texture3D::copyTexSubImage3D State state,
int  xoffset,
int  yoffset,
int  zoffset,
int  x,
int  y,
int  width,
int  height
 

Copies a two-dimensional texture subimage, as per glCopyTexSubImage3D.

Updates a portion of an existing OpenGL texture object from the current OpenGL background framebuffer contents at position x, y with width width and height height. Loads framebuffer data into the texture using offsets xoffset, yoffset, and zoffset. width and height must be powers of two.

Texture3D::Extensions * Texture3D::getExtensions unsigned int  contextID,
bool  createIfNotInitalized
[static]
 

Encapsulates queries of extension availability, obtains extension function pointers, and provides convinience wrappers for calling extension functions.

Reimplemented from osg::Texture.

virtual const Image* osg::Texture3D::getImage unsigned int   )  const [inline, virtual]
 

Gets the const texture image, ignoring face.

Implements osg::Texture.

virtual Image* osg::Texture3D::getImage unsigned int   )  [inline, virtual]
 

Gets the texture image, ignoring face.

Implements osg::Texture.

const Image* osg::Texture3D::getImage  )  const [inline]
 

Gets the const texture image.

Image* osg::Texture3D::getImage  )  [inline]
 

Gets the texture image.

virtual bool osg::Texture3D::getModeUsage ModeUsage &  usage  )  const [inline, virtual]
 

unsigned int& osg::Texture3D::getModifiedTag unsigned int  contextID  )  const [inline]
 

virtual unsigned int osg::Texture3D::getNumImages  )  const [inline, virtual]
 

Gets the number of images that can be assigned to the Texture.

Implements osg::Texture.

unsigned int osg::Texture3D::getNumMipmapLevels  )  const [inline]
 

Gets the number of mipmap levels created.

const SubloadCallback* osg::Texture3D::getSubloadCallback  )  const [inline]
 

SubloadCallback* osg::Texture3D::getSubloadCallback  )  [inline]
 

void osg::Texture3D::getTextureSize int &  width,
int &  height,
int &  depth
const [inline]
 

Gets the texture subload width.

osg::Texture3D::META_StateAttribute osg  ,
Texture3D  ,
TEXTURE 
 

void Texture3D::setExtensions unsigned int  contextID,
Extensions extensions
[static]
 

Overrides Extensions objects across graphics contexts.

Typically used to ensure the same lowest common denominator of extensions on sustems with different graphics pipes.

virtual void osg::Texture3D::setImage unsigned int  ,
Image image
[inline, virtual]
 

Sets the texture image, ignoring face.

Implements osg::Texture.

void Texture3D::setImage Image image  ) 
 

Sets the texture image.

void osg::Texture3D::setNumMipmapLevels unsigned int  num  )  const [inline]
 

Helper function.

Sets the number of mipmap levels created for this texture. Should only be called within an osg::Texuture::apply(), or during a custom OpenGL texture load.

void osg::Texture3D::setSubloadCallback SubloadCallback cb  )  [inline]
 

void osg::Texture3D::setTextureSize int  width,
int  height,
int  depth
const [inline]
 

Sets the texture width, height, and depth.

If width, height, or depth are zero, calculate the respective value from the source image size.


Member Data Documentation

ref_ptr<Image> osg::Texture3D::_image [mutable, protected]
 

It's not ideal that _image is mutable, but it's required since Image::ensureDimensionsArePowerOfTwo() can only be called in a valid OpenGL context, and therefore within Texture::apply, which is const.

ImageModifiedTag osg::Texture3D::_modifiedTag [mutable, protected]
 

GLsizei osg::Texture3D::_numMipmapLevels [mutable, protected]
 

Number of mip map levels the the texture has been created with,.

ref_ptr<SubloadCallback> osg::Texture3D::_subloadCallback [protected]
 

GLsizei osg::Texture3D::_textureDepth [mutable, protected]
 

GLsizei osg::Texture3D::_textureHeight [mutable, protected]
 

GLsizei osg::Texture3D::_textureWidth [mutable, protected]
 

Subloaded images can have different texture and image sizes.


The documentation for this class was generated from the following files:
Generated at Sat Mar 18 08:55:34 2006 for the OpenSceneGraph by doxygen 1.4.6.