From 2186d5f3f95cd74a070a490d899291648d58667a Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Sun, 1 Jul 2001 00:55:22 +0000 Subject: Initial revision --- src/win95/ilbm_ext.hpp | 117 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 src/win95/ilbm_ext.hpp (limited to 'src/win95/ilbm_ext.hpp') diff --git a/src/win95/ilbm_ext.hpp b/src/win95/ilbm_ext.hpp new file mode 100644 index 0000000..3aefce7 --- /dev/null +++ b/src/win95/ilbm_ext.hpp @@ -0,0 +1,117 @@ +#ifndef _INCLUDED_ILBM_EXT_HPP_ +#define _INCLUDED_ILBM_EXT_HPP_ + +#include "iff.hpp" +#include "iff_ILBM.hpp" + +namespace IFF +{ + class IlbmTranChunk : public Chunk + { + public: + enum + { + TRANS_NONE = 0, + TRANS_TOPLEFT = 1, + TRANS_BOTTOMLEFT = 2, + TRANS_TOPRIGHT = 3, + TRANS_BOTTOMRIGHT = 4, + TRANS_XY = 5, + TRANS_RGB = 6 + }; + UBYTE eTransType; + UINT16 xPos; + UINT16 yPos; + RGBTriple rgb; + + IlbmTranChunk() { m_idCk = "TRAN"; } + + protected: + virtual void Serialize(Archive * pArchv); + }; + + class IlbmAlphChunk : public IlbmBodyChunk // uses same encoding methodology + { + public: + UINT16 width; + UINT16 height; + UBYTE nBitPlanes; + UBYTE eCompression; + + IlbmAlphChunk() + { m_idCk = "ALPH"; } + + protected: + virtual void Serialize(Archive * pArchv); + + virtual bool GetHeaderInfo() const; + }; + + class IlbmS3tcChunk : public Chunk + { + public: + IlbmS3tcChunk(); + virtual ~IlbmS3tcChunk(); + + + + UINT32 flags; // none at the moment + UINT32 fourCC; //the fourcc code 'DXT1' - 'DXT5' + + UINT16 redWeight; //weighting values used in compression + UINT16 blueWeight; + UINT16 greenWeight; + + UINT16 width; + UINT16 height; + + UINT32 dataSize; + UBYTE* pData; //the compressed texture itself + + protected: + virtual void Serialize(Archive * pArchv); + }; + + + class MipmContChunk : public Chunk + { + public: + enum + { + FILTER_DEFAULT = 0, + FILTER_BOX = 1, + FILTER_TRIANGLE = 2, + FILTER_BELL = 3, + FILTER_BSPLINE = 4, + FILTER_LANCZOS3 = 5, + FILTER_MITCHELL = 6 + }; + UBYTE nMipMaps; + UBYTE eFilter; + + MipmContChunk() + { m_idCk = "CONT"; } + + protected: + virtual void Serialize(Archive * pArchv); + }; + + class MipmFlagChunk : public Chunk + { + public: + enum + { + FLAG_MANUAL_MIPS = 0x00000001,//some of the mip maps have been set by hand + }; + UINT32 flags; + + MipmFlagChunk() + { m_idCk = "FLAG"; flags = 0;} + + protected: + virtual void Serialize(Archive * pArchv); + }; + +} + +#endif -- cgit v1.3