1
#define _IL_WRAP_BUILD_LIB
2
#include <il/il_wrap.h>
4
//#define TEST_WRAPPER // Comment-out to get rid of main()
9
int main(int argc, char **argv)
12
cout << "Please specify a filename." << endl;
16
ilImage Image(argv[1]);
18
cout << Image.Width() << ' ' << Image.Height() << ' ' << (ILuint)Image.Bpp() << endl;
20
ilEnable(IL_FILE_OVERWRITE);
22
Image.Save("test.tga");
44
ilImage::ilImage(char *FileName)
49
ilLoadImage(FileName);
54
ilImage::ilImage(const ilImage &Image)
67
ilDeleteImages(1, &this->Id);
73
ILboolean ilImage::Load(char *FileName)
76
return ilLoadImage(FileName);
80
ILboolean ilImage::Load(char *FileName, ILenum Type)
83
return ilLoad(Type, FileName);
87
ILboolean ilImage::Save(char *FileName)
90
return ilSaveImage(FileName);
94
ILboolean ilImage::Save(char *FileName, ILenum Type)
97
return ilSave(Type, FileName);
103
// ImageLib functions
106
ILboolean ilImage::ActiveImage(ILuint Number)
110
return ilActiveImage(Number);
116
ILboolean ilImage::ActiveLayer(ILuint Number)
120
return ilActiveLayer(Number);
126
ILboolean ilImage::ActiveMipmap(ILuint Number)
130
return ilActiveMipmap(Number);
136
ILboolean ilImage::Clear()
140
return ilClearImage();
146
ILvoid ilImage::ClearColour(ILclampf Red, ILclampf Green, ILclampf Blue, ILclampf Alpha)
148
ilClearColour(Red, Green, Blue, Alpha);
153
ILboolean ilImage::Convert(ILenum NewFormat)
157
return ilConvertImage(NewFormat, IL_UNSIGNED_BYTE);
163
ILboolean ilImage::Copy(ILuint Src)
167
return ilCopyImage(Src);
173
ILboolean ilImage::Default()
177
return ilDefaultImage();
183
ILboolean ilImage::Flip()
187
return iluFlipImage();
193
ILboolean ilImage::SwapColours()
197
return iluSwapColours();
203
ILboolean ilImage::Resize(ILuint Width, ILuint Height, ILuint Depth)
207
return iluScale(Width, Height, Depth);
213
ILboolean ilImage::TexImage(ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, ILvoid *Data)
217
return ilTexImage(Width, Height, Depth, Bpp, Format, Type, Data);
228
ILvoid ilImage::Bind() const
231
ilBindImage(this->Id);
236
// Note: Behaviour may be changed!
237
ILvoid ilImage::Bind(ILuint Image)
239
if (this->Id == Image)
241
this->Delete(); // Should we delete it?
243
ilBindImage(this->Id);
248
ILvoid ilImage::Delete()
252
ilDeleteImages(1, &this->Id);
261
// Image characteristics
264
ILuint ilImage::Width()
268
return ilGetInteger(IL_IMAGE_WIDTH);
274
ILuint ilImage::Height()
278
return ilGetInteger(IL_IMAGE_HEIGHT);
284
ILuint ilImage::Depth()
288
return ilGetInteger(IL_IMAGE_DEPTH);
294
ILubyte ilImage::Bpp()
298
return ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL);
304
ILubyte ilImage::Bitpp()
308
return ilGetInteger(IL_IMAGE_BITS_PER_PIXEL);
314
ILenum ilImage::Format()
318
return ilGetInteger(IL_IMAGE_FORMAT);
323
ILenum ilImage::PaletteType()
327
return ilGetInteger(IL_PALETTE_TYPE);
332
Lenum ilImage::PaletteAlphaIndex()
336
return ilGetInteger(IL_PNG_ALPHA_INDEX);
342
ILenum ilImage::Type()
346
return ilGetInteger(IL_IMAGE_TYPE);
352
ILenum ilImage::NumImages()
356
return ilGetInteger(IL_NUM_IMAGES);
362
ILenum ilImage::NumMipmaps()
366
return ilGetInteger(IL_NUM_MIPMAPS);
372
ILuint ilImage::GetId() const
377
ILenum ilImage::GetOrigin(ILvoid)
383
iluGetImageInfo(&Info);
389
ILubyte* ilImage::GetData()
399
ILubyte* ilImage::GetPalette()
403
return ilGetPalette();
414
ILvoid ilImage::iStartUp()
423
ILvoid ilImage::iGenBind()
426
ilGenImages(1, &this->Id);
428
ilBindImage(this->Id);
438
ilImage& ilImage::operator = (ILuint Image)
451
ilImage& ilImage::operator = (const ilImage &Image)
457
ilCopyImage(Image.GetId());
471
ILboolean ilFilters::Alienify(ilImage &Image)
474
return iluAlienify();
478
ILboolean ilFilters::BlurAvg(ilImage &Image, ILuint Iter)
481
return iluBlurAvg(Iter);
486
ILboolean ilFilters::BlurGaussian(ilImage &Image, ILuint Iter)
489
return iluBlurGaussian(Iter);
493
ILboolean ilFilters::Contrast(ilImage &Image, ILfloat Contrast)
496
return iluContrast(Contrast);
500
ILboolean ilFilters::EdgeDetectE(ilImage &Image)
503
return iluEdgeDetectP();
507
ILboolean ilFilters::EdgeDetectP(ilImage &Image)
510
return iluEdgeDetectP();
514
ILboolean ilFilters::EdgeDetectS(ilImage &Image)
517
return iluEdgeDetectS();
521
ILboolean ilFilters::Emboss(ilImage &Image)
528
ILboolean ilFilters::Gamma(ilImage &Image, ILfloat Gamma)
531
return iluGammaCorrect(Gamma);
535
ILboolean ilFilters::Negative(ilImage &Image)
538
return iluNegative();
542
ILboolean ilFilters::Noisify(ilImage &Image, ILubyte Factor)
545
return iluNoisify(Factor);
549
ILboolean ilFilters::Pixelize(ilImage &Image, ILuint PixSize)
552
return iluPixelize(PixSize);
556
ILboolean ilFilters::Saturate(ilImage &Image, ILfloat Saturation)
559
return iluSaturate1f(Saturation);
563
ILboolean ilFilters::Saturate(ilImage &Image, ILfloat r, ILfloat g, ILfloat b, ILfloat Saturation)
566
return iluSaturate4f(r, g, b, Saturation);
570
ILboolean ilFilters::ScaleColours(ilImage &Image, ILfloat r, ILfloat g, ILfloat b)
573
return iluScaleColours(r, g, b);
577
ILboolean ilFilters::Sharpen(ilImage &Image, ILfloat Factor, ILuint Iter)
580
return iluSharpen(Factor, Iter);
591
#ifdef ILUT_USE_OPENGL
594
ilutRenderer(ILUT_OPENGL);
599
GLuint ilOgl::BindTex(ilImage &Image)
602
return ilutGLBindTexImage();
606
ILboolean ilOgl::Upload(ilImage &Image, ILuint Level)
609
return ilutGLTexImage(Level);
613
GLuint ilOgl::Mipmap(ilImage &Image)
616
return ilutGLBuildMipmaps();
620
ILboolean ilOgl::Screen()
622
return ilutGLScreen();
626
ILboolean ilOgl::Screenie()
628
return ilutGLScreenie();
630
#endif//ILUT_USE_OPENGL
640
#ifdef ILUT_USE_ALLEGRO
641
ILvoid ilAlleg::Init()
643
ilutRenderer(IL_ALLEGRO);
648
BITMAP *ilAlleg::Convert(ilImage &Image, PALETTE Pal)
651
return ilutConvertToAlleg(Pal);
653
#endif//ILUT_USE_ALLEGRO
663
#ifdef ILUT_USE_WIN32
664
ILvoid ilWin32::Init()
666
ilutRenderer(ILUT_WIN32);
671
HBITMAP ilWin32::Convert(ilImage &Image)
674
return ilutConvertToHBitmap(GetDC(NULL));
678
ILboolean ilWin32::GetClipboard(ilImage &Image)
681
return ilutGetWinClipboard();
685
ILvoid ilWin32::GetInfo(ilImage &Image, BITMAPINFO *Info)
688
ilutGetBmpInfo(Info);
693
ILubyte* ilWin32::GetPadData(ilImage &Image)
696
return ilutGetPaddedData();
700
HPALETTE ilWin32::GetPal(ilImage &Image)
703
return ilutGetHPal();
707
ILboolean ilWin32::GetResource(ilImage &Image, HINSTANCE hInst, ILint ID, char *ResourceType)
710
return ilutLoadResource(hInst, ID, ResourceType, IL_TYPE_UNKNOWN);
714
ILboolean ilWin32::GetResource(ilImage &Image, HINSTANCE hInst, ILint ID, char *ResourceType, ILenum Type)
717
return ilutLoadResource(hInst, ID, ResourceType, Type);
721
ILboolean ilWin32::SetClipboard(ilImage &Image)
724
return ilutSetWinClipboard();
726
#endif//ILUT_USE_WIN32
736
ILboolean ilValidate::Valid(ILenum Type, char *FileName)
738
return ilIsValid(Type, FileName);
742
ILboolean ilValidate::Valid(ILenum Type, FILE *File)
744
return ilIsValidF(Type, File);
748
ILboolean ilValidate::Valid(ILenum Type, ILvoid *Lump, ILuint Size)
750
return ilIsValidL(Type, Lump, Size);
761
ILboolean ilState::Disable(ILenum State)
763
return ilDisable(State);
767
ILboolean ilState::Enable(ILenum State)
769
return ilEnable(State);
773
ILvoid ilState::Get(ILenum Mode, ILboolean &Param)
775
ilGetBooleanv(Mode, &Param);
780
ILvoid ilState::Get(ILenum Mode, ILint &Param)
782
ilGetIntegerv(Mode, &Param);
787
ILboolean ilState::GetBool(ILenum Mode)
789
return ilGetBoolean(Mode);
793
ILint ilState::GetInt(ILenum Mode)
795
return ilGetInteger(Mode);
799
const char *ilState::GetString(ILenum StringName)
801
return ilGetString(StringName);
805
ILboolean ilState::IsDisabled(ILenum Mode)
807
return ilIsDisabled(Mode);
811
ILboolean ilState::IsEnabled(ILenum Mode)
813
return ilIsEnabled(Mode);
817
ILboolean ilState::Origin(ILenum Mode)
819
return ilOriginFunc(Mode);
823
ILvoid ilState::Pop()
830
ILvoid ilState::Push(ILuint Bits = IL_ALL_ATTRIB_BITS)
846
ILvoid ilError::Check(ILvoid (*Callback)(const char*))
850
while ((Error = ilGetError()) != IL_NO_ERROR) {
851
Callback(iluErrorString(Error));
858
ILvoid ilError::Check(ILvoid (*Callback)(ILenum))
862
while ((Error = ilGetError()) != IL_NO_ERROR) {
870
ILenum ilError::Get()
876
const char *ilError::String()
878
return iluErrorString(ilGetError());
882
const char *ilError::String(ILenum Error)
884
return iluErrorString(Error);