osg::Image Class Reference

Inheritance diagram for osg::Image:

osg::Object osg::Referenced osg::ImageStream osgText::Font::Glyph List of all members.

Public Types

typedef std::vector< unsigned
int > 
MipmapDataType
 NO_DELETE
 USE_NEW_DELETE
 USE_MALLOC_FREE
enum  AllocationMode { NO_DELETE, USE_NEW_DELETE, USE_MALLOC_FREE }

Public Member Functions

 Image ()
 Image (const Image &image, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual ObjectcloneType () const
virtual Objectclone (const CopyOp &copyop) const
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
virtual int compare (const Image &rhs) const
void setFileName (const std::string &fileName)
const std::string & getFileName () const
void setAllocationMode (AllocationMode mode)
AllocationMode getAllocationMode () const
void allocateImage (int s, int t, int r, GLenum pixelFormat, GLenum type, int packing=1)
void setImage (int s, int t, int r, GLint internalTextureformat, GLenum pixelFormat, GLenum type, unsigned char *data, AllocationMode mode, int packing=1)
void readPixels (int x, int y, int width, int height, GLenum pixelFormat, GLenum type)
void readImageFromCurrentTexture (unsigned int contextID, bool copyMipMapsIfAvailable, GLenum type=GL_UNSIGNED_BYTE)
void scaleImage (int s, int t, int r)
void scaleImage (int s, int t, int r, GLenum newDataType)
void copySubImage (int s_offset, int t_offset, int r_offset, osg::Image *source)
int s () const
int t () const
int r () const
void setInternalTextureFormat (GLint internalFormat)
GLint getInternalTextureFormat () const
void setPixelFormat (GLenum pixelFormat)
GLenum getPixelFormat () const
void setDataType (GLenum dataType)
GLenum getDataType () const
void setPacking (unsigned int packing)
unsigned int getPacking () const
unsigned int getPixelSizeInBits () const
unsigned int getRowSizeInBytes () const
unsigned int getImageSizeInBytes () const
unsigned int getTotalSizeInBytes () const
unsigned int getTotalSizeInBytesIncludingMipmaps () const
bool valid () const
unsigned char * data ()
const unsigned char * data () const
unsigned char * data (int column, int row=0, int image=0)
const unsigned char * data (int column, int row=0, int image=0) const
void flipHorizontal ()
void flipVertical ()
void ensureValidSizeForTexturing (GLint maxTextureSize)
void dirty ()
void setModifiedCount (unsigned int value)
unsigned int getModifiedCount () const
bool isMipmap () const
unsigned int getNumMipmapLevels () const
void setMipmapLevels (const MipmapDataType &mipmapDataVector)
const MipmapDataTypegetMipmapLevels () const
unsigned int getMipmapOffset (unsigned int mipmapLevel) const
unsigned char * getMipmapData (unsigned int mipmapLevel)
const unsigned char * getMipmapData (unsigned int mipmapLevel) const
bool isImageTranslucent () const
void setPixelBufferObject (PixelBufferObject *buffer)
PixelBufferObjectgetPixelBufferObject ()
const PixelBufferObjectgetPixelBufferObject () const

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 ()
Imageoperator= (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 _modifiedCount
MipmapDataType _mipmapData
ref_ptr< PixelBufferObject_bufferObject

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

Enumerator:
NO_DELETE 
USE_NEW_DELETE 
USE_MALLOC_FREE 


Constructor & Destructor Documentation

osg::Image::Image (  ) 

osg::Image::Image ( const Image image,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
)

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Image::~Image (  )  [protected, virtual]


Member Function Documentation

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

virtual int osg::Image::compare ( const Image rhs  )  const [virtual]

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

Reimplemented in osg::ImageStream.

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

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

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

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

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

const 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 osg::Image::deallocateData (  )  [protected]

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

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

void osg::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 osg::Image::flipHorizontal (  ) 

Flip the image horizontally.

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

const unsigned char* osg::Image::getMipmapData ( unsigned int  mipmapLevel  )  const [inline]

unsigned char* osg::Image::getMipmapData ( unsigned int  mipmapLevel  )  [inline]

const MipmapDataType& osg::Image::getMipmapLevels (  )  const [inline]

unsigned int osg::Image::getMipmapOffset ( unsigned int  mipmapLevel  )  const [inline]

unsigned int osg::Image::getModifiedCount (  )  const [inline]

Get modified count value. Used by osg::Texture when using texture subloading.

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

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

const PixelBufferObject* osg::Image::getPixelBufferObject (  )  const [inline]

Get the const PixelBufferObject.

PixelBufferObject* osg::Image::getPixelBufferObject (  )  [inline]

Get the PixelBufferObject.

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 osg::Image::getTotalSizeInBytesIncludingMipmaps (  )  const

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

bool osg::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]

static bool osg::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 osg::Image::readImageFromCurrentTexture ( unsigned int  contextID,
bool  copyMipMapsIfAvailable,
GLenum  type = GL_UNSIGNED_BYTE 
)

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 osg::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 osg::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 osg::Image::setData ( unsigned char *  data,
AllocationMode  allocationMode 
) [protected]

void osg::Image::setDataType ( GLenum  dataType  ) 

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

void osg::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 dimensions, format and data.

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

void osg::Image::setMipmapLevels ( const MipmapDataType mipmapDataVector  )  [inline]

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

void osg::Image::setModifiedCount ( unsigned int  value  )  [inline]

Set the modified count value. Used by osg::Texture when using texture subloading.

void osg::Image::setPacking ( unsigned int  packing  )  [inline]

void osg::Image::setPixelBufferObject ( PixelBufferObject buffer  )  [inline]

Set the optional PixelBufferObject used to map the image memory efficiently to graphics memory.

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

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

Height of image.

bool osg::Image::valid (  )  const [inline]

Return true if the Image represent a valid and usable imagery.


Member Data Documentation

AllocationMode osg::Image::_allocationMode [protected]

ref_ptr<PixelBufferObject> osg::Image::_bufferObject [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::_modifiedCount [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 file:
Generated on Sun Oct 1 13:17:06 2006 for openscenegraph by  doxygen 1.4.7