📄 devil_internal_exports.h
字号:
//-----------------------------------------------------------------------------//// ImageLib Sources// Copyright (C) 2000-2009 by Denton Woods// Last modified: 01/06/2009//// Filename: IL/devil_internal_exports.h//// Description: Internal stuff for DevIL (IL, ILU and ILUT)////-----------------------------------------------------------------------------#ifndef IL_EXPORTS_H#define IL_EXPORTS_H#include "IL/il.h"#ifdef DEBUG #include <assert.h>#else #define assert(x)#endif//#ifndef NOINLINE#ifndef INLINE#if defined(__GNUC__) #define INLINE extern inline#elif defined(_MSC_VER) //@TODO: Get this working in MSVC++. // http://www.greenend.org.uk/rjk/2003/03/inline.html #define NOINLINE //#define INLINE /*#ifndef _WIN64 // Cannot use inline assembly in x64 target platform. #define USE_WIN32_ASM #endif//_WIN64*/ #define INLINE __inline#else #define INLINE inline#endif#endif//#else//#define INLINE//#endif //NOINLINE#ifdef __cplusplusextern "C" {#endif#define IL_MAX(a,b) (((a) > (b)) ? (a) : (b))#define IL_MIN(a,b) (((a) < (b)) ? (a) : (b))//! Basic Palette structtypedef struct ILpal{ ILubyte* Palette; //!< the image palette (if any) ILuint PalSize; //!< size of the palette (in bytes) ILenum PalType; //!< the palette types in il.h (0x0500 range)} ILpal;//! The Fundamental Image structure/*! Every bit of information about an image is stored in this internal structure.*/typedef struct ILimage{ ILuint Width; //!< the image's width ILuint Height; //!< the image's height ILuint Depth; //!< the image's depth ILubyte Bpp; //!< bytes per pixel (now number of channels) ILubyte Bpc; //!< bytes per channel ILuint Bps; //!< bytes per scanline (components for IL) ILubyte* Data; //!< the image data ILuint SizeOfData; //!< the total size of the data (in bytes) ILuint SizeOfPlane; //!< SizeOfData in a 2d image, size of each plane slice in a 3d image (in bytes) ILenum Format; //!< image format (in IL enum style) ILenum Type; //!< image type (in IL enum style) ILenum Origin; //!< origin of the image ILpal Pal; //!< palette details ILuint Duration; //!< length of the time to display this "frame" ILenum CubeFlags; //!< cube map flags for sides present in chain struct ILimage* Mipmaps; //!< mipmapped versions of this image terminated by a NULL - usu. NULL struct ILimage* Next; //!< next image in the chain - usu. NULL struct ILimage* Faces; //!< next cubemap face in the chain - usu. NULL struct ILimage* Layers; //!< subsequent layers in the chain - usu. NULL ILuint* AnimList; //!< animation list ILuint AnimSize; //!< animation list size void* Profile; //!< colour profile ILuint ProfileSize; //!< colour profile size ILuint OffX; //!< x-offset of the image ILuint OffY; //!< y-offset of the image ILubyte* DxtcData; //!< compressed data ILenum DxtcFormat; //!< compressed data format ILuint DxtcSize; //!< compressed data size} ILimage;// Memory functionsILAPI void* ILAPIENTRY ialloc(const ILsizei Size);ILAPI void ILAPIENTRY ifree(const void *Ptr);ILAPI void* ILAPIENTRY icalloc(const ILsizei Size, const ILsizei Num);#ifdef ALTIVEC_GCCILAPI void* ILAPIENTRY ivec_align_buffer(void *buffer, const ILuint size);#endif// Internal library functions in ILILAPI ILimage* ILAPIENTRY ilGetCurImage(void);ILAPI void ILAPIENTRY ilSetCurImage(ILimage *Image);ILAPI void ILAPIENTRY ilSetError(ILenum Error);ILAPI void ILAPIENTRY ilSetPal(ILpal *Pal);//// Utility functions//ILAPI ILubyte ILAPIENTRY ilGetBppFormat(ILenum Format);ILAPI ILenum ILAPIENTRY ilGetFormatBpp(ILubyte Bpp);ILAPI ILubyte ILAPIENTRY ilGetBpcType(ILenum Type);ILAPI ILenum ILAPIENTRY ilGetTypeBpc(ILubyte Bpc);ILAPI ILubyte ILAPIENTRY ilGetBppPal(ILenum PalType);ILAPI ILenum ILAPIENTRY ilGetPalBaseType(ILenum PalType);ILAPI ILuint ILAPIENTRY ilNextPower2(ILuint Num);ILAPI ILenum ILAPIENTRY ilTypeFromExt(ILconst_string FileName);ILAPI void ILAPIENTRY ilReplaceCurImage(ILimage *Image);ILAPI void ILAPIENTRY iMemSwap(ILubyte *, ILubyte *, const ILuint);//// Image functions//ILAPI void ILAPIENTRY iBindImageTemp (void);ILAPI ILboolean ILAPIENTRY ilClearImage_ (ILimage *Image);ILAPI void ILAPIENTRY ilCloseImage (ILimage *Image);ILAPI void ILAPIENTRY ilClosePal (ILpal *Palette);ILAPI ILpal* ILAPIENTRY iCopyPal (void);ILAPI ILboolean ILAPIENTRY ilCopyImageAttr (ILimage *Dest, ILimage *Src);ILAPI ILimage* ILAPIENTRY ilCopyImage_ (ILimage *Src);ILAPI void ILAPIENTRY ilGetClear (void *Colours, ILenum Format, ILenum Type);ILAPI ILuint ILAPIENTRY ilGetCurName (void);ILAPI ILboolean ILAPIENTRY ilIsValidPal (ILpal *Palette);ILAPI ILimage* ILAPIENTRY ilNewImage (ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILubyte Bpc);ILAPI ILimage* ILAPIENTRY ilNewImageFull (ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);ILAPI ILboolean ILAPIENTRY ilInitImage (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);ILAPI ILboolean ILAPIENTRY ilResizeImage (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILubyte Bpc);ILAPI ILboolean ILAPIENTRY ilTexImage_ (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);ILAPI ILboolean ILAPIENTRY ilTexSubImage_ (ILimage *Image, void *Data);ILAPI void* ILAPIENTRY ilConvertBuffer (ILuint SizeOfData, ILenum SrcFormat, ILenum DestFormat, ILenum SrcType, ILenum DestType, ILpal *SrcPal, void *Buffer);ILAPI ILimage* ILAPIENTRY iConvertImage (ILimage *Image, ILenum DestFormat, ILenum DestType);ILAPI ILpal* ILAPIENTRY iConvertPal (ILpal *Pal, ILenum DestFormat);ILAPI ILubyte* ILAPIENTRY iGetFlipped (ILimage *Image);ILAPI ILboolean ILAPIENTRY iMirror();ILAPI void ILAPIENTRY iFlipBuffer(ILubyte *buff, ILuint depth, ILuint line_size, ILuint line_num);ILubyte* iFlipNewBuffer(ILubyte *buff, ILuint depth, ILuint line_size, ILuint line_num);ILAPI void ILAPIENTRY iGetIntegervImage(ILimage *Image, ILenum Mode, ILint *Param);// Internal library functions in ILUILAPI ILimage* ILAPIENTRY iluRotate_(ILimage *Image, ILfloat Angle);ILAPI ILimage* ILAPIENTRY iluRotate3D_(ILimage *Image, ILfloat x, ILfloat y, ILfloat z, ILfloat Angle);ILAPI ILimage* ILAPIENTRY iluScale_(ILimage *Image, ILuint Width, ILuint Height, ILuint Depth);#ifdef __cplusplus}#endif#endif//IL_EXPORTS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -