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
 |