OpenSceneGraph
3.0.1
|
Image class for encapsulating the storage texture image data. More...
Classes | |
struct | UpdateCallback |
convience update callback class that can be attached to StateAttribute (such as Textures) to ensure that the Image::update(NodeVisitor*) method is called during the update traversal. More... |
Public Types | |
enum | WriteHint { NO_PREFERENCE, STORE_INLINE, EXTERNAL_FILE } |
enum | AllocationMode { NO_DELETE, USE_NEW_DELETE, USE_MALLOC_FREE } |
enum | Origin { BOTTOM_LEFT, TOP_LEFT } |
typedef std::vector< unsigned int > | MipmapDataType |
Precomputed mipmaps stuff. |
Public Member Functions | |
Image () | |
Image (const Image &image, const CopyOp ©op=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 ©op) 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 const GLvoid * | getDataPointer () const |
virtual unsigned int | getTotalDataSize () const |
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 | setWriteHint (WriteHint writeHint) |
WriteHint | getWriteHint () 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. | |
virtual void | allocateImage (int s, int t, int r, GLenum pixelFormat, GLenum type, int packing=1) |
Allocate a pixel block of specified size and type. | |
virtual 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 dimensions, format and data. | |
virtual 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. | |
virtual void | readImageFromCurrentTexture (unsigned int contextID, bool copyMipMapsIfAvailable, GLenum type=GL_UNSIGNED_BYTE) |
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. | |
virtual void | scaleImage (int s, int t, int r, GLenum newDataType) |
Scale image to specified size and with specified data type. | |
virtual void | copySubImage (int s_offset, int t_offset, int r_offset, const osg::Image *source) |
Copy a source Image into a subpart of this Image at specified position. | |
void | setOrigin (Origin origin) |
Set the origin of the image. | |
Origin | getOrigin () const |
Get the origin of the image. | |
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 |
void | setDataType (GLenum dataType) |
GLenum | getDataType () const |
void | setPacking (unsigned int packing) |
unsigned int | getPacking () const |
bool | isCompressed () const |
return true of the pixel format is an OpenGL compressed pixel format. | |
void | setPixelAspectRatio (float pixelAspectRatio) |
Set the pixel aspect ratio, defined as the pixel width divided by the pixel height. | |
float | getPixelAspectRatio () const |
Get the pixel aspect ratio. | |
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. | |
bool | valid () const |
Return true if the Image represent a valid and usable imagery. | |
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) |
const unsigned char * | data (int column, int row=0, int image=0) const |
Vec4 | getColor (unsigned int s, unsigned t=0, unsigned r=0) const |
Get the color value for specified texcoord. | |
Vec4 | getColor (const Vec2 &texcoord) const |
Get the color value for specified texcoord. | |
Vec4 | getColor (const Vec3 &texcoord) const |
Get the color value for specified texcoord. | |
void | flipHorizontal () |
Flip the image horizontally. | |
void | flipVertical () |
Flip the image vertically. | |
void | ensureValidSizeForTexturing (GLint maxTextureSize) |
Ensure image dimensions are a power of two. | |
bool | isMipmap () const |
unsigned int | getNumMipmapLevels () const |
void | setMipmapLevels (const MipmapDataType &mipmapDataVector) |
Send offsets into data. | |
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 |
virtual bool | isImageTranslucent () const |
Return true if this image is translucent - i.e. | |
void | setPixelBufferObject (PixelBufferObject *buffer) |
Set the optional PixelBufferObject used to map the image memory efficiently to graphics memory. | |
PixelBufferObject * | getPixelBufferObject () |
Get the PixelBufferObject. | |
const PixelBufferObject * | getPixelBufferObject () const |
Get the const PixelBufferObject. | |
virtual bool | requiresUpdateCall () const |
return whether the update(NodeVisitor* nv) should be required on each frame to enable proper working of osg::Image. | |
virtual void | update (NodeVisitor *) |
update method for osg::Image subclasses that update themselves during the update traversal. | |
virtual bool | sendFocusHint (bool) |
method for hinting whether to enable or disable focus to images acting as front ends to interactive surfaces such as a vnc or browser window. | |
virtual bool | sendPointerEvent (int, int, int) |
method for sending pointer events to images that are acting as front ends to interactive surfaces such as a vnc or browser window. | |
virtual bool | sendKeyEvent (int, bool) |
method for sending key events to images that are acting as front ends to interactive surfaces such as a vnc or browser window. | |
virtual void | setFrameLastRendered (const osg::FrameStamp *) |
method for passing frame information to the custom Image classes, to be called only when objects associated with imagery are not culled. | |
![]() | |
BufferData () | |
BufferData (const BufferData &bd, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor using CopyOp to manage deep vs shallow copy. | |
void | setBufferObject (BufferObject *bufferObject) |
BufferObject * | getBufferObject () |
const BufferObject * | getBufferObject () const |
void | setBufferIndex (unsigned int index) |
unsigned int | getBufferIndex () const |
GLBufferObject * | getGLBufferObject (unsigned int contextID) const |
GLBufferObject * | getOrCreateGLBufferObject (unsigned int contextID) const |
void | setModifiedCallback (ModifiedCallback *md) |
ModifiedCallback * | getModifiedCallback () |
const ModifiedCallback * | getModifiedCallback () const |
void | dirty () |
Dirty the primitive, which increments the modified count, to force buffer objects to update. | |
void | setModifiedCount (unsigned int value) |
Set the modified count value. | |
unsigned int | getModifiedCount () const |
Get modified count value. | |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
Resize any per context GLObject buffers to specified size. | |
void | releaseGLObjects (State *state=0) const |
If State is non-zero, this function releases OpenGL objects for the specified graphics context. | |
![]() | |
Object () | |
Construct an object. | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data. | |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. | |
virtual void | setName (const std::string &name) |
Set the name of object using C++ style string. | |
void | setName (const char *name) |
Set the name of object using a C style string. | |
const std::string & | getName () const |
Get the name of object. | |
void | setDataVariance (DataVariance dv) |
Set the data variance of this object. | |
DataVariance | getDataVariance () const |
Get the data variance of this object. | |
virtual void | computeDataVariance () |
Compute the DataVariance based on an assessment of callback etc. | |
void | setUserDataContainer (osg::UserDataContainer *udc) |
set the UserDataContainer object. | |
osg::UserDataContainer * | getUserDataContainer () |
get the UserDataContainer attached to this object. | |
const osg::UserDataContainer * | getUserDataContainer () const |
get the const UserDataContainer attached to this object. | |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
Convinience method that returns the UserDataContainer, and if one doesn't already exist creates and assigns a DefaultUserDataContainer to the Object and then return this new UserDataContainer. | |
virtual void | setUserData (Referenced *obj) |
Set user data, data must be subclassed from Referenced to allow automatic memory handling. | |
virtual Referenced * | getUserData () |
Get user data. | |
virtual const Referenced * | getUserData () const |
Get const user data. | |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
Convinience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value. | |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
Convinience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject. | |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. | |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). | |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. |
Static Public Member Functions | |
static bool | isPackedType (GLenum type) |
static GLenum | computePixelFormat (GLenum pixelFormat) |
static GLenum | computeFormatDataType (GLenum pixelFormat) |
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) |
static int | computeNumberOfMipmapLevels (int s, int t=1, int r=1) |
Protected Member Functions | |
virtual | ~Image () |
Image & | operator= (const Image &) |
void | deallocateData () |
void | setData (unsigned char *data, AllocationMode allocationMode) |
![]() | |
virtual | ~BufferData () |
![]() | |
virtual | ~Object () |
Object destructor. | |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
std::string | _fileName |
WriteHint | _writeHint |
Origin | _origin |
int | _s |
int | _t |
int | _r |
GLint | _internalTextureFormat |
GLenum | _pixelFormat |
GLenum | _dataType |
unsigned int | _packing |
float | _pixelAspectRatio |
AllocationMode | _allocationMode |
unsigned char * | _data |
MipmapDataType | _mipmapData |
ref_ptr< PixelBufferObject > | _bufferObject |
![]() | |
unsigned int | _modifiedCount |
unsigned int | _bufferIndex |
osg::ref_ptr< BufferObject > | _bufferObject |
osg::ref_ptr< ModifiedCallback > | _modifiedCallback |
![]() | |
std::string | _name |
DataVariance | _dataVariance |
osg::UserDataContainer * | _userDataContainer |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
Image class for encapsulating the storage texture image data.
typedef std::vector< unsigned int > osg::Image::MipmapDataType |
Precomputed mipmaps stuff.
enum osg::Image::Origin |
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.
|
protectedvirtual |
|
virtual |
Allocate a pixel block of specified size and type.
|
inlinevirtual |
return the name of the object's class type.
Must be defined by derived classes.
Reimplemented from osg::BufferData.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
Clone an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
|
inlinevirtual |
Clone the type of an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
|
virtual |
Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
virtual |
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.
|
inline |
Raw image data.
Referenced by osg::modifyImage(), osg::readImage(), and osgUtil::CubeMapGenerator::set_pixel().
|
inline |
Raw const image data.
|
inline |
References NULL.
|
inline |
References NULL.
|
protected |
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.
|
inline |
Get the method used for deleting data once it goes out of scope.
Vec4 osg::Image::getColor | ( | unsigned int | s, |
unsigned | t = 0 , |
||
unsigned | r = 0 |
||
) | const |
Get the color value for specified texcoord.
Get the color value for specified texcoord.
References getColor(), osg::Vec2f::x(), and osg::Vec2f::y().
Referenced by getColor().
Get the color value for specified texcoord.
|
inlinevirtual |
Implements osg::BufferData.
|
inline |
Referenced by osg::modifyImage(), and osg::readImage().
|
inline |
|
inline |
Return the number of bytes each image (_s*_t) of pixels occupies.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Get the origin of the image.
|
inline |
|
inline |
Get the pixel aspect ratio.
|
inline |
Get the PixelBufferObject.
|
inline |
Get the const PixelBufferObject.
|
inline |
Referenced by osg::modifyImage(), and osg::readImage().
|
inline |
Return the number of bits required for each pixel.
|
inline |
Return the number of bytes each row of pixels occupies once it has been packed.
|
inlinevirtual |
Implements osg::BufferData.
|
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.
|
inline |
bool osg::Image::isCompressed | ( | ) | const |
return true of the pixel format is an OpenGL compressed pixel format.
|
virtual |
Return true if this image is translucent - i.e.
it has alpha values that are less 1.0 (when normalized).
|
inline |
|
static |
|
inlinevirtual |
Reimplemented from osg::BufferData.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
|
inlinevirtual |
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.
Reimplemented from osg::BufferData.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
|
inline |
Depth of image.
Referenced by osg::modifyImage(), and osg::readImage().
|
virtual |
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.
|
virtual |
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.
|
inlinevirtual |
return whether the update(NodeVisitor* nv) should be required on each frame to enable proper working of osg::Image.
Reimplemented in osg::ImageSequence.
|
inline |
Width of image.
Referenced by osg::modifyImage(), and osg::readImage().
|
inline |
|
virtual |
Scale image to specified size and with specified data type.
Reimplemented in osgQt::QWidgetImage.
|
inlinevirtual |
method for hinting whether to enable or disable focus to images acting as front ends to interactive surfaces such as a vnc or browser window.
Return true if handled.
Reimplemented in osgQt::QWebViewImage, and osgQt::QWidgetImage.
|
inlinevirtual |
method for sending key events to images that are acting as front ends to interactive surfaces such as a vnc or browser window.
Return true if handled.
Reimplemented in osgQt::QWebViewImage, and osgQt::QWidgetImage.
|
inlinevirtual |
method for sending pointer events to images that are acting as front ends to interactive surfaces such as a vnc or browser window.
Return true if handled.
Reimplemented in osgQt::QWebViewImage, and osgQt::QWidgetImage.
|
inline |
Set the method used for deleting data once it goes out of scope.
|
protected |
void osg::Image::setDataType | ( | GLenum | dataType | ) |
void osg::Image::setFileName | ( | const std::string & | fileName | ) |
|
inlinevirtual |
method for passing frame information to the custom Image classes, to be called only when objects associated with imagery are not culled.
Reimplemented in osgQt::QWebViewImage, and osgQt::QWidgetImage.
|
virtual |
Set the image dimensions, format and data.
Reimplemented in osg::ImageSequence.
Referenced by osg::ImageSequence::setImage().
void osg::Image::setInternalTextureFormat | ( | GLint | internalFormat | ) |
|
inline |
Send offsets into data.
It is assumed that first mipmap offset (index 0) is 0.
Set the origin of the image.
The default value is BOTTOM_LEFT and is consistent with OpenGL. TOP_LEFT is used for imagery that follows standard Imagery convention, such as movies, and hasn't been flipped yet. For such images one much flip the t axis of the tex coords. to handle this origin position.
|
inline |
|
inline |
Set the pixel aspect ratio, defined as the pixel width divided by the pixel height.
|
inline |
Set the optional PixelBufferObject used to map the image memory efficiently to graphics memory.
void osg::Image::setPixelFormat | ( | GLenum | pixelFormat | ) |
|
inline |
Height of image.
Referenced by osg::modifyImage(), and osg::readImage().
|
inlinevirtual |
update method for osg::Image subclasses that update themselves during the update traversal.
Reimplemented in osg::ImageSequence.
|
inline |
Return true if the Image represent a valid and usable imagery.
Referenced by osgTerrain::ContourLayer::getImage(), and osgTerrain::ProxyLayer::getImage().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
![]() | Generated at Tue Sep 4 2012 16:18:35 for the OpenSceneGraph by doxygen 1.8.1.2. |