home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 275 / DPCS0111DVD.ISO / Toolkit / Audio-Visual / VirtualDub / Source / VirtualDub-1.9.10-src.7z / src / Kasumi / h / uberblit.h < prev   
Encoding:
C/C++ Source or Header  |  2009-09-14  |  2.5 KB  |  84 lines

  1. #ifndef f_VD2_KASUMI_UBERBLIT_H
  2. #define f_VD2_KASUMI_UBERBLIT_H
  3.  
  4. #include <vd2/system/vdtypes.h>
  5. #include <vd2/system/vdstl.h>
  6. #include <vd2/system/vectors.h>
  7. #include <vd2/Kasumi/blitter.h>
  8.  
  9. struct VDPixmap;
  10.  
  11. enum VDPixmapFormatToken {
  12.     kVDPixType_1            = 0x00000001,
  13.     kVDPixType_2            = 0x00000002,
  14.     kVDPixType_4            = 0x00000003,
  15.     kVDPixType_8            = 0x00000004,
  16.     kVDPixType_555_LE        = 0x00000005,
  17.     kVDPixType_565_LE        = 0x00000006,
  18.     kVDPixType_1555_LE        = 0x00000007,
  19.     kVDPixType_888            = 0x00000008,
  20.     kVDPixType_8888            = 0x00000009,
  21.     kVDPixType_16F_LE        = 0x0000000A,
  22.     kVDPixType_16Fx4_LE        = 0x0000000B,
  23.     kVDPixType_16F_16F_16F_LE    = 0x0000000C,
  24.     kVDPixType_32F_LE        = 0x0000000D,
  25.     kVDPixType_32Fx4_LE        = 0x0000000E,
  26.     kVDPixType_32F_32F_32F_LE    = 0x0000000F,
  27.     kVDPixType_8_8_8        = 0x00000010,
  28.     kVDPixType_B8G8_R8G8    = 0x00000011,        // UYVY
  29.     kVDPixType_G8B8_G8R8    = 0x00000012,        // YUYV
  30.     kVDPixType_V210            = 0x00000013,        // v210 (4:2:2 10 bit)
  31.     kVDPixType_8_B8R8        = 0x00000014,        // NV12
  32.     kVDPixType_B8R8            = 0x00000015,
  33.     kVDPixType_Mask            = 0x0000003F,
  34.  
  35.     kVDPixSamp_444            = 0x00000040,
  36.     kVDPixSamp_422            = 0x00000080,
  37.     kVDPixSamp_422_JPEG        = 0x000000C0,
  38.     kVDPixSamp_420_MPEG2    = 0x00000100,
  39.     kVDPixSamp_420_MPEG2INT    = 0x00000140,
  40.     kVDPixSamp_420_MPEG1    = 0x00000180,
  41.     kVDPixSamp_420_DVPAL    = 0x000001C0,
  42.     kVDPixSamp_411            = 0x00000200,
  43.     kVDPixSamp_410            = 0x00000240,
  44.     kVDPixSamp_Mask            = 0x00000FC0,
  45.     kVDPixSamp_Bits            = 6,
  46.  
  47.     kVDPixSpace_Pal            = 0x00001000,
  48.     kVDPixSpace_RGB            = 0x00002000,
  49.     kVDPixSpace_BGR            = 0x00003000,
  50.     kVDPixSpace_BGRA        = 0x00004000,
  51.     kVDPixSpace_Y_601        = 0x00005000,
  52.     kVDPixSpace_Y_709        = 0x00006000,
  53.     kVDPixSpace_YCC_601        = 0x00007000,
  54.     kVDPixSpace_YCC_709        = 0x00008000,
  55.     kVDPixSpace_YCC_JPEG    = 0x00009000,
  56.     kVDPixSpace_Mask        = 0x0003F000,
  57. };
  58.  
  59. struct VDPixmapSamplingInfo {
  60.     int        mCXOffset16;
  61.     int        mCrYOffset16;
  62.     int        mCbYOffset16;
  63.     int        mCXBits;
  64.     int        mCYBits;
  65. };
  66.  
  67. uint32 VDPixmapGetFormatTokenFromFormat(int format);
  68. const VDPixmapSamplingInfo& VDPixmapGetSamplingInfo(uint32 samplingToken);
  69.  
  70. class IVDPixmapGen {
  71. public:
  72.     virtual ~IVDPixmapGen() {}
  73.     virtual void AddWindowRequest(int minY, int maxY) = 0;
  74.     virtual void Start() = 0;
  75.     virtual sint32 GetWidth(int srcIndex) const = 0;
  76.     virtual sint32 GetHeight(int srcIndex) const = 0;
  77.     virtual bool IsStateful() const = 0;
  78.     virtual uint32 GetType(uint32 output) const = 0;
  79.     virtual const void *GetRow(sint32 y, uint32 output) = 0;
  80.     virtual void ProcessRow(void *dst, sint32 y) = 0;
  81. };
  82.  
  83. #endif
  84.