mirror of
https://github.com/love2d/love-android.git
synced 2026-08-16 00:02:31 +02:00
91 lines
2.0 KiB
C++
91 lines
2.0 KiB
C++
//-----------------------------------------------------------------------------
|
|
//
|
|
// 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
|