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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
#ifndef BH_BITMAP_H
#define BH_BITMAP_H
#include "Common.h"
#include "Color.h"
typedef struct BH_Bitmap BH_Bitmap;
#define BH_BITMAP_PREMULT 0x1000
#define BH_BITMAP_NOALPHA 0x2000
#define BH_BITMAP_BGR 0x4000
#define BH_BITMAP_INDEX8 0x0000
#define BH_BITMAP_GRAY8 0x0001
#define BH_BITMAP_GRAY16 0x0002
#define BH_BITMAP_RGBA32 0x0003
#define BH_BITMAP_RGBA64 0x0004
#define BH_BITMAP_RGB565 0x8000
#define BH_BITMAP_RGB888 0x8001
#define BH_BITMAP_RGBA8888 0x8002
#define BH_BITMAP_RGB161616 0x8003
#define BH_BITMAP_RGBA16161616 0x8004
#define BH_BITMAP_RGBA1010102 0x8005
#define BH_BITMAP_FLAG_ALIGN32 0x0001
#define BH_BITMAP_FLAG_EXT_DATA 0x0002
#define BH_BITMAP_FLAG_EXT_PALETTE 0x0004
BH_Bitmap *BH_BitmapNew(int width,
int height,
int format,
int flags,
void *data,
void *palette);
void BH_BitmapFree(BH_Bitmap *bitmap);
void BH_BitmapColor(const BH_Bitmap *bitmap,
int x,
int y,
BH_Color *value);
void BH_BitmapSetColor(BH_Bitmap *bitmap,
int x,
int y,
const BH_Color *value);
BH_Bitmap *BH_BitmapCopy(BH_Bitmap *bitmap,
int x,
int y,
int width,
int height,
int shallow);
void *BH_BitmapScanline(const BH_Bitmap *bitmap,
int y);
void *BH_BitmapAt(const BH_Bitmap *bitmap,
int x,
int y);
int BH_BitmapWidth(BH_Bitmap *bitmap);
int BH_BitmapHeight(BH_Bitmap *bitmap);
int BH_BitmapFormat(BH_Bitmap *bitmap);
size_t BH_BitmapStride(BH_Bitmap *bitmap);
void *BH_BitmapData(BH_Bitmap *bitmap);
void *BH_BitmapPalette(BH_Bitmap *bitmap);
int BH_BitmapFlags(BH_Bitmap *bitmap);
void BH_BitmapConvertRow(void *src,
int srcFormat,
void *srcPalette,
void *dest,
int destFormat,
void *destPalette,
size_t count);
#endif /* BH_BITMAP_H */
|