OpenSceneGraph 3.6.5
osg::Image Class Reference

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

#include <Image>

Inheritance diagram for osg::Image:

Classes

class  DataIterator
 Convenience class for assisting the copying of image data when the image data isn't contiguous. More...
class  DimensionsChangedCallback
struct  UpdateCallback
 Convenience update callback class that can be attached to a 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.
typedef std::vector< osg::ref_ptr< DimensionsChangedCallback > > DimensionsChangedCallbackVector
Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

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 ObjectcloneType () const
 Clone the type of an object, with Object* return type.
virtual Objectclone (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 osg::ImageasImage ()
 Convert 'this' into a Image pointer if Object is a Image, otherwise return 0.
virtual const osg::ImageasImage () const
 Convert 'this' into a Image pointer if Object is a Image, otherwise return 0.
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, int rowLength=0)
 Set the image dimensions, format and data.
virtual void readPixels (int x, int y, int width, int height, GLenum pixelFormat, GLenum type, int packing=1)
 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, unsigned int face=0)
 Read the contents of the current bound texture, handling compressed pixelFormats if present.
void swap (osg::Image &rhs)
 swap the data and settings between two image objects.
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 setRowLength (int length)
int getRowLength () 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
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 getRowStepInBytes () const
 Return the number of bytes between each successive row.
unsigned int getImageSizeInBytes () const
 Return the number of bytes each image (_s*_t) of pixels occupies.
unsigned int getImageStepInBytes () const
 Return the number of bytes between each successive image.
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 (unsigned int column, unsigned int row=0, unsigned int image=0)
const unsigned char * data (unsigned int column, unsigned int row=0, unsigned int image=0) const
bool isDataContiguous () const
 return true if the data stored in the image is a contiguous block of data.
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 setColor (const osg::Vec4 &color, unsigned int s, unsigned int t=0, unsigned int r=0)
 Set the color value for specified texcoord.
void setColor (const osg::Vec4 &color, const osg::Vec2 &texcoord)
 Set the color value for specified texcoord.
void setColor (const osg::Vec4 &color, const osg::Vec3 &texcoord)
 Set the color value for specified texcoord.
void flipHorizontal ()
 Flip the image horizontally, around s dimension.
void flipVertical ()
 Flip the image vertically, around t dimension.
void flipDepth ()
 Flip the image around the r dimension.
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 MipmapDataTypegetMipmapLevels () const
unsigned int getMipmapOffset (unsigned int mipmapLevel) const
unsigned char * getMipmapData (unsigned int mipmapLevel)
const unsigned char * getMipmapData (unsigned int mipmapLevel) const
bool supportsTextureSubloading () const
 returns false for texture formats that do not support texture subloading
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.
PixelBufferObjectgetPixelBufferObject ()
 Get the PixelBufferObject.
const PixelBufferObjectgetPixelBufferObject () 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)
 Hint 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)
 Send 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)
 Send 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 *)
 Pass frame information to the custom Image classes, to be called only when objects associated with imagery are not culled.
