il_wrap.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. #ifndef WRAPPER_H
  2. #define WRAPPER_H
  3. /*#include <il/il.h>
  4. #include <il/ilu.h>*/
  5. #include <IL/ilut.h> // Probably only have to #include this one
  6. #ifdef _MSC_VER
  7. #ifndef _IL_WRAP_BUILD_LIB
  8. #pragma comment(lib, "il_wrap.lib")
  9. #endif
  10. #endif
  11. class ilImage
  12. {
  13. public:
  14. ilImage();
  15. ilImage(char *);
  16. ilImage(const ilImage &);
  17. virtual ~ilImage();
  18. ILboolean Load(char *);
  19. ILboolean Load(char *, ILenum);
  20. ILboolean Save(char *);
  21. ILboolean Save(char *, ILenum);
  22. // ImageLib functions
  23. ILboolean ActiveImage(ILuint);
  24. ILboolean ActiveLayer(ILuint);
  25. ILboolean ActiveMipmap(ILuint);
  26. ILboolean Clear(void);
  27. ILvoid ClearColour(ILclampf, ILclampf, ILclampf, ILclampf);
  28. ILboolean Convert(ILenum);
  29. ILboolean Copy(ILuint);
  30. ILboolean Default(void);
  31. ILboolean Flip(void);
  32. ILboolean SwapColours(void);
  33. ILboolean Resize(ILuint, ILuint, ILuint);
  34. ILboolean TexImage(ILuint, ILuint, ILuint, ILubyte, ILenum, ILenum, ILvoid*);
  35. // Image handling
  36. ILvoid Bind(void) const;
  37. ILvoid Bind(ILuint);
  38. ILvoid Close(void) { this->Delete(); }
  39. ILvoid Delete(void);
  40. ILvoid iGenBind();
  41. ILenum PaletteAlphaIndex();
  42. // Image characteristics
  43. ILuint Width(void);
  44. ILuint Height(void);
  45. ILuint Depth(void);
  46. ILubyte Bpp(void);
  47. ILubyte Bitpp(void);
  48. ILenum PaletteType(void);
  49. ILenum Format(void);
  50. ILenum Type(void);
  51. ILuint NumImages(void);
  52. ILuint NumMipmaps(void);
  53. ILuint GetId(void) const;
  54. ILenum GetOrigin(void);
  55. ILubyte *GetData(void);
  56. ILubyte *GetPalette(void);
  57. // Rendering
  58. ILuint BindImage(void);
  59. ILuint BindImage(ILenum);
  60. // Operators
  61. ilImage& operator = (ILuint);
  62. ilImage& operator = (const ilImage &);
  63. protected:
  64. ILuint Id;
  65. private:
  66. ILvoid iStartUp();
  67. };
  68. class ilFilters
  69. {
  70. public:
  71. static ILboolean Alienify(ilImage &);
  72. static ILboolean BlurAvg(ilImage &, ILuint Iter);
  73. static ILboolean BlurGaussian(ilImage &, ILuint Iter);
  74. static ILboolean Contrast(ilImage &, ILfloat Contrast);
  75. static ILboolean EdgeDetectE(ilImage &);
  76. static ILboolean EdgeDetectP(ilImage &);
  77. static ILboolean EdgeDetectS(ilImage &);
  78. static ILboolean Emboss(ilImage &);
  79. static ILboolean Gamma(ilImage &, ILfloat Gamma);
  80. static ILboolean Negative(ilImage &);
  81. static ILboolean Noisify(ilImage &, ILubyte Factor);
  82. static ILboolean Pixelize(ilImage &, ILuint PixSize);
  83. static ILboolean Saturate(ilImage &, ILfloat Saturation);
  84. static ILboolean Saturate(ilImage &, ILfloat r, ILfloat g, ILfloat b, ILfloat Saturation);
  85. static ILboolean ScaleColours(ilImage &, ILfloat r, ILfloat g, ILfloat b);
  86. static ILboolean Sharpen(ilImage &, ILfloat Factor, ILuint Iter);
  87. };
  88. #ifdef ILUT_USE_OPENGL
  89. class ilOgl
  90. {
  91. public:
  92. static ILvoid Init(void);
  93. static GLuint BindTex(ilImage &);
  94. static ILboolean Upload(ilImage &, ILuint);
  95. static GLuint Mipmap(ilImage &);
  96. static ILboolean Screen(void);
  97. static ILboolean Screenie(void);
  98. };
  99. #endif//ILUT_USE_OPENGL
  100. #ifdef ILUT_USE_ALLEGRO
  101. class ilAlleg
  102. {
  103. public:
  104. static ILvoid Init(void);
  105. static BITMAP *Convert(ilImage &);
  106. };
  107. #endif//ILUT_USE_ALLEGRO
  108. #ifdef ILUT_USE_WIN32
  109. class ilWin32
  110. {
  111. public:
  112. static ILvoid Init(void);
  113. static HBITMAP Convert(ilImage &);
  114. static ILboolean GetClipboard(ilImage &);
  115. static ILvoid GetInfo(ilImage &, BITMAPINFO *Info);
  116. static ILubyte *GetPadData(ilImage &);
  117. static HPALETTE GetPal(ilImage &);
  118. static ILboolean GetResource(ilImage &, HINSTANCE hInst, ILint ID, char *ResourceType);
  119. static ILboolean GetResource(ilImage &, HINSTANCE hInst, ILint ID, char *ResourceType, ILenum Type);
  120. static ILboolean SetClipboard(ilImage &);
  121. };
  122. #endif//ILUT_USE_WIN32
  123. class ilValidate
  124. {
  125. public:
  126. static ILboolean Valid(ILenum, char *);
  127. static ILboolean Valid(ILenum, FILE *);
  128. static ILboolean Valid(ILenum, ILvoid *, ILuint);
  129. protected:
  130. private:
  131. };
  132. class ilState
  133. {
  134. public:
  135. static ILboolean Disable(ILenum);
  136. static ILboolean Enable(ILenum);
  137. static ILvoid Get(ILenum, ILboolean &);
  138. static ILvoid Get(ILenum, ILint &);
  139. static ILboolean GetBool(ILenum);
  140. static ILint GetInt(ILenum);
  141. static const char *GetString(ILenum);
  142. static ILboolean IsDisabled(ILenum);
  143. static ILboolean IsEnabled(ILenum);
  144. static ILboolean Origin(ILenum);
  145. static ILvoid Pop(void);
  146. static ILvoid Push(ILuint);
  147. protected:
  148. private:
  149. };
  150. class ilError
  151. {
  152. public:
  153. static ILvoid Check(ILvoid (*Callback)(const char*));
  154. static ILvoid Check(ILvoid (*Callback)(ILenum));
  155. static ILenum Get(void);
  156. static const char *String(void);
  157. static const char *String(ILenum);
  158. protected:
  159. private:
  160. };
  161. #endif//WRAPPER_H