openscenegraph
|
Classes | |
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 |
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 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) |
virtual void | readPixels (int x, int y, int width, int height, GLenum pixelFormat, GLenum type) |
virtual void | readImageFromCurrentTexture (unsigned int contextID, bool copyMipMapsIfAvailable, GLenum type=GL_UNSIGNED_BYTE) |
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 | 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 | 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 |
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 | flipHorizontal () |
void | flipVertical () |
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 |
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 *) |
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) |
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 |
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 | ( | const Image & | image, |
const CopyOp & | copyop = CopyOp::SHALLOW_COPY |
||
) |
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::Image::~Image | ( | ) | [protected, virtual] |
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.
virtual const char* osg::Image::className | ( | ) | const [inline, virtual] |
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.
virtual Object* osg::Image::clone | ( | const CopyOp & | ) | const [inline, virtual] |
Clone an object, with Object* return type. Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osg::ImageSequence, and 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::ImageSequence, and 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::ImageSequence, and osg::ImageStream.
static GLenum osg::Image::computeFormatDataType | ( | GLenum | pixelFormat | ) | [static] |
static int osg::Image::computeNearestPowerOfTwo | ( | int | s, |
float | bias = 0.5f |
||
) | [static] |
static int osg::Image::computeNumberOfMipmapLevels | ( | int | s, |
int | t = 1 , |
||
int | r = 1 |
||
) | [static] |
static unsigned int osg::Image::computeNumComponents | ( | GLenum | pixelFormat | ) | [static] |
static GLenum osg::Image::computePixelFormat | ( | 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] |
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 accomodate the source image in its offset position. If source is NULL then no operation happens, this Image is left unchanged.
unsigned char* osg::Image::data | ( | ) | [inline] |
Raw image data.
Referenced by osg::modifyImage(), osg::readImage(), and osgUtil::CubeMapGenerator::set_pixel().
const unsigned char* osg::Image::data | ( | ) | const [inline] |
Raw const image data.
unsigned char* osg::Image::data | ( | int | column, |
int | row = 0 , |
||
int | image = 0 |
||
) | [inline] |
References NULL.
const unsigned char* osg::Image::data | ( | int | column, |
int | row = 0 , |
||
int | image = 0 |
||
) | const [inline] |
References NULL.
void osg::Image::deallocateData | ( | ) | [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.
Flip the image horizontally.
Flip the image vertically.
AllocationMode osg::Image::getAllocationMode | ( | ) | const [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.
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().
Vec4 osg::Image::getColor | ( | const Vec3 & | texcoord | ) | const |
Get the color value for specified texcoord.
virtual const GLvoid* osg::Image::getDataPointer | ( | ) | const [inline, virtual] |
Implements osg::BufferData.
GLenum osg::Image::getDataType | ( | ) | const [inline] |
Referenced by osg::modifyImage(), and osg::readImage().
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] |
unsigned char* osg::Image::getMipmapData | ( | unsigned int | mipmapLevel | ) | [inline] |
const unsigned char* osg::Image::getMipmapData | ( | unsigned int | mipmapLevel | ) | const [inline] |
const MipmapDataType& osg::Image::getMipmapLevels | ( | ) | const [inline] |
unsigned int osg::Image::getMipmapOffset | ( | unsigned int | mipmapLevel | ) | const [inline] |
unsigned int osg::Image::getNumMipmapLevels | ( | ) | const [inline] |
Origin osg::Image::getOrigin | ( | ) | const [inline] |
Get the origin of the image.
unsigned int osg::Image::getPacking | ( | ) | const [inline] |
float osg::Image::getPixelAspectRatio | ( | ) | const [inline] |
Get the pixel aspect ratio.
PixelBufferObject* osg::Image::getPixelBufferObject | ( | ) | [inline] |
Get the PixelBufferObject.
const PixelBufferObject* osg::Image::getPixelBufferObject | ( | ) | const [inline] |
Get the const PixelBufferObject.
GLenum osg::Image::getPixelFormat | ( | ) | const [inline] |
Referenced by osg::modifyImage(), and osg::readImage().
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.
virtual unsigned int osg::Image::getTotalDataSize | ( | ) | const [inline, virtual] |
Implements osg::BufferData.
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.
WriteHint osg::Image::getWriteHint | ( | ) | const [inline] |
bool osg::Image::isCompressed | ( | ) | const |
return true of the pixel format is an OpenGL compressed pixel format.
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).
bool osg::Image::isMipmap | ( | ) | const [inline] |
static bool osg::Image::isPackedType | ( | GLenum | type | ) | [static] |
virtual bool osg::Image::isSameKindAs | ( | const Object * | obj | ) | const [inline, virtual] |
Reimplemented from osg::BufferData.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
virtual const char* osg::Image::libraryName | ( | ) | const [inline, virtual] |
return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.
Reimplemented from osg::BufferData.
Reimplemented in osg::ImageSequence, and osg::ImageStream.
int osg::Image::r | ( | ) | const [inline] |
Depth of image.
Referenced by osg::modifyImage(), and osg::readImage().
virtual void osg::Image::readImageFromCurrentTexture | ( | unsigned int | contextID, |
bool | copyMipMapsIfAvailable, | ||
GLenum | type = GL_UNSIGNED_BYTE |
||
) | [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 void osg::Image::readPixels | ( | int | x, |
int | y, | ||
int | width, | ||
int | height, | ||
GLenum | pixelFormat, | ||
GLenum | type | ||
) | [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.
virtual bool osg::Image::requiresUpdateCall | ( | ) | const [inline, virtual] |
return whether the update(NodeVisitor* nv) should be required on each frame to enable proper working of osg::Image.
Reimplemented in osg::ImageSequence.
int osg::Image::s | ( | ) | const [inline] |
Width of image.
Referenced by osg::modifyImage(), and osg::readImage().
void osg::Image::scaleImage | ( | int | s, |
int | t, | ||
int | r | ||
) | [inline] |
virtual void osg::Image::scaleImage | ( | int | s, |
int | t, | ||
int | r, | ||
GLenum | newDataType | ||
) | [virtual] |
Scale image to specified size and with specified data type.
Reimplemented in osgQt::QWidgetImage.
virtual bool osg::Image::sendFocusHint | ( | bool | ) | [inline, virtual] |
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.
virtual bool osg::Image::sendKeyEvent | ( | int | , |
bool | |||
) | [inline, virtual] |
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.
virtual bool osg::Image::sendPointerEvent | ( | int | , |
int | , | ||
int | |||
) | [inline, virtual] |
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.
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 | ) |
virtual void osg::Image::setFrameLastRendered | ( | const osg::FrameStamp * | ) | [inline, virtual] |
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 void osg::Image::setImage | ( | int | s, |
int | t, | ||
int | r, | ||
GLint | internalTextureformat, | ||
GLenum | pixelFormat, | ||
GLenum | type, | ||
unsigned char * | data, | ||
AllocationMode | mode, | ||
int | packing = 1 |
||
) | [virtual] |
Set the image dimensions, format and data.
Reimplemented in osg::ImageSequence.
Referenced by osg::ImageSequence::setImage().
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::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.
void osg::Image::setPacking | ( | unsigned int | packing | ) | [inline] |
void osg::Image::setPixelAspectRatio | ( | float | pixelAspectRatio | ) | [inline] |
Set the pixel aspect ratio, defined as the pixel width divided by the pixel height.
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 | ) |
void osg::Image::setWriteHint | ( | WriteHint | writeHint | ) | [inline] |
int osg::Image::t | ( | ) | const [inline] |
Height of image.
Referenced by osg::modifyImage(), and osg::readImage().
virtual void osg::Image::update | ( | NodeVisitor * | ) | [inline, virtual] |
update method for osg::Image subclasses that update themselves during the update traversal.
Reimplemented in osg::ImageSequence.
bool osg::Image::valid | ( | ) | const [inline] |
Return true if the Image represent a valid and usable imagery.
Referenced by osgTerrain::ContourLayer::getImage(), and osgTerrain::ProxyLayer::getImage().
AllocationMode osg::Image::_allocationMode [protected] |
ref_ptr<PixelBufferObject> osg::Image::_bufferObject [protected] |
Reimplemented from osg::BufferData.
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] |
Origin osg::Image::_origin [protected] |
unsigned int osg::Image::_packing [protected] |
float osg::Image::_pixelAspectRatio [protected] |
GLenum osg::Image::_pixelFormat [protected] |
int osg::Image::_r [protected] |
int osg::Image::_s [protected] |
int osg::Image::_t [protected] |
WriteHint osg::Image::_writeHint [protected] |