void addDimensionsChangedCallback (DimensionsChangedCallback *cb)
void removeDimensionsChangedCallback (DimensionsChangedCallback *cb)
Public Member Functions inherited from osg::BufferData
 BufferData ()
 BufferData (const BufferData &bd, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::ArrayasArray ()
virtual const osg::ArrayasArray () const
virtual osg::PrimitiveSetasPrimitiveSet ()
virtual const osg::PrimitiveSetasPrimitiveSet () const
void setBufferObject (BufferObject *bufferObject)
BufferObjectgetBufferObject ()
const BufferObjectgetBufferObject () const
void setBufferIndex (unsigned int index)
unsigned int getBufferIndex () const
GLBufferObjectgetGLBufferObject (unsigned int contextID) const
GLBufferObjectgetOrCreateGLBufferObject (unsigned int contextID) const
void setModifiedCallback (ModifiedCallback *md)
ModifiedCallbackgetModifiedCallback ()
const ModifiedCallbackgetModifiedCallback () 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.
unsigned int getNumClients () const
void addClient (osg::Object *)
void removeClient (osg::Object *)
Public Member Functions inherited from osg::Object
 Object ()
 Construct an object.
 Object (bool threadSafeRefUnref)
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data.
std::string getCompoundClassName () const
 return the compound class name that combines the library name and class name.
virtual NodeasNode ()
 Convert 'this' into a Node pointer if Object is a Node, otherwise return 0.
virtual const NodeasNode () const
 convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0.
virtual NodeVisitorasNodeVisitor ()
 Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0.
virtual const NodeVisitorasNodeVisitor () const
 convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0.
virtual StateSetasStateSet ()
 Convert 'this' into a StateSet pointer if Object is a StateSet, otherwise return 0.
virtual const StateSetasStateSet () const
 convert 'const this' into a const StateSet pointer if Object is a StateSet, otherwise return 0.
virtual StateAttributeasStateAttribute ()
 Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0.
virtual const StateAttributeasStateAttribute () const
 convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0.
virtual UniformasUniform ()
 Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0.
virtual const UniformasUniform () const
 convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0.
virtual CameraasCamera ()
 Convert 'this' into a Camera pointer if Node is a Camera, otherwise return 0.
virtual const CameraasCamera () const
 convert 'const this' into a const Camera pointer if Node is a Camera, otherwise return 0.
virtual DrawableasDrawable ()
 Convert 'this' into a Drawable pointer if Object is a Drawable, otherwise return 0.
virtual const DrawableasDrawable () const
 convert 'const this' into a const Drawable pointer if Object is a Drawable, otherwise return 0.
virtual CallbackasCallback ()
 Convert 'this' into a Callback pointer if Object is a Callback, otherwise return 0.
virtual const CallbackasCallback () const
 convert 'const this' into a const Callback pointer if Object is a Callback, otherwise return 0.
virtual CallbackObjectasCallbackObject ()
 Convert 'this' into a CallbackObject pointer if Object is a CallbackObject, otherwise return 0.
virtual const CallbackObjectasCallbackObject () const
 convert 'const this' into a const CallbackObject pointer if Object is a CallbackObject, otherwise return 0.
virtual UserDataContainerasUserDataContainer ()
 Convert 'this' into a UserDataContainer pointer if Object is a UserDataContainer, otherwise return 0.
virtual const UserDataContainerasUserDataContainer () const
 convert 'const this' into a const UserDataContainer pointer if Object is a UserDataContainer, otherwise return 0.
virtual ValueObjectasValueObject ()
 Convert 'this' into a ValueObject pointer if Object is a ValueObject, otherwise return 0.
virtual const ValueObjectasValueObject () const
 Convert 'this' into a ValueObject pointer if Object is a ValueObject, otherwise return 0.
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.
template<class T>
void setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainergetUserDataContainer ()
 get the UserDataContainer attached to this object.
const osg::UserDataContainergetUserDataContainer () const
 get the const UserDataContainer attached to this object.
osg::UserDataContainergetOrCreateUserDataContainer ()
 Convenience 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.
template<class T>
void setUserData (const ref_ptr< T > &ud)
virtual ReferencedgetUserData ()
 Get user data.
virtual const ReferencedgetUserData () const
 Get const user data.
template<typename T>
bool getUserValue (const std::string &name, T &value) const
 Convenience 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)
 Convenience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject.
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool getUserValue (const std::string &name, T &value) const
 provide implementation of osg::Object::getUserValue(..) template
Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Deprecated, Referenced is now always uses thread safe ref/unref, use default Referenced() constructor instead.
 Referenced (const Referenced &)
