Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef TIMAGEINFO_H
Toshihiro Shimizu 890ddd
#define TIMAGEINFO_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#undef DVAPI
Toshihiro Shimizu 890ddd
#undef DVVAR
Toshihiro Shimizu 890ddd
#ifdef TNZCORE_EXPORTS
Toshihiro Shimizu 890ddd
#define DVAPI DV_EXPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_EXPORT_VAR
Toshihiro Shimizu 890ddd
#else
Toshihiro Shimizu 890ddd
#define DVAPI DV_IMPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_IMPORT_VAR
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//    Forward declarations
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TPropertyGroup;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//*************************************************************************
Toshihiro Shimizu 890ddd
//    TImageInfo  class
Toshihiro Shimizu 890ddd
//*************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
/*!
Toshihiro Shimizu 890ddd
  \brief    Stores description data about a generic image.
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
  \todo     Stores useless/redundant/improper data which should be moved or
Toshihiro Shimizu 890ddd
            removed.
Toshihiro Shimizu 890ddd
*/
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
class DVAPI TImageInfo {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  // NOTE: Fields ordered by type size - minimizes padding
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  double m_dpix,    //!< Horizontal image dpi.
Shinya Kitaoka 120a6e
      m_dpiy,       //!< Vertical image dpi.
Shinya Kitaoka 120a6e
      m_frameRate;  //!< Movie frame rate. \deprecated Should not be here. An
Shinya Kitaoka 38fd86
                    //! image has \a no frame rate!
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  TPropertyGroup *m_properties;  //!< Format-specific image data.
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  int m_lx,              //!< Image width.
Shinya Kitaoka 120a6e
      m_ly,              //!< Image height.
Shinya Kitaoka 120a6e
      m_x0,              //!< Image contents rect's left coordinate.
Shinya Kitaoka 120a6e
      m_y0,              //!< Image contents rect's bottom coordinate.
Shinya Kitaoka 120a6e
      m_x1,              //!< Image contents rect's right coordinate.
Shinya Kitaoka 120a6e
      m_y1,              //!< Image contents rect's top coordinate.
Shinya Kitaoka 120a6e
      m_samplePerPixel,  //!< Number of samples (channels) per pixel.
Shinya Kitaoka 120a6e
      m_bitsPerSample,   //!< Number of bits per sample (channel).
Shinya Kitaoka 120a6e
      m_fileSize;  //!< Total size (in bytes) of the image file. \deprecated
Shinya Kitaoka 38fd86
                   //! Possibly useless.
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  bool m_valid;  //!< \a Deprecated. \deprecated Just... wrong.
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TImageInfo()
Shinya Kitaoka 120a6e
      : m_dpix(0)
Shinya Kitaoka 120a6e
      , m_dpiy(0)
Shinya Kitaoka 120a6e
      , m_frameRate(12)
Shinya Kitaoka 120a6e
      , m_properties(0)
Shinya Kitaoka 120a6e
      , m_lx(0)
Shinya Kitaoka 120a6e
      , m_ly(0)
Shinya Kitaoka 120a6e
      , m_x0(0)
Shinya Kitaoka 120a6e
      , m_y0(0)
Shinya Kitaoka 120a6e
      , m_x1(-1)
Shinya Kitaoka 120a6e
      , m_y1(-1)
Shinya Kitaoka 120a6e
      , m_samplePerPixel(0)
Shinya Kitaoka 120a6e
      , m_bitsPerSample(8)
Shinya Kitaoka 120a6e
      , m_fileSize(0)
Shinya Kitaoka 120a6e
      , m_valid(false) {}
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  TImageInfo(int lx, int ly)
Shinya Kitaoka 120a6e
      : m_dpix(0)
Shinya Kitaoka 120a6e
      , m_dpiy(0)
Shinya Kitaoka 120a6e
      , m_frameRate(12)
Shinya Kitaoka 120a6e
      , m_properties(0)
Shinya Kitaoka 120a6e
      , m_lx(lx)
Shinya Kitaoka 120a6e
      , m_ly(ly)
Shinya Kitaoka 120a6e
      , m_x0(0)
Shinya Kitaoka 120a6e
      , m_y0(0)
Shinya Kitaoka 120a6e
      , m_x1(-1)
Shinya Kitaoka 120a6e
      , m_y1(-1)
Shinya Kitaoka 120a6e
      , m_samplePerPixel(0)
Shinya Kitaoka 120a6e
      , m_bitsPerSample(8)
Shinya Kitaoka 120a6e
      , m_fileSize(0)
Shinya Kitaoka 120a6e
      , m_valid(false) {}
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#endif  // TIMAGEINFO_H