Inheritance diagram for osg::Image:
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 ©op=CopyOp::SHALLOW_COPY) | |
virtual Object * | cloneType () const |
virtual Object * | clone (const CopyOp ©op) 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 MipmapDataType & | getMipmapLevels () 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) |
PixelBufferObject * | getPixelBufferObject () |
const PixelBufferObject * | getPixelBufferObject () 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 () |
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 | _modifiedCount |
MipmapDataType | _mipmapData |
ref_ptr< PixelBufferObject > | _bufferObject |
typedef std::vector< unsigned int > osg::Image::MipmapDataType |
Precomputed mipmaps stuff.
osg::Image::Image | ( | ) |
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::Image::~Image | ( | ) | [protected, virtual] |
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.
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] |
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.
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.
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] |