Referencedoperator= (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 no longer referencing it.
int unref_nodelete () const
 Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it.
int referenceCount () const
 Return the number of pointers currently referencing this object.
ObserverSetgetObserverSet () const
 Get the ObserverSet if one is attached, otherwise return NULL.
ObserverSetgetOrCreateObserverSet () 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 osg::Vec3i computeBlockFootprint (GLenum pixelFormat)
 return the dimensions of a block of compressed pixels
static unsigned int computeBlockSize (GLenum pixelFormat, GLenum packing)
 return the size in bytes of a block of compressed pixels
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 unsigned int computeImageSizeInBytes (int width, int height, int depth, GLenum pixelFormat, GLenum type, int packing=1, int slice_packing=1, int image_packing=1)
static int roudUpToMultiple (int s, int pack)
static int computeNearestPowerOfTwo (int s, float bias=0.5f)
static int computeNumberOfMipmapLevels (int s, int t=1, int r=1)
Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * getGlobalReferencedMutex ()
 Get the optional global Referenced mutex, this can be shared between all osg::Referenced.
static void setDeleteHandler (DeleteHandler *handler)
 Set a DeleteHandler to which deletion of all referenced counted objects will be delegated.
static DeleteHandlergetDeleteHandler ()
 Get a DeleteHandler.

Protected Member Functions

virtual ~Image ()
Imageoperator= (const Image &)
void handleDimensionsChangedCallbacks ()
void deallocateData ()
void setData (unsigned char *data, AllocationMode allocationMode)
Protected Member Functions inherited from osg::BufferData
virtual ~BufferData ()
Protected Member Functions inherited from osg::Object
virtual ~Object ()
 Object destructor.
Protected Member Functions inherited from osg::Referenced
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
int _rowLength
GLint _internalTextureFormat
GLenum _pixelFormat
GLenum _dataType
unsigned int _packing
float _pixelAspectRatio
AllocationMode _allocationMode
unsigned char * _data
MipmapDataType _mipmapData
DimensionsChangedCallbackVector _dimensionsChangedCallbacks
Protected Attributes inherited from osg::BufferData
unsigned int _modifiedCount
unsigned int _bufferIndex
osg::ref_ptr< BufferObject_bufferObject
osg::ref_ptr< ModifiedCallback_modifiedCallback
unsigned int _numClients
Protected Attributes inherited from osg::Object
std::string _name
DataVariance _dataVariance
osg::UserDataContainer_userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Detailed Description

Image class for encapsulating the storage texture image data.

Member Typedef Documentation

◆ DimensionsChangedCallbackVector

◆ MipmapDataType

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

Precomputed mipmaps stuff.

Member Enumeration Documentation

◆ AllocationMode

Enumerator
NO_DELETE 
USE_NEW_DELETE 
USE_MALLOC_FREE 

◆ Origin

Enumerator
BOTTOM_LEFT 
TOP_LEFT 

◆ WriteHint

Enumerator
NO_PREFERENCE 
STORE_INLINE 
EXTERNAL_FILE 

Constructor & Destructor Documentation

◆ Image() [1/2]

◆ Image() [2/2]

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

Copy constructor using CopyOp to manage deep vs shallow copy.

References Image(), and osg::CopyOp::SHALLOW_COPY.

◆ ~Image()

virtual osg::Image::~Image ( )
protectedvirtual

Member Function Documentation

◆ addDimensionsChangedCallback()

void osg::Image::addDimensionsChangedCallback ( DimensionsChangedCallback * cb)

◆ allocateImage()

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

Allocate a pixel block of specified size and type.

References r(), s(), and t().

◆ asImage() [1/2]

virtual osg::Image * osg::Image::asImage ( )
inlinevirtual

Convert 'this' into a Image pointer if Object is a Image, otherwise return 0.

Equivalent to dynamic_cast<Image*>(this).

Reimplemented from osg::BufferData.

◆ asImage() [2/2]

virtual const osg::Image * osg::Image::asImage ( ) const
inlinevirtual

Convert 'this' into a Image pointer if Object is a Image, otherwise return 0.

Equivalent to dynamic_cast<Image*>(this).

Reimplemented from osg::BufferData.

◆ className()

virtual const char * osg::Image::className ( ) const
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()

virtual Object * osg::Image::clone ( const CopyOp & ) const
inlinevirtual

Clone an object, with Object* return type.

Must be defined by derived classes.

Implements osg::Object.

Reimplemented in osg::ImageSequence, and osg::ImageStream.

References Image().

◆ cloneType()

virtual Object * osg::Image::cloneType ( ) const
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.

References Image().

◆ compare()

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::ImageSequence, and osg::ImageStream.

References Image().

◆ computeBlockFootprint()

osg::Vec3i osg::Image::computeBlockFootprint ( GLenum pixelFormat)
static

return the dimensions of a block of compressed pixels

◆ computeBlockSize()

unsigned int osg::Image::computeBlockSize ( GLenum pixelFormat,
GLenum packing )
static

return the size in bytes of a block of compressed pixels

◆ computeFormatDataType()

GLenum osg::Image::computeFormatDataType ( GLenum pixelFormat)
static

◆ computeImageSizeInBytes()

unsigned int osg::Image::computeImageSizeInBytes ( int width,
int height,
int depth,
GLenum pixelFormat,
GLenum type,
int packing = 1,
int slice_packing = 1,
int image_packing = 1 )
static

◆ computeNearestPowerOfTwo()

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

References s().

◆ computeNumberOfMipmapLevels()

int osg::Image::computeNumberOfMipmapLevels ( int s,
int t = 1,
int r = 1 )
static

References r(), s(), and t().

◆ computeNumComponents()

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

◆ computePixelFormat()

GLenum osg::Image::computePixelFormat ( GLenum pixelFormat)
static

◆ computePixelSizeInBits()

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

Referenced by getPixelSizeInBits().

◆ computeRowWidthInBytes()

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

◆ copySubImage()

virtual void osg::Image::copySubImage ( int s_offset,
int t_offset,
int r_offset,
const osg::Image * source )
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 accommodate the source image in its offset position. If source is NULL then no operation happens, this Image is left unchanged.

◆ data() [1/4]

unsigned char * osg::Image::data ( )
inline

Raw image data.

Note, data in successive rows may not be contiguous, isDataContiguous() return false then you should take care to access the data per row rather than treating the whole data as a single block.

References _data.

Referenced by getDataPointer(), osg::modifyImage(), osg::readImage(), osgUtil::CubeMapGenerator::set_pixel(), setData(), setImage(), and osg::ImageSequence::setImage().

◆ data() [2/4]

const unsigned char * osg::Image::data ( ) const
inline

Raw const image data.

Note, data in successive rows may not be contiguous, isDataContiguous() return false then you should take care to access the data per row rather than treating the whole data as a single block.

References _data.

◆ data() [3/4]

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

◆ data() [4/4]

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

◆ deallocateData()

void osg::Image::deallocateData ( )
protected

◆ ensureValidSizeForTexturing()

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 maximum texture size for the host machine.

◆ flipDepth()

void osg::Image::flipDepth ( )

Flip the image around the r dimension.

Only relevant for 3D textures.

◆ flipHorizontal()

void osg::Image::flipHorizontal ( )

Flip the image horizontally, around s dimension.

◆ flipVertical()

void osg::Image::flipVertical ( )

Flip the image vertically, around t dimension.

◆ getAllocationMode()

AllocationMode osg::Image::getAllocationMode ( ) const
inline

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

References _allocationMode.

◆ getColor() [1/3]

Vec4 osg::Image::getColor ( const Vec2 & texcoord) const
inline

Get the color value for specified texcoord.

References getColor(), osg::Vec2f::x(), and osg::Vec2f::y().

Referenced by getColor().

◆ getColor() [2/3]

Vec4 osg::Image::getColor ( const Vec3 & texcoord) const

Get the color value for specified texcoord.

◆ getColor() [3/3]

Vec4 osg::Image::getColor ( unsigned int s,
unsigned t = 0,
unsigned r = 0 ) const

Get the color value for specified texcoord.

References r(), s(), and t().

◆ getDataPointer()

virtual const GLvoid * osg::Image::getDataPointer ( ) const
inlinevirtual

Implements osg::BufferData.

References data().

◆ getDataType()

GLenum osg::Image::getDataType ( ) const
inline

References _dataType.

Referenced by osg::modifyImage(), osg::readImage(), and scaleImage().

◆ getFileName()

const std::string & osg::Image::getFileName ( ) const
inline

References _fileName.

◆ getImageSizeInBytes()

unsigned int osg::Image::getImageSizeInBytes ( ) const
inline

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

References _t, and getRowSizeInBytes().

Referenced by data(), data(), and getTotalSizeInBytes().

◆ getImageStepInBytes()

unsigned int osg::Image::getImageStepInBytes ( ) const
inline

Return the number of bytes between each successive image.

Note, getImageSizeInBytes() will only equal getImageStepInBytes() when isDataContiguous() return true.

References _t, and getRowStepInBytes().

◆ getInternalTextureFormat()

GLint osg::Image::getInternalTextureFormat ( ) const
inline

◆ getMipmapData() [1/2]

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

References _data, and getMipmapOffset().

◆ getMipmapData() [2/2]

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

References _data, and getMipmapOffset().

◆ getMipmapLevels()

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

References _mipmapData.

◆ getMipmapOffset()

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

References _mipmapData, and getNumMipmapLevels().

Referenced by getMipmapData(), and getMipmapData().

◆ getNumMipmapLevels()

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

References _mipmapData.

Referenced by getMipmapOffset().

◆ getOrigin()

Origin osg::Image::getOrigin ( ) const
inline

Get the origin of the image.

References _origin.

◆ getPacking()

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

References _packing.

◆ getPixelAspectRatio()

float osg::Image::getPixelAspectRatio ( ) const
inline

Get the pixel aspect ratio.

References _pixelAspectRatio.

◆ getPixelBufferObject() [1/2]

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

◆ getPixelBufferObject() [2/2]

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

◆ getPixelFormat()

GLenum osg::Image::getPixelFormat ( ) const
inline

References _pixelFormat.

Referenced by osg::modifyImage(), and osg::readImage().

◆ getPixelSizeInBits()

unsigned int osg::Image::getPixelSizeInBits ( ) const
inline

Return the number of bits required for each pixel.

References _dataType, _pixelFormat, and computePixelSizeInBits().

Referenced by data(), and data().

◆ getRowLength()

int osg::Image::getRowLength ( ) const
inline

References _rowLength.

◆ getRowSizeInBytes()

unsigned int osg::Image::getRowSizeInBytes ( ) const
inline

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

References _dataType, _packing, _pixelFormat, _s, and computeRowWidthInBytes().

Referenced by getImageSizeInBytes().

◆ getRowStepInBytes()

unsigned int osg::Image::getRowStepInBytes ( ) const
inline

Return the number of bytes between each successive row.

Note, getRowSizeInBytes() will only equal getRowStepInBytes() when isDataContiguous() return true.

References _dataType, _packing, _pixelFormat, _rowLength, _s, and computeRowWidthInBytes().

Referenced by data(), data(), and getImageStepInBytes().

◆ getTotalDataSize()

virtual unsigned int osg::Image::getTotalDataSize ( ) const
inlinevirtual

◆ getTotalSizeInBytes()

unsigned int osg::Image::getTotalSizeInBytes ( ) const
inline

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

References _r, and getImageSizeInBytes().

◆ getTotalSizeInBytesIncludingMipmaps()

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.

Referenced by getTotalDataSize().

◆ getWriteHint()

WriteHint osg::Image::getWriteHint ( ) const
inline

References _writeHint.

◆ handleDimensionsChangedCallbacks()

void osg::Image::handleDimensionsChangedCallbacks ( )
inlineprotected

◆ isCompressed()

bool osg::Image::isCompressed ( ) const

Return true of the pixel format is an OpenGL compressed pixel format.

◆ isDataContiguous()

bool osg::Image::isDataContiguous ( ) const
inline

return true if the data stored in the image is a contiguous block of data.

References _rowLength, and _s.

◆ isImageTranslucent()

virtual bool osg::Image::isImageTranslucent ( ) const
virtual

Return true if this image is translucent - i.e.

it has alpha values that are less 1.0 (when normalized).

◆ isMipmap()

bool osg::Image::isMipmap ( ) const
inline

References _mipmapData.

◆ isPackedType()

bool osg::Image::isPackedType ( GLenum type)
static

◆ isSameKindAs()

virtual bool osg::Image::isSameKindAs ( const Object * obj) const
inlinevirtual

Reimplemented from osg::BufferData.

Reimplemented in osg::ImageSequence, and osg::ImageStream.

References Image().

◆ libraryName()

virtual const char * osg::Image::libraryName ( ) const
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.

◆ operator=()

Image & osg::Image::operator= ( const Image & )
inlineprotected

References Image().

◆ r()

◆ readImageFromCurrentTexture()

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

◆ readPixels()

virtual void osg::Image::readPixels ( int x,
int y,
int width,
int height,
GLenum pixelFormat,
GLenum type,
int packing = 1 )
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.

◆ removeDimensionsChangedCallback()

void osg::Image::removeDimensionsChangedCallback ( DimensionsChangedCallback * cb)

◆ requiresUpdateCall()

virtual bool osg::Image::requiresUpdateCall ( ) const
inlinevirtual

Return whether the update(NodeVisitor* nv) should be required on each frame to enable proper working of osg::Image.

Reimplemented in osg::ImageSequence.

◆ roudUpToMultiple()

int osg::Image::roudUpToMultiple ( int s,
int pack )
static

References s().

◆ s()

◆ scaleImage() [1/2]

void osg::Image::scaleImage ( int s,
int t,
int r )
inline

Scale image to specified size.

References getDataType(), r(), s(), scaleImage(), and t().

Referenced by scaleImage().

◆ scaleImage() [2/2]

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

Scale image to specified size and with specified data type.

References r(), s(), and t().

◆ sendFocusHint()

virtual bool osg::Image::sendFocusHint ( bool )
inlinevirtual

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

◆ sendKeyEvent()

virtual bool osg::Image::sendKeyEvent ( int ,
bool  )
inlinevirtual

Send key events to images that are acting as front ends to interactive surfaces such as a vnc or browser window.

Return true if handled.

◆ sendPointerEvent()

virtual bool osg::Image::sendPointerEvent ( int ,
int ,
int  )
inlinevirtual

Send pointer events to images that are acting as front ends to interactive surfaces such as a vnc or browser window.

Return true if handled.

◆ setAllocationMode()

void osg::Image::setAllocationMode ( AllocationMode mode)
inline

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

References _allocationMode.

◆ setColor() [1/3]

void osg::Image::setColor ( const osg::Vec4 & color,
const osg::Vec2 & texcoord )
inline

Set the color value for specified texcoord.

Note texcoord is clamped to edge.

References setColor().

Referenced by setColor().

◆ setColor() [2/3]

void osg::Image::setColor ( const osg::Vec4 & color,
const osg::Vec3 & texcoord )

Set the color value for specified texcoord.

Note texcoord is clamped to edge.

◆ setColor() [3/3]

void osg::Image::setColor ( const osg::Vec4 & color,
unsigned int s,
unsigned int t = 0,
unsigned int r = 0 )

Set the color value for specified texcoord.

References r(), s(), and t().

◆ setData()

void osg::Image::setData ( unsigned char * data,
AllocationMode allocationMode )
protected

References data().

◆ setDataType()

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

◆ setFileName()

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

◆ setFrameLastRendered()

virtual void osg::Image::setFrameLastRendered ( const osg::FrameStamp * )
inlinevirtual

Pass frame information to the custom Image classes, to be called only when objects associated with imagery are not culled.

◆ setImage()

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

Set the image dimensions, format and data.

References data(), r(), s(), and t().

Referenced by osg::ImageSequence::setImage(), and osgFX::AnisotropicLighting::setLightingMap().

◆ setInternalTextureFormat()

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

◆ setMipmapLevels()

void osg::Image::setMipmapLevels ( const MipmapDataType & mipmapDataVector)
inline

Send offsets into data.

It is assumed that first mipmap offset (index 0) is 0.

References _mipmapData.

◆ setOrigin()

void osg::Image::setOrigin ( Origin origin)
inline

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.

References _origin.

◆ setPacking()

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

References _packing.

◆ setPixelAspectRatio()

void osg::Image::setPixelAspectRatio ( float pixelAspectRatio)
inline

Set the pixel aspect ratio, defined as the pixel width divided by the pixel height.

References _pixelAspectRatio.

◆ setPixelBufferObject()

void osg::Image::setPixelBufferObject ( PixelBufferObject * buffer)
inline

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

References osg::BufferData::setBufferObject().

◆ setPixelFormat()

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

◆ setRowLength()

void osg::Image::setRowLength ( int length)

◆ setWriteHint()

void osg::Image::setWriteHint ( WriteHint writeHint)
inline

References _writeHint.

◆ supportsTextureSubloading()

bool osg::Image::supportsTextureSubloading ( ) const

returns false for texture formats that do not support texture subloading

◆ swap()

void osg::Image::swap ( osg::Image & rhs)

swap the data and settings between two image objects.

◆ t()

◆ update()

virtual void osg::Image::update ( NodeVisitor * )
inlinevirtual

update method for osg::Image subclasses that update themselves during the update traversal.

Reimplemented in osg::ImageSequence.

◆ valid()

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

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

References _data, _dataType, _r, _s, and _t.

Member Data Documentation

◆ _allocationMode

AllocationMode osg::Image::_allocationMode
protected

◆ _data

unsigned char* osg::Image::_data
protected

◆ _dataType

GLenum osg::Image::_dataType
protected

◆ _dimensionsChangedCallbacks

DimensionsChangedCallbackVector osg::Image::_dimensionsChangedCallbacks
protected

◆ _fileName

std::string osg::Image::_fileName
protected

Referenced by getFileName().

◆ _internalTextureFormat

GLint osg::Image::_internalTextureFormat
protected

◆ _mipmapData

MipmapDataType osg::Image::_mipmapData
protected

◆ _origin

Origin osg::Image::_origin
protected

Referenced by getOrigin(), and setOrigin().

◆ _packing

unsigned int osg::Image::_packing
protected

◆ _pixelAspectRatio

float osg::Image::_pixelAspectRatio
protected

◆ _pixelFormat

GLenum osg::Image::_pixelFormat
protected

◆ _r

int osg::Image::_r
protected

Referenced by getTotalSizeInBytes(), r(), and valid().

◆ _rowLength

int osg::Image::_rowLength
protected

◆ _s

int osg::Image::_s
protected

◆ _t

int osg::Image::_t
protected

◆ _writeHint

WriteHint osg::Image::_writeHint
protected

Referenced by getWriteHint(), and setWriteHint().


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

osg logo
Generated at Sun Jul 27 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.