Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/core/templates/pass_func.h
9973 views
1
/**************************************************************************/
2
/* pass_func.h */
3
/**************************************************************************/
4
/* This file is part of: */
5
/* GODOT ENGINE */
6
/* https://godotengine.org */
7
/**************************************************************************/
8
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
9
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
10
/* */
11
/* Permission is hereby granted, free of charge, to any person obtaining */
12
/* a copy of this software and associated documentation files (the */
13
/* "Software"), to deal in the Software without restriction, including */
14
/* without limitation the rights to use, copy, modify, merge, publish, */
15
/* distribute, sublicense, and/or sell copies of the Software, and to */
16
/* permit persons to whom the Software is furnished to do so, subject to */
17
/* the following conditions: */
18
/* */
19
/* The above copyright notice and this permission notice shall be */
20
/* included in all copies or substantial portions of the Software. */
21
/* */
22
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
23
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
24
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
25
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
26
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
27
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
28
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
29
/**************************************************************************/
30
31
#pragma once
32
33
#define PASS0R(m_r, m_name) \
34
m_r m_name() { \
35
return PASSBASE->m_name(); \
36
}
37
#define PASS0RC(m_r, m_name) \
38
m_r m_name() const { \
39
return PASSBASE->m_name(); \
40
}
41
#define PASS1R(m_r, m_name, m_type1) \
42
m_r m_name(m_type1 arg1) { \
43
return PASSBASE->m_name(arg1); \
44
}
45
#define PASS1RC(m_r, m_name, m_type1) \
46
m_r m_name(m_type1 arg1) const { \
47
return PASSBASE->m_name(arg1); \
48
}
49
#define PASS2R(m_r, m_name, m_type1, m_type2) \
50
m_r m_name(m_type1 arg1, m_type2 arg2) { \
51
return PASSBASE->m_name(arg1, arg2); \
52
}
53
#define PASS2RC(m_r, m_name, m_type1, m_type2) \
54
m_r m_name(m_type1 arg1, m_type2 arg2) const { \
55
return PASSBASE->m_name(arg1, arg2); \
56
}
57
#define PASS3R(m_r, m_name, m_type1, m_type2, m_type3) \
58
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3) { \
59
return PASSBASE->m_name(arg1, arg2, arg3); \
60
}
61
#define PASS3RC(m_r, m_name, m_type1, m_type2, m_type3) \
62
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3) const { \
63
return PASSBASE->m_name(arg1, arg2, arg3); \
64
}
65
#define PASS4R(m_r, m_name, m_type1, m_type2, m_type3, m_type4) \
66
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4) { \
67
return PASSBASE->m_name(arg1, arg2, arg3, arg4); \
68
}
69
#define PASS4RC(m_r, m_name, m_type1, m_type2, m_type3, m_type4) \
70
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4) const { \
71
return PASSBASE->m_name(arg1, arg2, arg3, arg4); \
72
}
73
#define PASS5R(m_r, m_name, m_type1, m_type2, m_type3, m_type4, m_type5) \
74
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5) { \
75
return PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5); \
76
}
77
#define PASS5RC(m_r, m_name, m_type1, m_type2, m_type3, m_type4, m_type5) \
78
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5) const { \
79
return PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5); \
80
}
81
#define PASS6R(m_r, m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6) \
82
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6) { \
83
return PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6); \
84
}
85
#define PASS6RC(m_r, m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6) \
86
m_r m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6) const { \
87
return PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6); \
88
}
89
90
#define PASS0(m_name) \
91
void m_name() { \
92
PASSBASE->m_name(); \
93
}
94
#define PASS1(m_name, m_type1) \
95
void m_name(m_type1 arg1) { \
96
PASSBASE->m_name(arg1); \
97
}
98
#define PASS1C(m_name, m_type1) \
99
void m_name(m_type1 arg1) const { \
100
PASSBASE->m_name(arg1); \
101
}
102
#define PASS2(m_name, m_type1, m_type2) \
103
void m_name(m_type1 arg1, m_type2 arg2) { \
104
PASSBASE->m_name(arg1, arg2); \
105
}
106
#define PASS2C(m_name, m_type1, m_type2) \
107
void m_name(m_type1 arg1, m_type2 arg2) const { \
108
PASSBASE->m_name(arg1, arg2); \
109
}
110
#define PASS3(m_name, m_type1, m_type2, m_type3) \
111
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3) { \
112
PASSBASE->m_name(arg1, arg2, arg3); \
113
}
114
#define PASS4(m_name, m_type1, m_type2, m_type3, m_type4) \
115
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4) { \
116
PASSBASE->m_name(arg1, arg2, arg3, arg4); \
117
}
118
#define PASS5(m_name, m_type1, m_type2, m_type3, m_type4, m_type5) \
119
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5) { \
120
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5); \
121
}
122
#define PASS6(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6) \
123
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6) { \
124
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6); \
125
}
126
#define PASS7(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7) \
127
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7) { \
128
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
129
}
130
#define PASS8(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8) \
131
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8) { \
132
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
133
}
134
#define PASS9(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8, m_type9) \
135
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8, m_type9 arg9) { \
136
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
137
}
138
#define PASS10(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8, m_type9, m_type10) \
139
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8, m_type9 arg9, m_type10 arg10) { \
140
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
141
}
142
#define PASS11(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8, m_type9, m_type10, m_type11) \
143
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8, m_type9 arg9, m_type10 arg10, m_type11 arg11) { \
144
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
145
}
146
#define PASS12(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8, m_type9, m_type10, m_type11, m_type12) \
147
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8, m_type9 arg9, m_type10 arg10, m_type11 arg11, m_type12 arg12) { \
148
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
149
}
150
#define PASS13(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8, m_type9, m_type10, m_type11, m_type12, m_type13) \
151
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8, m_type9 arg9, m_type10 arg10, m_type11 arg11, m_type12 arg12, m_type13 arg13) { \
152
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
153
}
154
#define PASS14(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8, m_type9, m_type10, m_type11, m_type12, m_type13, m_type14) \
155
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8, m_type9 arg9, m_type10 arg10, m_type11 arg11, m_type12 arg12, m_type13 arg13, m_type14 arg14) { \
156
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \
157
}
158
#define PASS15(m_name, m_type1, m_type2, m_type3, m_type4, m_type5, m_type6, m_type7, m_type8, m_type9, m_type10, m_type11, m_type12, m_type13, m_type14, m_type15) \
159
void m_name(m_type1 arg1, m_type2 arg2, m_type3 arg3, m_type4 arg4, m_type5 arg5, m_type6 arg6, m_type7 arg7, m_type8 arg8, m_type9 arg9, m_type10 arg10, m_type11 arg11, m_type12 arg12, m_type13 arg13, m_type14 arg14, m_type15 arg15) { \
160
PASSBASE->m_name(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \
161
}
162
163