mirror of
https://github.com/love2d/megasource.git
synced 2026-08-17 19:24:09 +02:00
Add DevIL 1.7.8.
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// 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
|
||||
Reference in New Issue
Block a user