Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

# osg::Texture3D Class Reference

Encapsulates OpenGl 2D texture functionality. More...

Inheritance diagram for osg::Texture3D:

[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 GLenum | getTextureTarget () const
void | setImage (Image *image)
| Sets the texture image.
Image * | getImage ()
| Gets the texture image.
const Image * | getImage () const
| Gets the const texture image.
unsigned int & | getModifiedCount (unsigned int contextID) const
virtual void | setImage (unsigned int, Image *image)
| Sets the texture image, ignoring face.
virtual Image * | getImage (unsigned int)
| Gets the texture image, ignoring face.
virtual const Image * | getImage (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 | setTextureWidth (int width)
int | getTextureWidth () const
void | setTextureHeight (int height)
int | getTextureHeight () const
void | setTextureDepth (int depth)
int | getTextureDepth () const
void | setSubloadCallback (SubloadCallback *cb)
SubloadCallback * | getSubloadCallback ()
const SubloadCallback * | getSubloadCallback () 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
Extensions * | getExtensions (unsigned int contextID, bool createIfNotInitalized)
| Encapsulates queries of extension availability, obtains extension function pointers, and provides convinience wrappers for calling extension functions.
void | setExtensions (unsigned int contextID, Extensions *extensions)
| Overrides Extensions objects across graphics contexts.
## Protected Types
typedef buffered_value< unsigned int > | ImageModifiedCount
## 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
| Subloaded images can have different texture and image sizes.
GLsizei | _textureDepth
| Subloaded images can have different texture and image sizes.
GLsizei | _numMipmapLevels
| Number of mip map levels the the texture has been created with,.
ref_ptr< SubloadCallback > | _subloadCallback
ImageModifiedCount | _modifiedCount

## 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::ImageModifiedCount`[protected]`

## Constructor & Destructor Documentation

osg::Texture3D::Texture3D | ( |  | ) |

osg::Texture3D::Texture3D | ( | const Texture3D & | text,
|  | const CopyOp & | copyop = CopyOp::SHALLOW_COPY
| ) |

| Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Texture3D::~Texture3D | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

virtual void osg::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 osg::Texture3D::applyTexImage3D | ( | GLenum | target,
|  | Image * | image,
|  | State & | state,
|  | GLsizei & | inwidth,
|  | GLsizei & | inheight,
|  | GLsizei & | indepth,
|  | GLsizei & | numMipmapLevels
| ) | const`[protected]`

virtual int osg::Texture3D::compare | ( | const StateAttribute & | rhs | ) | const`[virtual]`

| Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. Implements osg::StateAttribute.

virtual void osg::Texture3D::computeInternalFormat | ( |  | ) | const`[protected, virtual]`

| Implements osg::Texture.

void osg::Texture3D::computeRequiredTextureDimensions | ( | State & | state,
|  | const osg::Image & | image,
|  | GLsizei & | width,
|  | GLsizei & | height,
|  | GLsizei & | depth,
|  | GLsizei & | numMipmapLevels
| ) | const`[protected]`

void osg::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.

Extensions* osg::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.

unsigned int& osg::Texture3D::getModifiedCount | ( | 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]`

int osg::Texture3D::getTextureDepth | ( |  | ) | const`[inline]`

int osg::Texture3D::getTextureHeight | ( |  | ) | const`[inline]`

void osg::Texture3D::getTextureSize | ( | int & | width,
|  | int & | height,
|  | int & | depth
| ) | const`[inline]`

| Gets the texture subload width.

virtual GLenum osg::Texture3D::getTextureTarget | ( |  | ) | const`[inline, virtual]`

| Implements osg::Texture.

int osg::Texture3D::getTextureWidth | ( |  | ) | const`[inline]`

osg::Texture3D::META_StateAttribute | ( | osg | ,
|  | Texture3D | ,
|  | TEXTURE |
| ) |

void osg::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. Reimplemented from osg::Texture.

virtual void osg::Texture3D::setImage | ( | unsigned | int,
|  | Image * | image
| ) | `[inline, virtual]`

| Sets the texture image, ignoring face. Implements osg::Texture.

void osg::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::setTextureDepth | ( | int | depth | ) | `[inline]`

void osg::Texture3D::setTextureHeight | ( | int | height | ) | `[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.

void osg::Texture3D::setTextureWidth | ( | int | width | ) | `[inline]`

## 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.

ImageModifiedCount osg::Texture3D::_modifiedCount`[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]`

| Subloaded images can have different texture and image sizes.

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

| Subloaded images can have different texture and image sizes.

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 file:

- Texture3D