| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- //-----------------------------------------------------------------------------
- //
- // ImageLib Sources
- // Copyright (C) 2000-2008 by Denton Woods
- // Last modified: 08/29/2008
- //
- // Filename: src-IL/include/il_exr.h
- //
- // Description: Reads from an OpenEXR (.exr) file.
- //
- //-----------------------------------------------------------------------------
- #ifndef EXR_H
- #define EXR_H
- #include "il_internal.h"
- #include <ImfIO.h>
- //using namespace Imf; // Using this leads to errors with Microsoft's IStream.
- // So it is better to just specify the namespace explicitly.
- typedef struct EXRHEAD
- {
- ILuint MagicNumber; // File signature (0x76, 0x2f, 0x31, 0x01)
- ILuint Version; // Treated as two bitfields
- } IL_PACKSTRUCT EXRHEAD;
- //@TODO: Should I just do these as enums?
- #define EXR_UINT 0
- #define EXR_HALF 1
- #define EXR_FLOAT 2
- #define EXR_NO_COMPRESSION 0
- #define EXR_RLE_COMPRESSION 1
- #define EXR_ZIPS_COMPRESSION 2
- #define EXR_ZIP_COMPRESSION 3
- #define EXR_PIZ_COMPRESSION 4
- #define EXR_PXR24_COMPRESSION 5
- #define EXR_B44_COMPRESSION 6
- #define EXR_B44A_COMPRESSION 7
- #ifdef __cplusplus
- extern "C" {
- #endif
- ILboolean iIsValidExr();
- ILboolean iCheckExr(EXRHEAD *Header);
- ILboolean iLoadExrInternal();
- ILboolean iSaveExrInternal();
- #ifdef __cplusplus
- }
- #endif
- class ilIStream : public Imf::IStream
- {
- public:
- ilIStream(/*ILHANDLE Handle*/);
- virtual bool read (char c[/*n*/], int n);
- // I don't think I need this one, since we are taking care of the file handles ourselves.
- //virtual char * readMemoryMapped (int n);
- virtual Imf::Int64 tellg ();
- virtual void seekg (Imf::Int64 Pos);
- virtual void clear ();
- protected:
- private:
- };
- class ilOStream : public Imf::OStream
- {
- public:
- ilOStream(/*ILHANDLE Handle*/);
- virtual void write (const char c[/*n*/], int n);
- // I don't think I need this one, since we are taking care of the file handles ourselves.
- //virtual char * readMemoryMapped (int n);
- virtual Imf::Int64 tellp ();
- virtual void seekp (Imf::Int64 Pos);
- protected:
- private:
- };
- #endif//EXR_H
|