# osg::Image Class Reference

Image class for encapsulating the storage texture image data. More...

Inheritance diagram for osg::Image:

[legend]
List of all members.

## Public Types

typedef std::vector< unsigned int > | MipmapDataType
| Precomputed mipmaps stuff.
enum | AllocationMode { NO_DELETE, USE_NEW_DELETE, USE_MALLOC_FREE }

## Public Member Functions

| Image ()
| Image (const Image &image, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
| Copy constructor using CopyOp to manage deep vs shallow copy.
virtual Object * | cloneType () const
| Clone the type of an object, with Object* return type.
virtual Object * | clone (const CopyOp &copyop) const
| Clone an object, with Object* return type.
virtual bool | isSameKindAs (const Object *obj) const
virtual const char * | libraryName () const
| return the name of the object's library.
virtual const char * | className () const
| return the name of the object's class type.
virtual int | compare (const Image &rhs) const
| Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.
void | setFileName (const std::string &fileName)
const std::string & | getFileName () const
void | setAllocationMode (AllocationMode mode)
| Set the method used for deleting data once it goes out of scope.
AllocationMode | getAllocationMode () const
| Get the method used for deleting data once it goes out of scope.
void | allocateImage (int s, int t, int r, GLenum pixelFormat, GLenum type, int packing=1)
| Allocate a pixel block of specified size and type.
void | setImage (int s, int t, int r, GLint internalTextureformat, GLenum pixelFormat, GLenum type, unsigned char *data, AllocationMode mode, int packing=1)
| Set the image data and pixelFormat.
void | readPixels (int x, int y, int width, int height, GLenum pixelFormat, GLenum type)
| Read pixels from current frame buffer at specified position and size, using glReadPixels.
void | readImageFromCurrentTexture (unsigned int contextID, bool copyMipMapsIfAvailable)
| Read the contents of the current bound texture, handling compressed pixelFormats if present.
void | scaleImage (int s, int t, int r)
| Scale image to specified size.
void | scaleImage (int s, int t, int r, GLenum newDataType)
| Scale image to specified size and with specified data type.
void | copySubImage (int s_offset, int t_offset, int r_offset, osg::Image *source)
| Copy a source Image into a subpart of this Image at specified position.
int | s () const
| Width of image.
int | t () const
| Height of image.
int | r () const
| Depth of image.
void | setInternalTextureFormat (GLint internalFormat)
GLint | getInternalTextureFormat () const
void | setPixelFormat (GLenum pixelFormat)
GLenum | getPixelFormat () const
GLenum | getDataType () const
unsigned int | getPacking () const
unsigned int | getPixelSizeInBits () const
| Return the number of bits required for each pixel.
unsigned int | getRowSizeInBytes () const
| Return the number of bytes each row of pixels occupies once it has been packed.
unsigned int | getImageSizeInBytes () const
| Return the number of bytes each image (_s*_t) of pixels occupies.
unsigned int | getTotalSizeInBytes () const
| Return the number of bytes the whole row/image/volume of pixels occupies.
unsigned int | getTotalSizeInBytesIncludingMipmaps () const
| Return the number of bytes the whole row/image/volume of pixels occupies, including all mip maps if included.
unsigned char * | data ()
| Raw image data.
const unsigned char * | data () const
| Raw const image data.
unsigned char * | data (int column, int row=0, int image=0)
unsigned char * | data (int column, int row=0, int image=0) const
void | flipHorizontal ()
| Flip the image horizontally.
void | flipVertical ()
| Flip the image vertically.
void | ensureValidSizeForTexturing (GLint maxTextureSize)
| Ensure image dimensions are a power of two.
void | dirty ()
| Dirty the image, which increments the modified flag, to force osg::Texture to reload the image.
void | setModifiedTag (unsigned int value)
| Set the modified tag value.
unsigned int | getModifiedTag () const
| Get modified tag value.
bool | isMipmap () const
unsigned int | getNumMipmapLevels () const
void | setMipmapData (const MipmapDataType &mipmapDataVector)
| Send offsets into data.
unsigned char * | getMipmapData (unsigned int mipmapNumber) const
bool | isImageTranslucent () const
| Return true if this image is translucent - i.e.

## Static Public Member Functions

static bool | isPackedType (GLenum type)
static unsigned int | computeNumComponents (GLenum pixelFormat)
static unsigned int | computePixelSizeInBits (GLenum pixelFormat, GLenum type)
static unsigned int | computeRowWidthInBytes (int width, GLenum pixelFormat, GLenum type, int packing)
static int | computeNearestPowerOfTwo (int s, float bias=0.5f)

## Protected Member Functions

virtual | ~Image ()
Image & | operator= (const Image &)
void | deallocateData ()
void | setData (unsigned char *data, AllocationMode allocationMode)

## Protected Attributes

std::string | _fileName
int | _s
int | _t
int | _r
GLint | _internalTextureFormat
GLenum | _pixelFormat
GLenum | _dataType
unsigned int | _packing
AllocationMode | _allocationMode
unsigned char * | _data
unsigned int | _modifiedTag
MipmapDataType | _mipmapData

## Detailed Description

Image class for encapsulating the storage texture image data.

## Member Typedef Documentation

typedef std::vector< unsigned int > osg::Image::MipmapDataType

| Precomputed mipmaps stuff.

## Member Enumeration Documentation

enum osg::Image::AllocationMode

Enumeration values:

  NO_DELETE |
  USE_NEW_DELETE |
  USE_MALLOC_FREE |

## Constructor & Destructor Documentation

Image::Image | ( |  | ) |

Image::Image | ( | const Image & | image,
|  | const CopyOp & | copyop = `CopyOp::SHALLOW_COPY`
| ) |

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

Image::~Image | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

void Image::allocateImage | ( | int | s,
|  | int | t,
|  | int | r,
|  | GLenum | pixelFormat,
|  | GLenum | type,
|  | int | packing = `1`
| ) |

| Allocate a pixel block of specified size and type.

virtual const char* osg::Image::className | ( |  | ) | const`[inline, virtual]`

| return the name of the object's class type. Must be defined by derived classes. Implements osg::Object. Reimplemented in osg::ImageStream.

virtual Object* osg::Image::clone | ( | const CopyOp & | copyop | ) | const`[inline, virtual]`

| Clone an object, with Object* return type. Must be defined by derived classes. Implements osg::Object. Reimplemented in osg::ImageStream.

virtual Object* osg::Image::cloneType | ( |  | ) | const`[inline, virtual]`

| Clone the type of an object, with Object* return type. Must be defined by derived classes. Implements osg::Object. Reimplemented in osg::ImageStream.

int Image::compare | ( | const Image & | rhs | ) | const`[virtual]`

| Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. Reimplemented in osg::ImageStream.

int Image::computeNearestPowerOfTwo | ( | int | s,
|  | float | bias = `0.5f`
| ) | `[static]`

unsigned int Image::computeNumComponents | ( | GLenum | pixelFormat | ) | `[static]`

unsigned int Image::computePixelSizeInBits | ( | GLenum | pixelFormat,
|  | GLenum | type
| ) | `[static]`

unsigned int Image::computeRowWidthInBytes | ( | int | width,
|  | GLenum | pixelFormat,
|  | GLenum | type,
|  | int | packing
| ) | `[static]`

void Image::copySubImage | ( | int | s_offset,
|  | int | t_offset,
|  | int | r_offset,
|  | osg::Image * | source
| ) |

| Copy a source Image into a subpart of this Image at specified position. Typically used to copy to an already allocated image, such as creating a 3D image from a stack 2D images. If this Image is empty then image data is created to accomodate the source image in its offset position. If source is NULL then no operation happens, this Image is left unchanged.

unsigned char* osg::Image::data | ( | int | column,
|  | int | row = `0`,
|  | int | image = `0`
| ) | const`[inline]`

unsigned char* osg::Image::data | ( | int | column,
|  | int | row = `0`,
|  | int | image = `0`
| ) | `[inline]`

const unsigned char* osg::Image::data | ( |  | ) | const`[inline]`

| Raw const image data.

unsigned char* osg::Image::data | ( |  | ) | `[inline]`

| Raw image data.

void Image::deallocateData | ( |  | ) | `[protected]`

void osg::Image::dirty | ( |  | ) | `[inline]`

| Dirty the image, which increments the modified flag, to force osg::Texture to reload the image.

void Image::ensureValidSizeForTexturing | ( | GLint | maxTextureSize | ) |

| Ensure image dimensions are a power of two. Mipmapped textures require the image dimensions to be power of two and are within the maxiumum texture size for the host machine.

void Image::flipHorizontal | ( |  | ) |

| Flip the image horizontally.

void Image::flipVertical | ( |  | ) |

| Flip the image vertically.

AllocationMode osg::Image::getAllocationMode | ( |  | ) | const`[inline]`

| Get the method used for deleting data once it goes out of scope.

GLenum osg::Image::getDataType | ( |  | ) | const`[inline]`

const std::string& osg::Image::getFileName | ( |  | ) | const`[inline]`

unsigned int osg::Image::getImageSizeInBytes | ( |  | ) | const`[inline]`

| Return the number of bytes each image (_s*_t) of pixels occupies.

GLint osg::Image::getInternalTextureFormat | ( |  | ) | const`[inline]`

unsigned char* osg::Image::getMipmapData | ( | unsigned int | mipmapNumber | ) | const`[inline]`

unsigned int osg::Image::getModifiedTag | ( |  | ) | const`[inline]`

| Get modified tag value. Only used by osg::Texture when using texture subloading.

unsigned int osg::Image::getNumMipmapLevels | ( |  | ) | const`[inline]`

unsigned int osg::Image::getPacking | ( |  | ) | const`[inline]`

GLenum osg::Image::getPixelFormat | ( |  | ) | const`[inline]`

unsigned int osg::Image::getPixelSizeInBits | ( |  | ) | const`[inline]`

| Return the number of bits required for each pixel.

unsigned int osg::Image::getRowSizeInBytes | ( |  | ) | const`[inline]`

| Return the number of bytes each row of pixels occupies once it has been packed.

unsigned int osg::Image::getTotalSizeInBytes | ( |  | ) | const`[inline]`

| Return the number of bytes the whole row/image/volume of pixels occupies.

unsigned int Image::getTotalSizeInBytesIncludingMipmaps | ( |  | ) | const

| Return the number of bytes the whole row/image/volume of pixels occupies, including all mip maps if included.

bool Image::isImageTranslucent | ( |  | ) | const

| Return true if this image is translucent - i.e. it has alpha values that are less 1.0 (when normalized).

bool osg::Image::isMipmap | ( |  | ) | const`[inline]`

bool Image::isPackedType | ( | GLenum | type | ) | `[static]`

virtual bool osg::Image::isSameKindAs | ( | const Object * | obj | ) | const`[inline, virtual]`

| Reimplemented from osg::Object. Reimplemented in osg::ImageStream.

virtual const char* osg::Image::libraryName | ( |  | ) | const`[inline, virtual]`

| return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. Implements osg::Object. Reimplemented in osg::ImageStream.

Image& osg::Image::operator= | ( | const Image & |  | ) | `[inline, protected]`

int osg::Image::r | ( |  | ) | const`[inline]`

| Depth of image.

void Image::readImageFromCurrentTexture | ( | unsigned int | contextID,
|  | bool | copyMipMapsIfAvailable
| ) |

| Read the contents of the current bound texture, handling compressed pixelFormats if present. Create memory for storage if required, reuse existing pixel coords if possible.

void Image::readPixels | ( | int | x,
|  | int | y,
|  | int | width,
|  | int | height,
|  | GLenum | pixelFormat,
|  | GLenum | type
| ) |

| Read pixels from current frame buffer at specified position and size, using glReadPixels. Create memory for storage if required, reuse existing pixel coords if possible.

int osg::Image::s | ( |  | ) | const`[inline]`

| Width of image.

void Image::scaleImage | ( | int | s,
|  | int | t,
|  | int | r,
|  | GLenum | newDataType
| ) |

| Scale image to specified size and with specified data type.

void osg::Image::scaleImage | ( | int | s,
|  | int | t,
|  | int | r
| ) | `[inline]`

| Scale image to specified size.

void osg::Image::setAllocationMode | ( | AllocationMode | mode | ) | `[inline]`

| Set the method used for deleting data once it goes out of scope.

void Image::setData | ( | unsigned char * | data,
|  | AllocationMode | allocationMode
| ) | `[protected]`

void Image::setFileName | ( | const std::string & | fileName | ) |

void Image::setImage | ( | int | s,
|  | int | t,
|  | int | r,
|  | GLint | internalTextureformat,
|  | GLenum | pixelFormat,
|  | GLenum | type,
|  | unsigned char * | data,
|  | AllocationMode | mode,
|  | int | packing = `1`
| ) |

| Set the image data and pixelFormat. Note, when the packing value is negative (the default is -1) this method assumes a _packing width of 1 if the width is not a multiple of 4, otherwise automatically sets to _packing to 4. If a positive value of packing is supplied than _packing is simply set to that value.

void Image::setInternalTextureFormat | ( | GLint | internalFormat | ) |

void osg::Image::setMipmapData | ( | const MipmapDataType & | mipmapDataVector | ) | `[inline]`

| Send offsets into data. It is assumed that first mipmap offset (index 0) is 0.

void osg::Image::setModifiedTag | ( | unsigned int | value | ) | `[inline]`

| Set the modified tag value. Only used by osg::Texture when using texture subloading.

void Image::setPixelFormat | ( | GLenum | pixelFormat | ) |

int osg::Image::t | ( |  | ) | const`[inline]`

| Height of image.

## Member Data Documentation

AllocationMode osg::Image::_allocationMode `[protected]`

unsigned char* osg::Image::_data `[protected]`

GLenum osg::Image::_dataType `[protected]`

std::string osg::Image::_fileName `[protected]`

GLint osg::Image::_internalTextureFormat `[protected]`

MipmapDataType osg::Image::_mipmapData `[protected]`

unsigned int osg::Image::_modifiedTag `[protected]`

unsigned int osg::Image::_packing `[protected]`

GLenum osg::Image::_pixelFormat `[protected]`

int osg::Image::_r `[protected]`

int osg::Image::_s `[protected]`

int osg::Image::_t `[protected]`

The documentation for this class was generated from the following files:

- Image
- Image.cpp