mirror of
https://github.com/love2d/love-android.git
synced 2026-08-16 08:11:44 +02:00
400 lines
6.1 KiB
C
400 lines
6.1 KiB
C
//-----------------------------------------------------------------------------
|
|
//
|
|
// ImageLib Sources
|
|
// Copyright (C) 2000-2008 by Denton Woods
|
|
// Last modified: 11/07/2008
|
|
//
|
|
// Filename: src-IL/src/il_states.h
|
|
//
|
|
// Description: State machine
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
#ifndef STATES_H
|
|
#define STATES_H
|
|
|
|
#include "il_internal.h"
|
|
|
|
|
|
ILboolean ilAble(ILenum Mode, ILboolean Flag);
|
|
|
|
|
|
#define IL_ATTRIB_STACK_MAX 32
|
|
|
|
ILuint ilCurrentPos = 0; // Which position on the stack
|
|
|
|
//
|
|
// Various states
|
|
//
|
|
|
|
typedef struct IL_STATES
|
|
{
|
|
// Origin states
|
|
ILboolean ilOriginSet;
|
|
ILenum ilOriginMode;
|
|
// Format and type states
|
|
ILboolean ilFormatSet;
|
|
ILboolean ilTypeSet;
|
|
ILenum ilFormatMode;
|
|
ILenum ilTypeMode;
|
|
// File mode states
|
|
ILboolean ilOverWriteFiles;
|
|
// Palette states
|
|
ILboolean ilAutoConvPal;
|
|
// Load fail states
|
|
ILboolean ilDefaultOnFail;
|
|
// Key colour states
|
|
ILboolean ilUseKeyColour;
|
|
// Alpha blend states
|
|
ILboolean ilBlitBlend;
|
|
// Compression states
|
|
ILenum ilCompression;
|
|
// Interlace states
|
|
ILenum ilInterlace;
|
|
// Quantization states
|
|
ILenum ilQuantMode;
|
|
ILuint ilNeuSample;
|
|
ILuint ilQuantMaxIndexs;
|
|
// DXTC states
|
|
ILboolean ilKeepDxtcData;
|
|
ILboolean ilUseNVidiaDXT;
|
|
ILboolean ilUseSquishDXT;
|
|
|
|
|
|
//
|
|
// Format-specific states
|
|
//
|
|
|
|
ILboolean ilTgaCreateStamp;
|
|
ILuint ilJpgQuality;
|
|
ILboolean ilPngInterlace;
|
|
ILboolean ilTgaRle;
|
|
ILboolean ilBmpRle;
|
|
ILboolean ilSgiRle;
|
|
ILenum ilJpgFormat;
|
|
ILboolean ilJpgProgressive;
|
|
ILenum ilDxtcFormat;
|
|
ILenum ilPcdPicNum;
|
|
|
|
ILint ilPngAlphaIndex; // this index should be treated as an alpha key (most formats use this rather than having alpha in the palette), -1 for none
|
|
// currently only used when writing out .png files and should obviously be set to -1 most of the time
|
|
ILenum ilVtfCompression;
|
|
|
|
|
|
//
|
|
// Format-specific strings
|
|
//
|
|
|
|
char* ilTgaId;
|
|
char* ilTgaAuthName;
|
|
char* ilTgaAuthComment;
|
|
char* ilPngAuthName;
|
|
char* ilPngTitle;
|
|
char* ilPngDescription;
|
|
char* ilTifDescription;
|
|
char* ilTifHostComputer;
|
|
char* ilTifDocumentName;
|
|
char* ilTifAuthName;
|
|
char* ilCHeader;
|
|
|
|
|
|
|
|
|
|
} IL_STATES;
|
|
|
|
IL_STATES ilStates[IL_ATTRIB_STACK_MAX];
|
|
|
|
|
|
typedef struct IL_HINTS
|
|
{
|
|
// Memory vs. Speed trade-off
|
|
ILenum MemVsSpeedHint;
|
|
// Compression hints
|
|
ILenum CompressHint;
|
|
|
|
} IL_HINTS;
|
|
|
|
IL_HINTS ilHints;
|
|
|
|
|
|
#ifndef IL_NO_BLP
|
|
#define IL_BLP_EXT "blp "
|
|
#else
|
|
#define IL_BLP_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_BMP
|
|
#define IL_BMP_EXT "bmp dib "
|
|
#else
|
|
#define IL_BMP_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_CHEAD
|
|
#define IL_CHEAD_EXT "h "
|
|
#else
|
|
#define IL_CHEAD_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_CUT
|
|
#define IL_CUT_EXT "cut "
|
|
#else
|
|
#define IL_CUT_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_DCX
|
|
#define IL_DCX_EXT "dcx "
|
|
#else
|
|
#define IL_DCX_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_DCM
|
|
#define IL_DCM_EXT "dicom dcm"
|
|
#else
|
|
#define IL_DCM_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_DDS
|
|
#define IL_DDS_EXT "dds "
|
|
#else
|
|
#define IL_DDS_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_DPX
|
|
#define IL_DPX_EXT "dds "
|
|
#else
|
|
#define IL_DPX_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_EXR
|
|
#define IL_EXR_EXT "exr "
|
|
#else
|
|
#define IL_EXR_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_FITS
|
|
#define IL_FITS_EXT "fit fits "
|
|
#else
|
|
#define IL_FITS_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_FTX
|
|
#define IL_FTX_EXT "ftx "
|
|
#else
|
|
#define IL_FTX_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_GIF
|
|
#define IL_GIF_EXT "gif "
|
|
#else
|
|
#define IL_GIF_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_HDR
|
|
#define IL_HDR_EXT "hdr "
|
|
#else
|
|
#define IL_HDR_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_ICNS
|
|
#define IL_ICNS_EXT "icns "
|
|
#else
|
|
#define IL_ICNS_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_ICO
|
|
#define IL_ICO_EXT "ico cur "
|
|
#else
|
|
#define IL_ICO_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_IFF
|
|
#define IL_IFF_EXT "iff "
|
|
#else
|
|
#define IL_IFF_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_IWI
|
|
#define IL_IWI_EXT "iwi "
|
|
#else
|
|
#define IL_IWI_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_JP2
|
|
#define IL_JP2_EXT "jp2 "
|
|
#else
|
|
#define IL_JP2_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_JPG
|
|
#define IL_JPG_EXT "jpg jpe jpeg "
|
|
#else
|
|
#define IL_JPG_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_LIF
|
|
#define IL_LIF_EXT "lif "
|
|
#else
|
|
#define IL_LIF_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_MDL
|
|
#define IL_MDL_EXT "mdl "
|
|
#else
|
|
#define IL_MDL_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_MNG
|
|
#define IL_MNG_EXT "mng jng "
|
|
#else
|
|
#define IL_MNG_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_MP3
|
|
#define IL_MP3_EXT "mp3 "
|
|
#else
|
|
#define IL_MP3_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PCD
|
|
#define IL_PCD_EXT "pcd "
|
|
#else
|
|
#define IL_PCD_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PCX
|
|
#define IL_PCX_EXT "pcx "
|
|
#else
|
|
#define IL_PCX_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PIC
|
|
#define IL_PIC_EXT "pic "
|
|
#else
|
|
#define IL_PIC_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PIX
|
|
#define IL_PIX_EXT "pix "
|
|
#else
|
|
#define IL_PIX_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PNG
|
|
#define IL_PNG_EXT "png "
|
|
#else
|
|
#define IL_PNG_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PNM
|
|
#define IL_PNM_EXT "pbm pgm pnm ppm "
|
|
#else
|
|
#define IL_PNM_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PSD
|
|
#define IL_PSD_EXT "psd pdd "
|
|
#else
|
|
#define IL_PSD_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PSP
|
|
#define IL_PSP_EXT "psp "
|
|
#else
|
|
#define IL_PSP_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_PXR
|
|
#define IL_PXR_EXT "pxr "
|
|
#else
|
|
#define IL_PXR_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_RAW
|
|
#define IL_RAW_EXT "raw "
|
|
#else
|
|
#define IL_RAW_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_ROT
|
|
#define IL_ROT_EXT "rot "
|
|
#else
|
|
#define IL_ROT_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_SGI
|
|
#define IL_SGI_EXT "sgi bw rgb rgba "
|
|
#else
|
|
#define IL_SGI_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_SUN
|
|
#define IL_SUN_EXT "sun ras rs im1 im8 im24 im32 "
|
|
#else
|
|
#define IL_SUN_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_TEXTURE
|
|
#define IL_TEX_EXT "texture "
|
|
#else
|
|
#define IL_TEX_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_TGA
|
|
#define IL_TGA_EXT "tga vda icb vst "
|
|
#else
|
|
#define IL_TGA_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_TIF
|
|
#define IL_TIF_EXT "tif tiff "
|
|
#else
|
|
#define IL_TIF_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_TPL
|
|
#define IL_TPL_EXT "tpl "
|
|
#else
|
|
#define IL_TPL_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_UTX
|
|
#define IL_UTX_EXT "utx "
|
|
#else
|
|
#define IL_UTX_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_VTF
|
|
#define IL_VTF_EXT "vtf "
|
|
#else
|
|
#define IL_VTF_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_WAL
|
|
#define IL_WAL_EXT "wal "
|
|
#else
|
|
#define IL_WAL_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_WBMP
|
|
#define IL_WBMP_EXT "wbmp "
|
|
#else
|
|
#define IL_WBMP_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_WDP
|
|
#define IL_WDP_EXT "wdp "
|
|
#else
|
|
#define IL_WDP_EXT ""
|
|
#endif
|
|
|
|
#ifndef IL_NO_XPM
|
|
#define IL_XPM_EXT "xpm "
|
|
#else
|
|
#define IL_XPM_EXT ""
|
|
#endif
|
|
|
|
|
|
|
|
#endif//STATES_H
|