GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
include
core
gp_fn_per_bpp.gen.h
1
// SPDX-License-Identifier: GPL-2.1-or-later
2
/*
3
* gp_fn_per_bpp.gen.h
4
*
5
* GENERATED on 2023 07 15 23:40:53 from gp_fn_per_bpp.gen.h.t
6
*
7
* DO NOT MODIFY THIS FILE DIRECTLY!
8
*/
9
#ifndef GP_FN_PER_BPP_GEN_H
10
#define GP_FN_PER_BPP_GEN_H
11
12
/*
13
* All FnPerBpp macros
14
*
15
* Copyright (C) 2011-2014 Cyril Hrubis <metan@ucw.cz>
16
*/
17
18
/*
19
* Macros used to create draving functions from macros.
20
*/
21
#define GP_DEF_FN_PER_BPP(fname, MACRO_NAME, fdraw) \
22
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 1BPP_LE) \
23
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 1BPP_BE) \
24
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 2BPP_LE) \
25
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 2BPP_BE) \
26
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 4BPP_LE) \
27
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 4BPP_BE) \
28
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 8BPP) \
29
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 16BPP) \
30
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 24BPP) \
31
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 32BPP) \
32
GP_DEF_FN_FOR_BPP(fname, MACRO_NAME, fdraw, 18BPP_LE) \
33
34
/*
35
* Branch on bpp and bit_endian.
36
*/
37
#define GP_FN_PER_BPP(FN_NAME, bpp, bit_endian, ...) \
38
switch (bpp) { \
39
case 1: \
40
if (bit_endian == GP_BIT_ENDIAN_LE) \
41
FN_NAME##_1BPP_LE(__VA_ARGS__); \
42
else \
43
FN_NAME##_1BPP_BE(__VA_ARGS__); \
44
break; \
45
case 2: \
46
if (bit_endian == GP_BIT_ENDIAN_LE) \
47
FN_NAME##_2BPP_LE(__VA_ARGS__); \
48
else \
49
FN_NAME##_2BPP_BE(__VA_ARGS__); \
50
break; \
51
case 4: \
52
if (bit_endian == GP_BIT_ENDIAN_LE) \
53
FN_NAME##_4BPP_LE(__VA_ARGS__); \
54
else \
55
FN_NAME##_4BPP_BE(__VA_ARGS__); \
56
break; \
57
case 8: \
58
FN_NAME##_8BPP(__VA_ARGS__); \
59
break; \
60
case 16: \
61
FN_NAME##_16BPP(__VA_ARGS__); \
62
break; \
63
case 24: \
64
FN_NAME##_24BPP(__VA_ARGS__); \
65
break; \
66
case 32: \
67
FN_NAME##_32BPP(__VA_ARGS__); \
68
break; \
69
case 18: \
70
FN_NAME##_18BPP_LE(__VA_ARGS__); \
71
break; \
72
}
73
74
/*
75
* Branch on bpp and bit_endian.
76
*/
77
#define GP_FN_RET_PER_BPP(FN_NAME, bpp, bit_endian, ...) \
78
switch (bpp) { \
79
case 1: \
80
if (bit_endian == GP_BIT_ENDIAN_LE) \
81
return FN_NAME##_1BPP_LE(__VA_ARGS__); \
82
else \
83
return FN_NAME##_1BPP_BE(__VA_ARGS__); \
84
break; \
85
case 2: \
86
if (bit_endian == GP_BIT_ENDIAN_LE) \
87
return FN_NAME##_2BPP_LE(__VA_ARGS__); \
88
else \
89
return FN_NAME##_2BPP_BE(__VA_ARGS__); \
90
break; \
91
case 4: \
92
if (bit_endian == GP_BIT_ENDIAN_LE) \
93
return FN_NAME##_4BPP_LE(__VA_ARGS__); \
94
else \
95
return FN_NAME##_4BPP_BE(__VA_ARGS__); \
96
break; \
97
case 8: \
98
return FN_NAME##_8BPP(__VA_ARGS__); \
99
break; \
100
case 16: \
101
return FN_NAME##_16BPP(__VA_ARGS__); \
102
break; \
103
case 24: \
104
return FN_NAME##_24BPP(__VA_ARGS__); \
105
break; \
106
case 32: \
107
return FN_NAME##_32BPP(__VA_ARGS__); \
108
break; \
109
case 18: \
110
return FN_NAME##_18BPP_LE(__VA_ARGS__); \
111
break; \
112
}
113
114
#endif
/* GP_FN_PER_BPP_GEN_H */
Generated by
1.9.8