mirror of
https://github.com/etlegacy/EasyGen.git
synced 2024-11-10 06:42:16 +00:00
953 lines
15 KiB
C++
953 lines
15 KiB
C++
|
#ifndef DEVIL_CPP_WRAPPER_HPP
|
||
|
#define DEVIL_CPP_WRAPPER_HPP
|
||
|
|
||
|
#include <IL/ilut.h> // Probably only have to #include this one
|
||
|
|
||
|
class ilImage
|
||
|
{
|
||
|
public:
|
||
|
ilImage();
|
||
|
ilImage(ILconst_string);
|
||
|
ilImage(const ilImage &);
|
||
|
virtual ~ilImage();
|
||
|
|
||
|
ILboolean Load(ILconst_string);
|
||
|
ILboolean Load(ILconst_string, ILenum);
|
||
|
ILboolean Save(ILconst_string);
|
||
|
ILboolean Save(ILconst_string, ILenum);
|
||
|
|
||
|
// ImageLib functions
|
||
|
ILboolean ActiveImage(ILuint);
|
||
|
ILboolean ActiveLayer(ILuint);
|
||
|
ILboolean ActiveMipmap(ILuint);
|
||
|
ILboolean Clear(void);
|
||
|
void ClearColour(ILclampf, ILclampf, ILclampf, ILclampf);
|
||
|
ILboolean Convert(ILenum);
|
||
|
ILboolean Copy(ILuint);
|
||
|
ILboolean Default(void);
|
||
|
ILboolean Flip(void);
|
||
|
ILboolean SwapColours(void);
|
||
|
ILboolean Resize(ILuint, ILuint, ILuint);
|
||
|
ILboolean TexImage(ILuint, ILuint, ILuint, ILubyte, ILenum, ILenum, void*);
|
||
|
|
||
|
// Image handling
|
||
|
void Bind(void) const;
|
||
|
void Bind(ILuint);
|
||
|
void Close(void) { this->Delete(); }
|
||
|
void Delete(void);
|
||
|
void iGenBind();
|
||
|
ILenum PaletteAlphaIndex();
|
||
|
|
||
|
// Image characteristics
|
||
|
ILuint Width(void);
|
||
|
ILuint Height(void);
|
||
|
ILuint Depth(void);
|
||
|
ILubyte Bpp(void);
|
||
|
ILubyte Bitpp(void);
|
||
|
ILenum PaletteType(void);
|
||
|
ILenum Format(void);
|
||
|
ILenum Type(void);
|
||
|
ILuint NumImages(void);
|
||
|
ILuint NumMipmaps(void);
|
||
|
ILuint GetId(void) const;
|
||
|
ILenum GetOrigin(void);
|
||
|
ILubyte *GetData(void);
|
||
|
ILubyte *GetPalette(void);
|
||
|
|
||
|
// Rendering
|
||
|
ILuint BindImage(void);
|
||
|
ILuint BindImage(ILenum);
|
||
|
|
||
|
// Operators
|
||
|
ilImage& operator = (ILuint);
|
||
|
ilImage& operator = (const ilImage &);
|
||
|
|
||
|
protected:
|
||
|
ILuint Id;
|
||
|
|
||
|
private:
|
||
|
static int ilStartUp();
|
||
|
static ILboolean ilStartedUp;
|
||
|
};
|
||
|
|
||
|
// ensure that init is called exactly once
|
||
|
int ilImage::ilStartUp()
|
||
|
{
|
||
|
ilInit();
|
||
|
iluInit();
|
||
|
//ilutInit();
|
||
|
return true;
|
||
|
}
|
||
|
ILboolean ilImage::ilStartedUp = ilStartUp();
|
||
|
|
||
|
class ilFilters
|
||
|
{
|
||
|
public:
|
||
|
static ILboolean Alienify(ilImage &);
|
||
|
static ILboolean BlurAvg(ilImage &, ILuint Iter);
|
||
|
static ILboolean BlurGaussian(ilImage &, ILuint Iter);
|
||
|
static ILboolean Contrast(ilImage &, ILfloat Contrast);
|
||
|
static ILboolean EdgeDetectE(ilImage &);
|
||
|
static ILboolean EdgeDetectP(ilImage &);
|
||
|
static ILboolean EdgeDetectS(ilImage &);
|
||
|
static ILboolean Emboss(ilImage &);
|
||
|
static ILboolean Gamma(ilImage &, ILfloat Gamma);
|
||
|
static ILboolean Negative(ilImage &);
|
||
|
static ILboolean Noisify(ilImage &, ILubyte Factor);
|
||
|
static ILboolean Pixelize(ilImage &, ILuint PixSize);
|
||
|
static ILboolean Saturate(ilImage &, ILfloat Saturation);
|
||
|
static ILboolean Saturate(ilImage &, ILfloat r, ILfloat g, ILfloat b, ILfloat Saturation);
|
||
|
static ILboolean ScaleColours(ilImage &, ILfloat r, ILfloat g, ILfloat b);
|
||
|
static ILboolean Sharpen(ilImage &, ILfloat Factor, ILuint Iter);
|
||
|
};
|
||
|
|
||
|
#ifdef ILUT_USE_OPENGL
|
||
|
class ilOgl
|
||
|
{
|
||
|
public:
|
||
|
static void Init(void);
|
||
|
static GLuint BindTex(ilImage &);
|
||
|
static ILboolean Upload(ilImage &, ILuint);
|
||
|
static GLuint Mipmap(ilImage &);
|
||
|
static ILboolean Screen(void);
|
||
|
static ILboolean Screenie(void);
|
||
|
};
|
||
|
#endif//ILUT_USE_OPENGL
|
||
|
|
||
|
|
||
|
#ifdef ILUT_USE_ALLEGRO
|
||
|
class ilAlleg
|
||
|
{
|
||
|
public:
|
||
|
static void Init(void);
|
||
|
static BITMAP *Convert(ilImage &);
|
||
|
};
|
||
|
#endif//ILUT_USE_ALLEGRO
|
||
|
|
||
|
|
||
|
#ifdef ILUT_USE_WIN32
|
||
|
class ilWin32
|
||
|
{
|
||
|
public:
|
||
|
static void Init(void);
|
||
|
static HBITMAP Convert(ilImage &);
|
||
|
static ILboolean GetClipboard(ilImage &);
|
||
|
static void GetInfo(ilImage &, BITMAPINFO *Info);
|
||
|
static ILubyte *GetPadData(ilImage &);
|
||
|
static HPALETTE GetPal(ilImage &);
|
||
|
static ILboolean GetResource(ilImage &, HINSTANCE hInst, ILint ID, char *ResourceType);
|
||
|
static ILboolean GetResource(ilImage &, HINSTANCE hInst, ILint ID, char *ResourceType, ILenum Type);
|
||
|
static ILboolean SetClipboard(ilImage &);
|
||
|
};
|
||
|
#endif//ILUT_USE_WIN32
|
||
|
|
||
|
|
||
|
class ilValidate
|
||
|
{
|
||
|
public:
|
||
|
static ILboolean Valid(ILenum, ILconst_string);
|
||
|
static ILboolean Valid(ILenum, FILE *);
|
||
|
static ILboolean Valid(ILenum, void *, ILuint);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
|
||
|
};
|
||
|
|
||
|
class ilState
|
||
|
{
|
||
|
public:
|
||
|
static ILboolean Disable(ILenum);
|
||
|
static ILboolean Enable(ILenum);
|
||
|
static void Get(ILenum, ILboolean &);
|
||
|
static void Get(ILenum, ILint &);
|
||
|
static ILboolean GetBool(ILenum);
|
||
|
static ILint GetInt(ILenum);
|
||
|
static const char *GetString(ILenum);
|
||
|
static ILboolean IsDisabled(ILenum);
|
||
|
static ILboolean IsEnabled(ILenum);
|
||
|
static ILboolean Origin(ILenum);
|
||
|
static void Pop(void);
|
||
|
static void Push(ILuint);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
class ilError
|
||
|
{
|
||
|
public:
|
||
|
static void Check(void (*Callback)(const char*));
|
||
|
static void Check(void (*Callback)(ILenum));
|
||
|
static ILenum Get(void);
|
||
|
static const char *String(void);
|
||
|
static const char *String(ILenum);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// ILIMAGE
|
||
|
//
|
||
|
ilImage::ilImage()
|
||
|
{
|
||
|
this->Id = 0;
|
||
|
//this->iStartUp(); // This was commented out, but it needs to be somewhere...
|
||
|
this->iGenBind();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
ilImage::ilImage(ILconst_string FileName)
|
||
|
{
|
||
|
this->Id = 0;
|
||
|
//this->iStartUp(); // This was commented out, but it needs to be somewhere...
|
||
|
this->iGenBind();
|
||
|
ilLoadImage(FileName);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
ilImage::ilImage(const ilImage &Image)
|
||
|
{
|
||
|
this->Id = 0;
|
||
|
// this->iStartUp();
|
||
|
this->iGenBind();
|
||
|
*this = Image;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
ilImage::~ilImage()
|
||
|
{
|
||
|
if (this->Id)
|
||
|
ilDeleteImages(1, &this->Id);
|
||
|
this->Id = 0;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Load(ILconst_string FileName)
|
||
|
{
|
||
|
this->iGenBind();
|
||
|
return ilLoadImage(FileName);
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Load(ILconst_string FileName, ILenum Type)
|
||
|
{
|
||
|
this->iGenBind();
|
||
|
return ilLoad(Type, FileName);
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Save(ILconst_string FileName)
|
||
|
{
|
||
|
this->iGenBind();
|
||
|
return ilSaveImage(FileName);
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Save(ILconst_string FileName, ILenum Type)
|
||
|
{
|
||
|
this->iGenBind();
|
||
|
return ilSave(Type, FileName);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
//
|
||
|
// ImageLib functions
|
||
|
//
|
||
|
ILboolean ilImage::ActiveImage(ILuint Number)
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilActiveImage(Number);
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::ActiveLayer(ILuint Number)
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilActiveLayer(Number);
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::ActiveMipmap(ILuint Number)
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilActiveMipmap(Number);
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Clear()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilClearImage();
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
void ilImage::ClearColour(ILclampf Red, ILclampf Green, ILclampf Blue, ILclampf Alpha)
|
||
|
{
|
||
|
ilClearColour(Red, Green, Blue, Alpha);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Convert(ILenum NewFormat)
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilConvertImage(NewFormat, IL_UNSIGNED_BYTE);
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Copy(ILuint Src)
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilCopyImage(Src);
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Default()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilDefaultImage();
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Flip()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return iluFlipImage();
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::SwapColours()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return iluSwapColours();
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::Resize(ILuint Width, ILuint Height, ILuint Depth)
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return iluScale(Width, Height, Depth);
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilImage::TexImage(ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data)
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilTexImage(Width, Height, Depth, Bpp, Format, Type, Data);
|
||
|
}
|
||
|
return IL_FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
//
|
||
|
// Image handling
|
||
|
//
|
||
|
void ilImage::Bind() const
|
||
|
{
|
||
|
if (this->Id)
|
||
|
ilBindImage(this->Id);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// Note: Behaviour may be changed!
|
||
|
void ilImage::Bind(ILuint Image)
|
||
|
{
|
||
|
if (this->Id == Image)
|
||
|
return;
|
||
|
this->Delete(); // Should we delete it?
|
||
|
this->Id = Image;
|
||
|
ilBindImage(this->Id);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
void ilImage::Delete()
|
||
|
{
|
||
|
if (this->Id == 0)
|
||
|
return;
|
||
|
ilDeleteImages(1, &this->Id);
|
||
|
this->Id = 0;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//
|
||
|
// Image characteristics
|
||
|
//
|
||
|
ILuint ilImage::Width()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_IMAGE_WIDTH);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
ILuint ilImage::Height()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_IMAGE_HEIGHT);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILuint ilImage::Depth()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_IMAGE_DEPTH);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILubyte ilImage::Bpp()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILubyte ilImage::Bitpp()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_IMAGE_BITS_PER_PIXEL);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILenum ilImage::Format()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_IMAGE_FORMAT);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILenum ilImage::PaletteType()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_PALETTE_TYPE);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILenum ilImage::PaletteAlphaIndex()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_PNG_ALPHA_INDEX);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILenum ilImage::Type()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_IMAGE_TYPE);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILenum ilImage::NumImages()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_NUM_IMAGES);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILenum ilImage::NumMipmaps()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetInteger(IL_NUM_MIPMAPS);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILuint ilImage::GetId() const
|
||
|
{
|
||
|
return this->Id;
|
||
|
}
|
||
|
|
||
|
ILenum ilImage::GetOrigin(void)
|
||
|
{
|
||
|
ILinfo Info;
|
||
|
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
iluGetImageInfo(&Info);
|
||
|
return Info.Origin;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILubyte* ilImage::GetData()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetData();
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
ILubyte* ilImage::GetPalette()
|
||
|
{
|
||
|
if (this->Id) {
|
||
|
this->Bind();
|
||
|
return ilGetPalette();
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Private members
|
||
|
//
|
||
|
/*void ilImage::iStartUp()
|
||
|
{
|
||
|
ilInit();
|
||
|
iluInit();
|
||
|
ilutInit();
|
||
|
return;
|
||
|
}*/
|
||
|
|
||
|
void ilImage::iGenBind()
|
||
|
{
|
||
|
if (this->Id == 0) {
|
||
|
ilGenImages(1, &this->Id);
|
||
|
}
|
||
|
ilBindImage(this->Id);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Operators
|
||
|
//
|
||
|
ilImage& ilImage::operator = (ILuint Image)
|
||
|
{
|
||
|
if (this->Id == 0)
|
||
|
this->Id = Image;
|
||
|
else {
|
||
|
this->Bind();
|
||
|
ilCopyImage(Image);
|
||
|
}
|
||
|
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
|
ilImage& ilImage::operator = (const ilImage &Image)
|
||
|
{
|
||
|
if (Id == 0)
|
||
|
Id = Image.GetId();
|
||
|
else {
|
||
|
Bind();
|
||
|
ilCopyImage(Image.GetId());
|
||
|
}
|
||
|
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// ILFILTERS
|
||
|
//
|
||
|
ILboolean ilFilters::Alienify(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluAlienify();
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::BlurAvg(ilImage &Image, ILuint Iter)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluBlurAvg(Iter);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::BlurGaussian(ilImage &Image, ILuint Iter)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluBlurGaussian(Iter);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Contrast(ilImage &Image, ILfloat Contrast)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluContrast(Contrast);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::EdgeDetectE(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluEdgeDetectP();
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::EdgeDetectP(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluEdgeDetectP();
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::EdgeDetectS(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluEdgeDetectS();
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Emboss(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluEmboss();
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Gamma(ilImage &Image, ILfloat Gamma)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluGammaCorrect(Gamma);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Negative(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluNegative();
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Noisify(ilImage &Image, ILubyte Factor)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluNoisify(Factor);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Pixelize(ilImage &Image, ILuint PixSize)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluPixelize(PixSize);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Saturate(ilImage &Image, ILfloat Saturation)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluSaturate1f(Saturation);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::Saturate(ilImage &Image, ILfloat r, ILfloat g, ILfloat b, ILfloat Saturation)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluSaturate4f(r, g, b, Saturation);
|
||
|
}
|
||
|
|
||
|
ILboolean ilFilters::ScaleColours(ilImage &Image, ILfloat r, ILfloat g, ILfloat b)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluScaleColours(r, g, b);
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilFilters::Sharpen(ilImage &Image, ILfloat Factor, ILuint Iter)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return iluSharpen(Factor, Iter);
|
||
|
}
|
||
|
|
||
|
|
||
|
//
|
||
|
// ILOPENGL
|
||
|
//
|
||
|
#ifdef ILUT_USE_OPENGL
|
||
|
void ilOgl::Init()
|
||
|
{
|
||
|
ilutRenderer(ILUT_OPENGL);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
GLuint ilOgl::BindTex(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutGLBindTexImage();
|
||
|
}
|
||
|
|
||
|
ILboolean ilOgl::Upload(ilImage &Image, ILuint Level)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutGLTexImage(Level);
|
||
|
}
|
||
|
|
||
|
|
||
|
GLuint ilOgl::Mipmap(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutGLBuildMipmaps();
|
||
|
}
|
||
|
|
||
|
ILboolean ilOgl::Screen()
|
||
|
{
|
||
|
return ilutGLScreen();
|
||
|
}
|
||
|
|
||
|
|
||
|
ILboolean ilOgl::Screenie()
|
||
|
{
|
||
|
return ilutGLScreenie();
|
||
|
}
|
||
|
#endif//ILUT_USE_OPENGL
|
||
|
|
||
|
//
|
||
|
// ILALLEGRO
|
||
|
//
|
||
|
#ifdef ILUT_USE_ALLEGRO
|
||
|
void ilAlleg::Init()
|
||
|
{
|
||
|
ilutRenderer(IL_ALLEGRO);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
BITMAP *ilAlleg::Convert(ilImage &Image, PALETTE Pal)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutConvertToAlleg(Pal);
|
||
|
}
|
||
|
#endif//ILUT_USE_ALLEGRO
|
||
|
|
||
|
//
|
||
|
// ILWIN32
|
||
|
//
|
||
|
#ifdef ILUT_USE_WIN32
|
||
|
void ilWin32::Init()
|
||
|
{
|
||
|
ilutRenderer(ILUT_WIN32);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
HBITMAP ilWin32::Convert(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutConvertToHBitmap(GetDC(NULL));
|
||
|
}
|
||
|
|
||
|
ILboolean ilWin32::GetClipboard(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutGetWinClipboard();
|
||
|
}
|
||
|
|
||
|
void ilWin32::GetInfo(ilImage &Image, BITMAPINFO *Info)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
ilutGetBmpInfo(Info);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
ILubyte* ilWin32::GetPadData(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutGetPaddedData();
|
||
|
}
|
||
|
|
||
|
HPALETTE ilWin32::GetPal(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutGetHPal();
|
||
|
}
|
||
|
|
||
|
ILboolean ilWin32::GetResource(ilImage &Image, HINSTANCE hInst, ILint ID, char *ResourceType)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutLoadResource(hInst, ID, ResourceType, IL_TYPE_UNKNOWN);
|
||
|
}
|
||
|
|
||
|
ILboolean ilWin32::GetResource(ilImage &Image, HINSTANCE hInst, ILint ID, char *ResourceType, ILenum Type)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutLoadResource(hInst, ID, ResourceType, Type);
|
||
|
}
|
||
|
|
||
|
ILboolean ilWin32::SetClipboard(ilImage &Image)
|
||
|
{
|
||
|
Image.Bind();
|
||
|
return ilutSetWinClipboard();
|
||
|
}
|
||
|
#endif//ILUT_USE_WIN32
|
||
|
|
||
|
//
|
||
|
// ILVALIDATE
|
||
|
//
|
||
|
ILboolean ilValidate::Valid(ILenum Type, ILconst_string FileName)
|
||
|
{
|
||
|
return ilIsValid(Type, FileName);
|
||
|
}
|
||
|
|
||
|
ILboolean ilValidate::Valid(ILenum Type, FILE *File)
|
||
|
{
|
||
|
return ilIsValidF(Type, File);
|
||
|
}
|
||
|
|
||
|
ILboolean ilValidate::Valid(ILenum Type, void *Lump, ILuint Size)
|
||
|
{
|
||
|
return ilIsValidL(Type, Lump, Size);
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// ILSTATE
|
||
|
//
|
||
|
ILboolean ilState::Disable(ILenum State)
|
||
|
{
|
||
|
return ilDisable(State);
|
||
|
}
|
||
|
|
||
|
ILboolean ilState::Enable(ILenum State)
|
||
|
{
|
||
|
return ilEnable(State);
|
||
|
}
|
||
|
|
||
|
void ilState::Get(ILenum Mode, ILboolean &Param)
|
||
|
{
|
||
|
ilGetBooleanv(Mode, &Param);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
void ilState::Get(ILenum Mode, ILint &Param)
|
||
|
{
|
||
|
ilGetIntegerv(Mode, &Param);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
ILboolean ilState::GetBool(ILenum Mode)
|
||
|
{
|
||
|
return ilGetBoolean(Mode);
|
||
|
}
|
||
|
|
||
|
ILint ilState::GetInt(ILenum Mode)
|
||
|
{
|
||
|
return ilGetInteger(Mode);
|
||
|
}
|
||
|
|
||
|
const char *ilState::GetString(ILenum StringName)
|
||
|
{
|
||
|
return ilGetString(StringName);
|
||
|
}
|
||
|
|
||
|
ILboolean ilState::IsDisabled(ILenum Mode)
|
||
|
{
|
||
|
return ilIsDisabled(Mode);
|
||
|
}
|
||
|
|
||
|
ILboolean ilState::IsEnabled(ILenum Mode)
|
||
|
{
|
||
|
return ilIsEnabled(Mode);
|
||
|
}
|
||
|
|
||
|
ILboolean ilState::Origin(ILenum Mode)
|
||
|
{
|
||
|
return ilOriginFunc(Mode);
|
||
|
}
|
||
|
|
||
|
void ilState::Pop()
|
||
|
{
|
||
|
ilPopAttrib();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
void ilState::Push(ILuint Bits = IL_ALL_ATTRIB_BITS)
|
||
|
{
|
||
|
ilPushAttrib(Bits);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// ILERROR
|
||
|
//
|
||
|
void ilError::Check(void (*Callback)(const char*))
|
||
|
{
|
||
|
static ILenum Error;
|
||
|
|
||
|
while ((Error = ilGetError()) != IL_NO_ERROR) {
|
||
|
Callback(iluErrorString(Error));
|
||
|
}
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
void ilError::Check(void (*Callback)(ILenum))
|
||
|
{
|
||
|
static ILenum Error;
|
||
|
|
||
|
while ((Error = ilGetError()) != IL_NO_ERROR) {
|
||
|
Callback(Error);
|
||
|
}
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
ILenum ilError::Get()
|
||
|
{
|
||
|
return ilGetError();
|
||
|
}
|
||
|
|
||
|
const char *ilError::String()
|
||
|
{
|
||
|
return iluErrorString(ilGetError());
|
||
|
}
|
||
|
|
||
|
const char *ilError::String(ILenum Error)
|
||
|
{
|
||
|
return iluErrorString(Error);
|
||
|
}
|
||
|
|
||
|
#endif// DEVIL_CPP_WRAPPER_HPP
|