openscenegraph
|
#include <Image>
Classes | |
class | DataIterator |
class | DimensionsChangedCallback |
struct | UpdateCallback |
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 |
typedef std::vector< osg::ref_ptr< DimensionsChangedCallback > > | DimensionsChangedCallbackVector |
![]() | |
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED } |
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 osg::Image * | asImage () |
virtual const osg::Image * | asImage () const |
virtual const GLvoid * | getDataPointer () const |
virtual unsigned int | getTotalDataSize () const |
virtual int | compare (const Image &rhs) const |
void | setFileName (const std::string &fileName) |
const std::string & | getFileName () const |
void | setWriteHint (WriteHint writeHint) |
WriteHint | getWriteHint () const |
void | setAllocationMode (AllocationMode mode) |
AllocationMode | getAllocationMode () const |
virtual void | allocateImage (int s, int t, int r, GLenum pixelFormat, GLenum type, int packing=1) |
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) |
virtual void | readPixels (int x, int y, int width, int height, GLenum pixelFormat, GLenum type, int packing=1) |
virtual void | readImageFromCurrentTexture (unsigned int contextID, bool copyMipMapsIfAvailable, GLenum type=GL_UNSIGNED_BYTE, unsigned int face=0) |
void | swap (osg::Image &rhs) |
void | scaleImage (int s, int t, int r) |
virtual void | scaleImage (int s, int t, int r, GLenum newDataType) |
virtual void | copySubImage (int s_offset, int t_offset, int r_offset, const osg::Image *source) |
void | setOrigin (Origin origin) |
Origin | getOrigin () const |
int | s () const |
int | t () const |
int | r () const |
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 |
void | setPixelAspectRatio (float pixelAspectRatio) |
float | getPixelAspectRatio () const |
unsigned int | getPixelSizeInBits () const |
unsigned int | getRowSizeInBytes () const |
unsigned int | getRowStepInBytes () const |
unsigned int | getImageSizeInBytes () const |
unsigned int | getImageStepInBytes () const |
unsigned int | getTotalSizeInBytes () const |
unsigned int | getTotalSizeInBytesIncludingMipmaps () const |
bool | valid () const |
unsigned char * | data () |
const unsigned char * | data () const |
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 |
Vec4 | getColor (unsigned int s, unsigned t=0, unsigned r=0) const |
Vec4 | getColor (const Vec2 &texcoord) const |
Vec4 | getColor (const Vec3 &texcoord) const |
void | setColor (const osg::Vec4 &color, unsigned int s, unsigned int t=0, unsigned int r=0) |
void | setColor (const osg::Vec4 &color, const osg::Vec2 &texcoord) |
void | setColor (const osg::Vec4 &color, const osg::Vec3 &texcoord) |
void | flipHorizontal () |
void | flipVertical () |
void | flipDepth () |
void | ensureValidSizeForTexturing (GLint maxTextureSize) |
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 | supportsTextureSubloading () const |
virtual bool | isImageTranslucent () const |
void | setPixelBufferObject (PixelBufferObject *buffer) |
PixelBufferObject * | getPixelBufferObject () |
const PixelBufferObject * | getPixelBufferObject () const |
virtual bool | requiresUpdateCall () const |
virtual void | update (NodeVisitor *) |
virtual bool | sendFocusHint (bool) |
virtual bool | sendPointerEvent (int, int, int) |
virtual bool | sendKeyEvent (int, bool) |
virtual void | setFrameLastRendered (const osg::FrameStamp *) |
void | addDimensionsChangedCallback (DimensionsChangedCallback *cb) |
void | removeDimensionsChangedCallback (DimensionsChangedCallback *cb) |
![]() | |
BufferData () | |
BufferData (const BufferData &bd, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual osg::Array * | asArray () |
virtual const osg::Array * | asArray () const |
virtual osg::PrimitiveSet * | asPrimitiveSet () |
virtual const osg::PrimitiveSet * | asPrimitiveSet () const |
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 () |
void | setModifiedCount (unsigned int value) |
unsigned int | getModifiedCount () const |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
void | releaseGLObjects (State *state=0) const |
unsigned int | getNumClients () const |
void | addClient (osg::Object *) |
void | removeClient (osg::Object *) |
![]() | |
Object () | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
std::string | getCompoundClassName () const |
virtual Node * | asNode () |
virtual const Node * | asNode () const |
virtual NodeVisitor * | asNodeVisitor () |
virtual const NodeVisitor * | asNodeVisitor () const |
virtual StateSet * | asStateSet () |
virtual const StateSet * | asStateSet () const |
virtual StateAttribute * | asStateAttribute () |
virtual const StateAttribute * | asStateAttribute () const |
virtual Uniform * | asUniform () |
virtual const Uniform * | asUniform () const |
virtual Camera * | asCamera () |
virtual const Camera * | asCamera () const |
virtual Drawable * | asDrawable () |
virtual const Drawable * | asDrawable () const |
virtual Callback * | asCallback () |
virtual const Callback * | asCallback () const |
virtual CallbackObject * | asCallbackObject () |
virtual const CallbackObject * | asCallbackObject () const |
virtual UserDataContainer * | asUserDataContainer () |
virtual const UserDataContainer * | asUserDataContainer () const |
virtual ValueObject * | asValueObject () |
virtual const ValueObject * | asValueObject () const |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
virtual void | setName (const std::string &name) |
void | setName (const char *name) |
const std::string & | getName () const |
void | setDataVariance (DataVariance dv) |
DataVariance | getDataVariance () const |
virtual void | computeDataVariance () |
void | setUserDataContainer (osg::UserDataContainer *udc) |
template<class T > | |
void | setUserDataContainer (const ref_ptr< T > &udc) |
osg::UserDataContainer * | getUserDataContainer () |
const osg::UserDataContainer * | getUserDataContainer () const |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
virtual void | setUserData (Referenced *obj) |
template<class T > | |
void | setUserData (const ref_ptr< T > &ud) |
virtual Referenced * | getUserData () |
virtual const Referenced * | getUserData () const |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
int | unref () const |
int | unref_nodelete () const |
int | referenceCount () const |
ObserverSet * | getObserverSet () const |
ObserverSet * | getOrCreateObserverSet () const |
void | addObserver (Observer *observer) const |
void | removeObserver (Observer *observer) const |
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) |
static unsigned int | computeBlockSize (GLenum pixelFormat, GLenum packing) |
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 OpenThreads::Mutex * | getGlobalReferencedMutex () |
static void | setDeleteHandler (DeleteHandler *handler) |
static DeleteHandler * | getDeleteHandler () |
Protected Member Functions | |
virtual | ~Image () |
Image & | operator= (const Image &) |
void | handleDimensionsChangedCallbacks () |
void | deallocateData () |
void | setData (unsigned char *data, AllocationMode allocationMode) |
![]() | |
virtual | ~BufferData () |
![]() | |
virtual | ~Object () |
![]() | |
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 |
![]() | |
unsigned int | _modifiedCount |
unsigned int | _bufferIndex |
osg::ref_ptr< BufferObject > | _bufferObject |
osg::ref_ptr< ModifiedCallback > | _modifiedCallback |
unsigned int | _numClients |
![]() | |
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< osg::ref_ptr<DimensionsChangedCallback> > osg::Image::DimensionsChangedCallbackVector |
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 |
void osg::Image::addDimensionsChangedCallback | ( | DimensionsChangedCallback * | cb | ) |
|
virtual |
Allocate a pixel block of specified size and type.
|
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.
|
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.
|
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 |
return the dimensions of a block of compressed pixels
|
static |
return the size in bytes of a block of compressed pixels
|
static |
|
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 accommodate the source image in its offset position. If source is NULL then no operation happens, this Image is left unchanged.
|
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.
|
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.
|
inline |
|
inline |
|
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 maximum texture size for the host machine.
void osg::Image::flipDepth | ( | ) |
Flip the image around the r dimension. Only relevant for 3D textures.
void osg::Image::flipHorizontal | ( | ) |
Flip the image horizontally, around s dimension.
void osg::Image::flipVertical | ( | ) |
Flip the image vertically, around t dimension.
|
inline |
Get the method used for deleting data once it goes out of scope.
Get the color value for specified texcoord.
Get the color value for specified texcoord.
Vec4 osg::Image::getColor | ( | unsigned int | s, |
unsigned | t = 0 , |
||
unsigned | r = 0 |
||
) | const |
Get the color value for specified texcoord.
|
inlinevirtual |
Implements osg::BufferData.
|
inline |
|
inline |
|
inline |
Return the number of bytes each image (_s*_t) of pixels occupies.
|
inline |
Return the number of bytes between each successive image. Note, getImageSizeInBytes() will only equal getImageStepInBytes() when isDataContiguous() return true.
|
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 |
|
inline |
Return the number of bits required for each pixel.
|
inline |
|
inline |
Return the number of bytes each row of pixels occupies once it has been packed.
|
inline |
Return the number of bytes between each successive row. Note, getRowSizeInBytes() will only equal getRowStepInBytes() when isDataContiguous() return true.
|
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 |
|
inlineprotected |
bool osg::Image::isCompressed | ( | ) | const |
Return true of the pixel format is an OpenGL compressed pixel format.
|
inline |
return true if the data stored in the image is a contiguous block of data.
|
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.
|
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.
void osg::Image::removeDimensionsChangedCallback | ( | DimensionsChangedCallback * | cb | ) |
|
inlinevirtual |
Return whether the update(NodeVisitor* nv) should be required on each frame to enable proper working of osg::Image.
Reimplemented in osg::ImageSequence.
|
static |
|
inline |
Width of image.
|
inline |
Scale image to specified size.
|
virtual |
Scale image to specified size and with specified data type.
|
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.
|
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.
|
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.
|
inline |
Set the method used for deleting data once it goes out of scope.
Set the color value for specified texcoord. Note texcoord is clamped to edge.
Set the color value for specified texcoord. Note texcoord is clamped to edge.
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.
|
protected |
void osg::Image::setDataType | ( | GLenum | dataType | ) |
void osg::Image::setFileName | ( | const std::string & | fileName | ) |
|
inlinevirtual |
Pass frame information to the custom Image classes, to be called only when objects associated with imagery are not culled.
|
virtual |
Set the image dimensions, format and data.
void osg::Image::setInternalTextureFormat | ( | GLint | internalFormat | ) |
|
inline |
Send offsets into data. It is assumed that first mipmap offset (index 0) is 0.
|
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.
|
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 | ) |
void osg::Image::setRowLength | ( | int | length | ) |
|
inline |
bool osg::Image::supportsTextureSubloading | ( | ) | const |
returns false for texture formats that do not support texture subloading
void osg::Image::swap | ( | osg::Image & | rhs | ) |
swap the data and settings between two image objects.
|
inline |
Height of image.
|
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.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |