00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef IL_EXPORTS_H
00014 #define IL_EXPORTS_H
00015
00016 #include "IL/il.h"
00017
00018 #ifdef DEBUG
00019 #include <assert.h>
00020 #else
00021 #define assert(x)
00022 #endif
00023
00024
00025 #ifndef INLINE
00026 #if defined(__GNUC__)
00027 #define INLINE extern inline
00028 #elif defined(_MSC_VER) //@TODO: Get this working in MSVC++.
00029
00030 #define NOINLINE
00031
00032
00033
00034
00035 #define INLINE __inline
00036 #else
00037 #define INLINE inline
00038 #endif
00039 #endif
00040
00041
00042
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047
00048 #define IL_MAX(a,b) (((a) > (b)) ? (a) : (b))
00049 #define IL_MIN(a,b) (((a) < (b)) ? (a) : (b))
00050
00051
00053 typedef struct ILpal
00054 {
00055 ILubyte* Palette;
00056 ILuint PalSize;
00057 ILenum PalType;
00058 } ILpal;
00059
00060
00062
00063 typedef struct ILimage
00064 {
00065 ILuint Width;
00066 ILuint Height;
00067 ILuint Depth;
00068 ILubyte Bpp;
00069 ILubyte Bpc;
00070 ILuint Bps;
00071 ILubyte* Data;
00072 ILuint SizeOfData;
00073 ILuint SizeOfPlane;
00074 ILenum Format;
00075 ILenum Type;
00076 ILenum Origin;
00077 ILpal Pal;
00078 ILuint Duration;
00079 ILenum CubeFlags;
00080 struct ILimage* Mipmaps;
00081 struct ILimage* Next;
00082 struct ILimage* Faces;
00083 struct ILimage* Layers;
00084 ILuint* AnimList;
00085 ILuint AnimSize;
00086 void* Profile;
00087 ILuint ProfileSize;
00088 ILuint OffX;
00089 ILuint OffY;
00090 ILubyte* DxtcData;
00091 ILenum DxtcFormat;
00092 ILuint DxtcSize;
00093 } ILimage;
00094
00095
00096
00097 ILAPI void* ILAPIENTRY ialloc(const ILsizei Size);
00098 ILAPI void ILAPIENTRY ifree(const void *Ptr);
00099 ILAPI void* ILAPIENTRY icalloc(const ILsizei Size, const ILsizei Num);
00100 #ifdef ALTIVEC_GCC
00101 ILAPI void* ILAPIENTRY ivec_align_buffer(void *buffer, const ILuint size);
00102 #endif
00103
00104
00105 ILAPI ILimage* ILAPIENTRY ilGetCurImage(void);
00106 ILAPI void ILAPIENTRY ilSetCurImage(ILimage *Image);
00107 ILAPI void ILAPIENTRY ilSetError(ILenum Error);
00108 ILAPI void ILAPIENTRY ilSetPal(ILpal *Pal);
00109
00110
00111
00112
00113 ILAPI ILubyte ILAPIENTRY ilGetBppFormat(ILenum Format);
00114 ILAPI ILenum ILAPIENTRY ilGetFormatBpp(ILubyte Bpp);
00115 ILAPI ILubyte ILAPIENTRY ilGetBpcType(ILenum Type);
00116 ILAPI ILenum ILAPIENTRY ilGetTypeBpc(ILubyte Bpc);
00117 ILAPI ILubyte ILAPIENTRY ilGetBppPal(ILenum PalType);
00118 ILAPI ILenum ILAPIENTRY ilGetPalBaseType(ILenum PalType);
00119 ILAPI ILuint ILAPIENTRY ilNextPower2(ILuint Num);
00120 ILAPI ILenum ILAPIENTRY ilTypeFromExt(ILconst_string FileName);
00121 ILAPI void ILAPIENTRY ilReplaceCurImage(ILimage *Image);
00122 ILAPI void ILAPIENTRY iMemSwap(ILubyte *, ILubyte *, const ILuint);
00123
00124
00125
00126
00127 ILAPI void ILAPIENTRY iBindImageTemp (void);
00128 ILAPI ILboolean ILAPIENTRY ilClearImage_ (ILimage *Image);
00129 ILAPI void ILAPIENTRY ilCloseImage (ILimage *Image);
00130 ILAPI void ILAPIENTRY ilClosePal (ILpal *Palette);
00131 ILAPI ILpal* ILAPIENTRY iCopyPal (void);
00132 ILAPI ILboolean ILAPIENTRY ilCopyImageAttr (ILimage *Dest, ILimage *Src);
00133 ILAPI ILimage* ILAPIENTRY ilCopyImage_ (ILimage *Src);
00134 ILAPI void ILAPIENTRY ilGetClear (void *Colours, ILenum Format, ILenum Type);
00135 ILAPI ILuint ILAPIENTRY ilGetCurName (void);
00136 ILAPI ILboolean ILAPIENTRY ilIsValidPal (ILpal *Palette);
00137 ILAPI ILimage* ILAPIENTRY ilNewImage (ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILubyte Bpc);
00138 ILAPI ILimage* ILAPIENTRY ilNewImageFull (ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);
00139 ILAPI ILboolean ILAPIENTRY ilInitImage (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);
00140 ILAPI ILboolean ILAPIENTRY ilResizeImage (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILubyte Bpc);
00141 ILAPI ILboolean ILAPIENTRY ilTexImage_ (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);
00142 ILAPI ILboolean ILAPIENTRY ilTexSubImage_ (ILimage *Image, void *Data);
00143 ILAPI void* ILAPIENTRY ilConvertBuffer (ILuint SizeOfData, ILenum SrcFormat, ILenum DestFormat, ILenum SrcType, ILenum DestType, ILpal *SrcPal, void *Buffer);
00144 ILAPI ILimage* ILAPIENTRY iConvertImage (ILimage *Image, ILenum DestFormat, ILenum DestType);
00145 ILAPI ILpal* ILAPIENTRY iConvertPal (ILpal *Pal, ILenum DestFormat);
00146 ILAPI ILubyte* ILAPIENTRY iGetFlipped (ILimage *Image);
00147 ILAPI ILboolean ILAPIENTRY iMirror();
00148 ILAPI void ILAPIENTRY iFlipBuffer(ILubyte *buff, ILuint depth, ILuint line_size, ILuint line_num);
00149 ILubyte* iFlipNewBuffer(ILubyte *buff, ILuint depth, ILuint line_size, ILuint line_num);
00150 ILAPI void ILAPIENTRY iGetIntegervImage(ILimage *Image, ILenum Mode, ILint *Param);
00151
00152
00153 ILAPI ILimage* ILAPIENTRY iluRotate_(ILimage *Image, ILfloat Angle);
00154 ILAPI ILimage* ILAPIENTRY iluRotate3D_(ILimage *Image, ILfloat x, ILfloat y, ILfloat z, ILfloat Angle);
00155 ILAPI ILimage* ILAPIENTRY iluScale_(ILimage *Image, ILuint Width, ILuint Height, ILuint Depth);
00156
00157 #ifdef __cplusplus
00158 }
00159 #endif
00160
00161 #endif//IL_EXPORTS_H