Blob Blame Raw


#ifndef TIMAGEINFO_H
#define TIMAGEINFO_H

#undef DVAPI
#undef DVVAR
#ifdef TNZCORE_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif

//================================================

//    Forward declarations

class TPropertyGroup;

//================================================

//*************************************************************************
//    TImageInfo  class
//*************************************************************************

/*!
  \brief    Stores description data about a generic image.

  \todo     Stores useless/redundant/improper data which should be moved or
            removed.
*/

class DVAPI TImageInfo
{
public:
	// NOTE: Fields ordered by type size - minimizes padding

	double m_dpix,   //!< Horizontal image dpi.
		m_dpiy,		 //!< Vertical image dpi.
		m_frameRate; //!< Movie frame rate. \deprecated Should not be here. An image has \a no frame rate!

	TPropertyGroup *m_properties; //!< Format-specific image data.

	int m_lx,			  //!< Image width.
		m_ly,			  //!< Image height.
		m_x0,			  //!< Image contents rect's left coordinate.
		m_y0,			  //!< Image contents rect's bottom coordinate.
		m_x1,			  //!< Image contents rect's right coordinate.
		m_y1,			  //!< Image contents rect's top coordinate.
		m_samplePerPixel, //!< Number of samples (channels) per pixel.
		m_bitsPerSample,  //!< Number of bits per sample (channel).
		m_fileSize;		  //!< Total size (in bytes) of the image file. \deprecated Possibly useless.

	bool m_valid; //!< \a Deprecated. \deprecated Just... wrong.

public:
	TImageInfo()
		: m_dpix(0), m_dpiy(0), m_frameRate(12), m_properties(0), m_lx(0), m_ly(0), m_x0(0), m_y0(0), m_x1(-1), m_y1(-1), m_samplePerPixel(0), m_bitsPerSample(8), m_fileSize(0), m_valid(false) {}

	TImageInfo(int lx, int ly)
		: m_dpix(0), m_dpiy(0), m_frameRate(12), m_properties(0), m_lx(lx), m_ly(ly), m_x0(0), m_y0(0), m_x1(-1), m_y1(-1), m_samplePerPixel(0), m_bitsPerSample(8), m_fileSize(0), m_valid(false) {}
};

#endif // TIMAGEINFO_H