aboutsummaryrefslogtreecommitdiff
path: root/src/parsec/include/img_api.h
blob: ca2834d79456783e560f997cb88e80a08ee26107 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
 * PARSEC HEADER: img_api.h
 */

#ifndef _IMG_API_H_
#define _IMG_API_H_


// buffer formats

enum buffer_formats {

	BUFFERFORMAT_INVALID		= 0x0000,

	BUFFERFORMAT_INDEXED		= 0x0001,
	BUFFERFORMAT_RGB_332		= 0x0002,
	BUFFERFORMAT_ALPHA_8		= 0x0003,
	BUFFERFORMAT_INTENSITY_8	= 0x0004,
	BUFFERFORMAT_RGB_555		= 0x0005,
	BUFFERFORMAT_RGB_565		= 0x0006,
	BUFFERFORMAT_ARGB_1555		= 0x0007,
	BUFFERFORMAT_ARGB_4444		= 0x0008,
	BUFFERFORMAT_AP_88			= 0x0009,
	BUFFERFORMAT_AI_88			= 0x000a,
	BUFFERFORMAT_RGB_888		= 0x000b,
	BUFFERFORMAT_ARGB_8888		= 0x000c,

	BUFFERFORMAT_BASE_MASK		= 0x00ff,

	BUFFERFORMAT_VGA_PAL		= 0x0100,
	BUFFERFORMAT_RGB_PAL		= 0x0200,
	BUFFERFORMAT_RGBA_PAL		= 0x0400,

	BUFFERFORMAT_PREFIX_PAL		= 0x1000,
	BUFFERFORMAT_POSTFIX_PAL	= 0x2000
};


// recognized image formats

enum image_formats {

	IMAGEFORMAT_INVALID,

	IMAGEFORMAT_RAW,
	IMAGEFORMAT_TGA,
	IMAGEFORMAT_3DF,
	IMAGEFORMAT_PCX,
	IMAGEFORMAT_BMP,
	IMAGEFORMAT_JPG,
	IMAGEFORMAT_PNG
};


// generic image info

struct img_info_s {

	int		format;
	int		width;
	int		height;
	size_t	buffsize;
	int		userinfo[ 4 ];
};


// external functions

int		IMG_DetermineFormat( char *fname );
int		IMG_BufferPixelSize( int format );
int		IMG_CopyConvertBuffer( char *dstbuff, int dstfmt, char *srcbuff, int srcfmt, size_t bsiz );
int		IMG_SaveBuffer( const char *filename, char *buff, img_info_s *info );
int		IMG_LoadTexture( char *fname, int insertindex, char *loaderparams, texfont_s *texfont );


#endif // _IMG_API_H_