Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/core/core_constants.cpp
9887 views
1
/**************************************************************************/
2
/* core_constants.cpp */
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
#include "core_constants.h"
32
33
#include "core/input/input_event.h"
34
#include "core/object/class_db.h"
35
#include "core/os/keyboard.h"
36
#include "core/variant/variant.h"
37
38
struct _CoreConstant {
39
#ifdef DEBUG_ENABLED
40
bool ignore_value_in_docs = false;
41
bool is_bitfield = false;
42
#endif // DEBUG_ENABLED
43
StringName enum_name;
44
const char *name = nullptr;
45
int64_t value = 0;
46
47
_CoreConstant() {}
48
49
#ifdef DEBUG_ENABLED
50
_CoreConstant(const StringName &p_enum_name, const char *p_name, int64_t p_value, bool p_ignore_value_in_docs = false, bool p_is_bitfield = false) :
51
ignore_value_in_docs(p_ignore_value_in_docs),
52
is_bitfield(p_is_bitfield),
53
enum_name(p_enum_name),
54
name(p_name),
55
value(p_value) {
56
}
57
#else
58
_CoreConstant(const StringName &p_enum_name, const char *p_name, int64_t p_value) :
59
enum_name(p_enum_name),
60
name(p_name),
61
value(p_value) {
62
}
63
#endif // DEBUG_ENABLED
64
};
65
66
static Vector<_CoreConstant> _global_constants;
67
static HashMap<StringName, int> _global_constants_map;
68
static HashMap<StringName, Vector<_CoreConstant>> _global_enums;
69
70
#ifdef DEBUG_ENABLED
71
72
#define BIND_CORE_CONSTANT(m_constant) \
73
_global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant)); \
74
_global_constants_map[#m_constant] = _global_constants.size() - 1;
75
76
#define BIND_CORE_ENUM_CONSTANT(m_constant) \
77
{ \
78
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
79
_global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \
80
_global_constants_map[#m_constant] = _global_constants.size() - 1; \
81
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
82
}
83
84
#define BIND_CORE_BITFIELD_FLAG(m_constant) \
85
{ \
86
StringName enum_name = __constant_get_bitfield_name(m_constant, #m_constant); \
87
_global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant, false, true)); \
88
_global_constants_map[#m_constant] = _global_constants.size() - 1; \
89
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
90
}
91
92
// This just binds enum classes as if they were regular enum constants.
93
#define BIND_CORE_ENUM_CLASS_CONSTANT(m_enum, m_prefix, m_member) \
94
{ \
95
StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \
96
_global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \
97
_global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \
98
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
99
}
100
101
#define BIND_CORE_BITFIELD_CLASS_FLAG(m_enum, m_prefix, m_member) \
102
{ \
103
StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_prefix "_" #m_member); \
104
_global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member, false, true)); \
105
_global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \
106
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
107
}
108
109
#define BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(m_enum, m_name, m_member) \
110
{ \
111
StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_name); \
112
_global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member)); \
113
_global_constants_map[#m_name] = _global_constants.size() - 1; \
114
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
115
}
116
117
#define BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(m_enum, m_name, m_member) \
118
{ \
119
StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_name); \
120
_global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member, false, true)); \
121
_global_constants_map[#m_name] = _global_constants.size() - 1; \
122
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
123
}
124
125
#define BIND_CORE_ENUM_CLASS_CONSTANT_NO_VAL(m_enum, m_prefix, m_member) \
126
{ \
127
StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \
128
_global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member, true)); \
129
_global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \
130
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
131
}
132
133
#define BIND_CORE_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \
134
{ \
135
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
136
_global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant)); \
137
_global_constants_map[m_custom_name] = _global_constants.size() - 1; \
138
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
139
}
140
141
#define BIND_CORE_CONSTANT_NO_VAL(m_constant) \
142
_global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant, true)); \
143
_global_constants_map[#m_constant] = _global_constants.size() - 1;
144
145
#define BIND_CORE_ENUM_CONSTANT_NO_VAL(m_constant) \
146
{ \
147
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
148
_global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant, true)); \
149
_global_constants_map[#m_constant] = _global_constants.size() - 1; \
150
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
151
}
152
153
#define BIND_CORE_ENUM_CONSTANT_CUSTOM_NO_VAL(m_custom_name, m_constant) \
154
{ \
155
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
156
_global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant, true)); \
157
_global_constants_map[m_custom_name] = _global_constants.size() - 1; \
158
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
159
}
160
161
#else
162
163
#define BIND_CORE_CONSTANT(m_constant) \
164
_global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant)); \
165
_global_constants_map[#m_constant] = _global_constants.size() - 1;
166
167
#define BIND_CORE_ENUM_CONSTANT(m_constant) \
168
{ \
169
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
170
_global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \
171
_global_constants_map[#m_constant] = _global_constants.size() - 1; \
172
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
173
}
174
175
#define BIND_CORE_BITFIELD_FLAG(m_constant) \
176
{ \
177
StringName enum_name = __constant_get_bitfield_name(m_constant, #m_constant); \
178
_global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \
179
_global_constants_map[#m_constant] = _global_constants.size() - 1; \
180
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
181
}
182
183
// This just binds enum classes as if they were regular enum constants.
184
#define BIND_CORE_ENUM_CLASS_CONSTANT(m_enum, m_prefix, m_member) \
185
{ \
186
StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \
187
_global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \
188
_global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \
189
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
190
}
191
192
#define BIND_CORE_BITFIELD_CLASS_FLAG(m_enum, m_prefix, m_member) \
193
{ \
194
StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_prefix "_" #m_member); \
195
_global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \
196
_global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \
197
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
198
}
199
200
#define BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(m_enum, m_name, m_member) \
201
{ \
202
StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_name); \
203
_global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member)); \
204
_global_constants_map[#m_name] = _global_constants.size() - 1; \
205
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
206
}
207
208
#define BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(m_enum, m_name, m_member) \
209
{ \
210
StringName enum_name = __constant_get_bitfield_name(m_enum::m_member, #m_name); \
211
_global_constants.push_back(_CoreConstant(enum_name, #m_name, (int64_t)m_enum::m_member)); \
212
_global_constants_map[#m_name] = _global_constants.size() - 1; \
213
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
214
}
215
216
#define BIND_CORE_ENUM_CLASS_CONSTANT_NO_VAL(m_enum, m_prefix, m_member) \
217
{ \
218
StringName enum_name = __constant_get_enum_name(m_enum::m_member, #m_prefix "_" #m_member); \
219
_global_constants.push_back(_CoreConstant(enum_name, #m_prefix "_" #m_member, (int64_t)m_enum::m_member)); \
220
_global_constants_map[#m_prefix "_" #m_member] = _global_constants.size() - 1; \
221
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
222
}
223
224
#define BIND_CORE_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \
225
{ \
226
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
227
_global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant)); \
228
_global_constants_map[m_custom_name] = _global_constants.size() - 1; \
229
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
230
}
231
232
#define BIND_CORE_CONSTANT_NO_VAL(m_constant) \
233
_global_constants.push_back(_CoreConstant(StringName(), #m_constant, m_constant)); \
234
_global_constants_map[#m_constant] = _global_constants.size() - 1;
235
236
#define BIND_CORE_ENUM_CONSTANT_NO_VAL(m_constant) \
237
{ \
238
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
239
_global_constants.push_back(_CoreConstant(enum_name, #m_constant, m_constant)); \
240
_global_constants_map[#m_constant] = _global_constants.size() - 1; \
241
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
242
}
243
244
#define BIND_CORE_ENUM_CONSTANT_CUSTOM_NO_VAL(m_custom_name, m_constant) \
245
{ \
246
StringName enum_name = __constant_get_enum_name(m_constant, #m_constant); \
247
_global_constants.push_back(_CoreConstant(enum_name, m_custom_name, m_constant)); \
248
_global_constants_map[m_custom_name] = _global_constants.size() - 1; \
249
_global_enums[enum_name].push_back((_global_constants.ptr())[_global_constants.size() - 1]); \
250
}
251
252
#endif // DEBUG_ENABLED
253
254
void register_global_constants() {
255
BIND_CORE_ENUM_CONSTANT(SIDE_LEFT);
256
BIND_CORE_ENUM_CONSTANT(SIDE_TOP);
257
BIND_CORE_ENUM_CONSTANT(SIDE_RIGHT);
258
BIND_CORE_ENUM_CONSTANT(SIDE_BOTTOM);
259
260
BIND_CORE_ENUM_CONSTANT(CORNER_TOP_LEFT);
261
BIND_CORE_ENUM_CONSTANT(CORNER_TOP_RIGHT);
262
BIND_CORE_ENUM_CONSTANT(CORNER_BOTTOM_RIGHT);
263
BIND_CORE_ENUM_CONSTANT(CORNER_BOTTOM_LEFT);
264
265
BIND_CORE_ENUM_CONSTANT(VERTICAL);
266
BIND_CORE_ENUM_CONSTANT(HORIZONTAL);
267
268
BIND_CORE_ENUM_CONSTANT(CLOCKWISE);
269
BIND_CORE_ENUM_CONSTANT(COUNTERCLOCKWISE);
270
271
BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_LEFT);
272
BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_CENTER);
273
BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_RIGHT);
274
BIND_CORE_ENUM_CONSTANT(HORIZONTAL_ALIGNMENT_FILL);
275
276
BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_TOP);
277
BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_CENTER);
278
BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_BOTTOM);
279
BIND_CORE_ENUM_CONSTANT(VERTICAL_ALIGNMENT_FILL);
280
281
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TOP_TO);
282
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_CENTER_TO);
283
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_BASELINE_TO);
284
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_BOTTOM_TO);
285
286
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_TOP);
287
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_CENTER);
288
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_BASELINE);
289
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TO_BOTTOM);
290
291
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TOP);
292
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_CENTER);
293
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_BOTTOM);
294
295
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_IMAGE_MASK);
296
BIND_CORE_ENUM_CONSTANT(INLINE_ALIGNMENT_TEXT_MASK);
297
298
BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, XYZ);
299
BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, XZY);
300
BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, YXZ);
301
BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, YZX);
302
BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, ZXY);
303
BIND_CORE_ENUM_CLASS_CONSTANT(EulerOrder, EULER_ORDER, ZYX);
304
305
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NONE);
306
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SPECIAL);
307
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ESCAPE);
308
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, TAB);
309
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACKTAB);
310
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACKSPACE);
311
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ENTER);
312
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_ENTER);
313
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, INSERT);
314
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_DELETE, KEY_DELETE);
315
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PAUSE);
316
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PRINT);
317
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SYSREQ);
318
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CLEAR);
319
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HOME);
320
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, END);
321
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LEFT);
322
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UP);
323
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, RIGHT);
324
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DOWN);
325
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PAGEUP);
326
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PAGEDOWN);
327
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SHIFT);
328
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CTRL);
329
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, META);
330
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ALT);
331
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CAPSLOCK);
332
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NUMLOCK);
333
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SCROLLLOCK);
334
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F1);
335
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F2);
336
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F3);
337
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F4);
338
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F5);
339
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F6);
340
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F7);
341
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F8);
342
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F9);
343
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F10);
344
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F11);
345
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F12);
346
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F13);
347
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F14);
348
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F15);
349
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F16);
350
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F17);
351
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F18);
352
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F19);
353
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F20);
354
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F21);
355
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F22);
356
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F23);
357
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F24);
358
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F25);
359
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F26);
360
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F27);
361
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F28);
362
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F29);
363
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F30);
364
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F31);
365
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F32);
366
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F33);
367
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F34);
368
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F35);
369
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_MULTIPLY);
370
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_DIVIDE);
371
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_SUBTRACT);
372
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_PERIOD);
373
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_ADD);
374
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_0);
375
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_1);
376
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_2);
377
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_3);
378
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_4);
379
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_5);
380
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_6);
381
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_7);
382
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_8);
383
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_9);
384
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MENU);
385
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HYPER);
386
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HELP);
387
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACK);
388
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, FORWARD);
389
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, STOP);
390
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, REFRESH);
391
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEDOWN);
392
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEMUTE);
393
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEUP);
394
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIAPLAY);
395
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIASTOP);
396
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIAPREVIOUS);
397
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIANEXT);
398
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIARECORD);
399
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HOMEPAGE);
400
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, FAVORITES);
401
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SEARCH);
402
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, STANDBY);
403
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, OPENURL);
404
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHMAIL);
405
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHMEDIA);
406
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH0);
407
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH1);
408
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH2);
409
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH3);
410
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH4);
411
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH5);
412
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH6);
413
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH7);
414
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH8);
415
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCH9);
416
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHA);
417
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHB);
418
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHC);
419
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHD);
420
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHE);
421
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHF);
422
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GLOBE);
423
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KEYBOARD);
424
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_EISU);
425
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_KANA);
426
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UNKNOWN);
427
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SPACE);
428
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EXCLAM);
429
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, QUOTEDBL);
430
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NUMBERSIGN);
431
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DOLLAR);
432
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PERCENT);
433
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, AMPERSAND);
434
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, APOSTROPHE);
435
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PARENLEFT);
436
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PARENRIGHT);
437
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASTERISK);
438
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PLUS);
439
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, COMMA);
440
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MINUS);
441
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PERIOD);
442
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SLASH);
443
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_0, KEY_0);
444
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_1, KEY_1);
445
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_2, KEY_2);
446
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_3, KEY_3);
447
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_4, KEY_4);
448
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_5, KEY_5);
449
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_6, KEY_6);
450
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_7, KEY_7);
451
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_8, KEY_8);
452
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_9, KEY_9);
453
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, COLON);
454
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SEMICOLON);
455
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LESS);
456
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EQUAL);
457
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GREATER);
458
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, QUESTION);
459
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, AT);
460
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, A);
461
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, B);
462
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, C);
463
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, D);
464
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, E);
465
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, F);
466
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, G);
467
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, H);
468
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, I);
469
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, J);
470
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, K);
471
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, L);
472
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, M);
473
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, N);
474
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, O);
475
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, P);
476
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, Q);
477
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, R);
478
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, S);
479
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, T);
480
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, U);
481
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, V);
482
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, W);
483
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, X);
484
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, Y);
485
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, Z);
486
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACKETLEFT);
487
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACKSLASH);
488
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACKETRIGHT);
489
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASCIICIRCUM);
490
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UNDERSCORE);
491
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, QUOTELEFT);
492
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACELEFT);
493
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BAR);
494
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACERIGHT);
495
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASCIITILDE);
496
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, YEN);
497
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SECTION);
498
499
BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_CODE_MASK, CODE_MASK);
500
BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_MODIFIER_MASK, MODIFIER_MASK);
501
BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, CMD_OR_CTRL);
502
BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, SHIFT);
503
BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, ALT);
504
BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, META);
505
BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, CTRL);
506
BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, KPAD);
507
BIND_CORE_BITFIELD_CLASS_FLAG(KeyModifierMask, KEY_MASK, GROUP_SWITCH);
508
509
BIND_CORE_ENUM_CLASS_CONSTANT(KeyLocation, KEY_LOCATION, UNSPECIFIED);
510
BIND_CORE_ENUM_CLASS_CONSTANT(KeyLocation, KEY_LOCATION, LEFT);
511
BIND_CORE_ENUM_CLASS_CONSTANT(KeyLocation, KEY_LOCATION, RIGHT);
512
513
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, NONE);
514
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, LEFT);
515
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, RIGHT);
516
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, MIDDLE);
517
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_UP);
518
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_DOWN);
519
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_LEFT);
520
BIND_CORE_ENUM_CLASS_CONSTANT(MouseButton, MOUSE_BUTTON, WHEEL_RIGHT);
521
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(MouseButton, MOUSE_BUTTON_XBUTTON1, MB_XBUTTON1);
522
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(MouseButton, MOUSE_BUTTON_XBUTTON2, MB_XBUTTON2);
523
524
BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, LEFT);
525
BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, RIGHT);
526
BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MIDDLE);
527
BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MB_XBUTTON1);
528
BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MB_XBUTTON2);
529
530
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, INVALID);
531
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, A);
532
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, B);
533
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, X);
534
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, Y);
535
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, BACK);
536
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, GUIDE);
537
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, START);
538
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, LEFT_STICK);
539
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, RIGHT_STICK);
540
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, LEFT_SHOULDER);
541
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, RIGHT_SHOULDER);
542
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_UP);
543
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_DOWN);
544
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_LEFT);
545
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, DPAD_RIGHT);
546
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, MISC1);
547
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE1);
548
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE2);
549
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE3);
550
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, PADDLE4);
551
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, TOUCHPAD);
552
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, SDL_MAX);
553
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, MAX);
554
555
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, INVALID);
556
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_X);
557
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_Y);
558
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_X);
559
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_Y);
560
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_LEFT);
561
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_RIGHT);
562
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, SDL_MAX);
563
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, MAX);
564
565
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NONE);
566
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NOTE_OFF);
567
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NOTE_ON);
568
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, AFTERTOUCH);
569
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CONTROL_CHANGE);
570
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, PROGRAM_CHANGE);
571
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CHANNEL_PRESSURE);
572
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, PITCH_BEND);
573
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SYSTEM_EXCLUSIVE);
574
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, QUARTER_FRAME);
575
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SONG_POSITION_POINTER);
576
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SONG_SELECT);
577
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, TUNE_REQUEST);
578
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, TIMING_CLOCK);
579
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, START);
580
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CONTINUE);
581
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, STOP);
582
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, ACTIVE_SENSING);
583
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SYSTEM_RESET);
584
585
// error list
586
587
BIND_CORE_ENUM_CONSTANT(OK); // (0)
588
BIND_CORE_ENUM_CONSTANT(FAILED);
589
BIND_CORE_ENUM_CONSTANT(ERR_UNAVAILABLE);
590
BIND_CORE_ENUM_CONSTANT(ERR_UNCONFIGURED);
591
BIND_CORE_ENUM_CONSTANT(ERR_UNAUTHORIZED);
592
BIND_CORE_ENUM_CONSTANT(ERR_PARAMETER_RANGE_ERROR); // (5)
593
BIND_CORE_ENUM_CONSTANT(ERR_OUT_OF_MEMORY);
594
BIND_CORE_ENUM_CONSTANT(ERR_FILE_NOT_FOUND);
595
BIND_CORE_ENUM_CONSTANT(ERR_FILE_BAD_DRIVE);
596
BIND_CORE_ENUM_CONSTANT(ERR_FILE_BAD_PATH);
597
BIND_CORE_ENUM_CONSTANT(ERR_FILE_NO_PERMISSION); // (10)
598
BIND_CORE_ENUM_CONSTANT(ERR_FILE_ALREADY_IN_USE);
599
BIND_CORE_ENUM_CONSTANT(ERR_FILE_CANT_OPEN);
600
BIND_CORE_ENUM_CONSTANT(ERR_FILE_CANT_WRITE);
601
BIND_CORE_ENUM_CONSTANT(ERR_FILE_CANT_READ);
602
BIND_CORE_ENUM_CONSTANT(ERR_FILE_UNRECOGNIZED); // (15)
603
BIND_CORE_ENUM_CONSTANT(ERR_FILE_CORRUPT);
604
BIND_CORE_ENUM_CONSTANT(ERR_FILE_MISSING_DEPENDENCIES);
605
BIND_CORE_ENUM_CONSTANT(ERR_FILE_EOF);
606
BIND_CORE_ENUM_CONSTANT(ERR_CANT_OPEN);
607
BIND_CORE_ENUM_CONSTANT(ERR_CANT_CREATE); // (20)
608
BIND_CORE_ENUM_CONSTANT(ERR_QUERY_FAILED);
609
BIND_CORE_ENUM_CONSTANT(ERR_ALREADY_IN_USE);
610
BIND_CORE_ENUM_CONSTANT(ERR_LOCKED);
611
BIND_CORE_ENUM_CONSTANT(ERR_TIMEOUT);
612
BIND_CORE_ENUM_CONSTANT(ERR_CANT_CONNECT); // (25)
613
BIND_CORE_ENUM_CONSTANT(ERR_CANT_RESOLVE);
614
BIND_CORE_ENUM_CONSTANT(ERR_CONNECTION_ERROR);
615
BIND_CORE_ENUM_CONSTANT(ERR_CANT_ACQUIRE_RESOURCE);
616
BIND_CORE_ENUM_CONSTANT(ERR_CANT_FORK);
617
BIND_CORE_ENUM_CONSTANT(ERR_INVALID_DATA); // (30)
618
BIND_CORE_ENUM_CONSTANT(ERR_INVALID_PARAMETER);
619
BIND_CORE_ENUM_CONSTANT(ERR_ALREADY_EXISTS);
620
BIND_CORE_ENUM_CONSTANT(ERR_DOES_NOT_EXIST);
621
BIND_CORE_ENUM_CONSTANT(ERR_DATABASE_CANT_READ);
622
BIND_CORE_ENUM_CONSTANT(ERR_DATABASE_CANT_WRITE); // (35)
623
BIND_CORE_ENUM_CONSTANT(ERR_COMPILATION_FAILED);
624
BIND_CORE_ENUM_CONSTANT(ERR_METHOD_NOT_FOUND);
625
BIND_CORE_ENUM_CONSTANT(ERR_LINK_FAILED);
626
BIND_CORE_ENUM_CONSTANT(ERR_SCRIPT_FAILED);
627
BIND_CORE_ENUM_CONSTANT(ERR_CYCLIC_LINK); // (40)
628
BIND_CORE_ENUM_CONSTANT(ERR_INVALID_DECLARATION);
629
BIND_CORE_ENUM_CONSTANT(ERR_DUPLICATE_SYMBOL);
630
BIND_CORE_ENUM_CONSTANT(ERR_PARSE_ERROR);
631
BIND_CORE_ENUM_CONSTANT(ERR_BUSY);
632
BIND_CORE_ENUM_CONSTANT(ERR_SKIP); // (45)
633
BIND_CORE_ENUM_CONSTANT(ERR_HELP);
634
BIND_CORE_ENUM_CONSTANT(ERR_BUG);
635
BIND_CORE_ENUM_CONSTANT(ERR_PRINTER_ON_FIRE);
636
637
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NONE);
638
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_RANGE);
639
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_ENUM);
640
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_ENUM_SUGGESTION);
641
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_EXP_EASING);
642
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LINK);
643
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_FLAGS);
644
645
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_RENDER);
646
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_PHYSICS);
647
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_NAVIGATION);
648
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_RENDER);
649
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_PHYSICS);
650
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_NAVIGATION);
651
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_AVOIDANCE);
652
653
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_FILE);
654
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_DIR);
655
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_FILE);
656
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_DIR);
657
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_RESOURCE_TYPE);
658
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_MULTILINE_TEXT);
659
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_EXPRESSION);
660
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_PLACEHOLDER_TEXT);
661
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_COLOR_NO_ALPHA);
662
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_OBJECT_ID);
663
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_TYPE_STRING);
664
665
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE);
666
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_OBJECT_TOO_BIG);
667
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NODE_PATH_VALID_TYPES);
668
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_SAVE_FILE);
669
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_SAVE_FILE);
670
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_INT_IS_OBJECTID);
671
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_INT_IS_POINTER);
672
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_ARRAY_TYPE);
673
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_DICTIONARY_TYPE);
674
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LOCALE_ID);
675
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_LOCALIZABLE_STRING);
676
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_NODE_TYPE);
677
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_HIDE_QUATERNION_EDIT);
678
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_PASSWORD);
679
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_TOOL_BUTTON);
680
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_ONESHOT);
681
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_GROUP_ENABLE);
682
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_INPUT_NAME);
683
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_FILE_PATH);
684
BIND_CORE_ENUM_CONSTANT(PROPERTY_HINT_MAX);
685
686
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NONE);
687
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_STORAGE);
688
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_EDITOR);
689
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_INTERNAL);
690
691
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CHECKABLE);
692
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CHECKED);
693
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_GROUP);
694
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CATEGORY);
695
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SUBGROUP);
696
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CLASS_IS_BITFIELD);
697
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NO_INSTANCE_STATE);
698
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_RESTART_IF_CHANGED);
699
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SCRIPT_VARIABLE);
700
701
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_STORE_IF_NULL);
702
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED);
703
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE);
704
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_CLASS_IS_ENUM);
705
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NIL_IS_VARIANT);
706
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_ARRAY);
707
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_ALWAYS_DUPLICATE);
708
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NEVER_DUPLICATE);
709
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_HIGH_END_GFX);
710
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT);
711
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT);
712
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_KEYING_INCREMENTS);
713
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_DEFERRED_SET_RESOURCE);
714
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT);
715
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_EDITOR_BASIC_SETTING);
716
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_READ_ONLY);
717
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_SECRET);
718
719
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_DEFAULT);
720
BIND_CORE_BITFIELD_FLAG(PROPERTY_USAGE_NO_EDITOR);
721
722
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_NORMAL);
723
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_EDITOR);
724
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_CONST);
725
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_VIRTUAL);
726
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_VARARG);
727
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_STATIC);
728
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_OBJECT_CORE);
729
BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_VIRTUAL_REQUIRED);
730
BIND_CORE_BITFIELD_FLAG(METHOD_FLAGS_DEFAULT);
731
732
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_NIL", Variant::NIL);
733
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_BOOL", Variant::BOOL);
734
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_INT", Variant::INT);
735
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_FLOAT", Variant::FLOAT);
736
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_STRING", Variant::STRING);
737
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2", Variant::VECTOR2);
738
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2I", Variant::VECTOR2I);
739
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_RECT2", Variant::RECT2);
740
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_RECT2I", Variant::RECT2I);
741
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3", Variant::VECTOR3);
742
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3I", Variant::VECTOR3I);
743
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM2D", Variant::TRANSFORM2D);
744
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR4", Variant::VECTOR4);
745
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR4I", Variant::VECTOR4I);
746
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PLANE", Variant::PLANE);
747
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_QUATERNION", Variant::QUATERNION);
748
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_AABB", Variant::AABB);
749
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_BASIS", Variant::BASIS);
750
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM3D", Variant::TRANSFORM3D);
751
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PROJECTION", Variant::PROJECTION);
752
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_COLOR", Variant::COLOR);
753
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_STRING_NAME", Variant::STRING_NAME);
754
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_NODE_PATH", Variant::NODE_PATH);
755
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_RID", Variant::RID);
756
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_OBJECT", Variant::OBJECT);
757
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_CALLABLE", Variant::CALLABLE);
758
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_SIGNAL", Variant::SIGNAL);
759
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_DICTIONARY", Variant::DICTIONARY);
760
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_ARRAY", Variant::ARRAY);
761
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_BYTE_ARRAY", Variant::PACKED_BYTE_ARRAY);
762
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_INT32_ARRAY", Variant::PACKED_INT32_ARRAY);
763
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_INT64_ARRAY", Variant::PACKED_INT64_ARRAY);
764
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_FLOAT32_ARRAY", Variant::PACKED_FLOAT32_ARRAY);
765
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_FLOAT64_ARRAY", Variant::PACKED_FLOAT64_ARRAY);
766
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_STRING_ARRAY", Variant::PACKED_STRING_ARRAY);
767
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_VECTOR2_ARRAY", Variant::PACKED_VECTOR2_ARRAY);
768
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_VECTOR3_ARRAY", Variant::PACKED_VECTOR3_ARRAY);
769
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_COLOR_ARRAY", Variant::PACKED_COLOR_ARRAY);
770
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_VECTOR4_ARRAY", Variant::PACKED_VECTOR4_ARRAY);
771
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_MAX", Variant::VARIANT_MAX);
772
773
//comparison
774
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_EQUAL", Variant::OP_EQUAL);
775
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_NOT_EQUAL", Variant::OP_NOT_EQUAL);
776
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_LESS", Variant::OP_LESS);
777
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_LESS_EQUAL", Variant::OP_LESS_EQUAL);
778
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_GREATER", Variant::OP_GREATER);
779
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_GREATER_EQUAL", Variant::OP_GREATER_EQUAL);
780
//mathematic
781
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_ADD", Variant::OP_ADD);
782
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_SUBTRACT", Variant::OP_SUBTRACT);
783
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_MULTIPLY", Variant::OP_MULTIPLY);
784
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_DIVIDE", Variant::OP_DIVIDE);
785
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_NEGATE", Variant::OP_NEGATE);
786
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_POSITIVE", Variant::OP_POSITIVE);
787
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_MODULE", Variant::OP_MODULE);
788
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_POWER", Variant::OP_POWER);
789
//bitwise
790
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_SHIFT_LEFT", Variant::OP_SHIFT_LEFT);
791
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_SHIFT_RIGHT", Variant::OP_SHIFT_RIGHT);
792
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_AND", Variant::OP_BIT_AND);
793
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_OR", Variant::OP_BIT_OR);
794
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_XOR", Variant::OP_BIT_XOR);
795
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_BIT_NEGATE", Variant::OP_BIT_NEGATE);
796
//logic
797
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_AND", Variant::OP_AND);
798
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_OR", Variant::OP_OR);
799
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_XOR", Variant::OP_XOR);
800
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_NOT", Variant::OP_NOT);
801
//containment
802
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_IN", Variant::OP_IN);
803
BIND_CORE_ENUM_CONSTANT_CUSTOM("OP_MAX", Variant::OP_MAX);
804
}
805
806
void unregister_global_constants() {
807
_global_constants.clear();
808
_global_constants_map.clear();
809
_global_enums.clear();
810
}
811
812
int CoreConstants::get_global_constant_count() {
813
return _global_constants.size();
814
}
815
816
StringName CoreConstants::get_global_constant_enum(int p_idx) {
817
return _global_constants[p_idx].enum_name;
818
}
819
820
#ifdef DEBUG_ENABLED
821
bool CoreConstants::is_global_constant_bitfield(int p_idx) {
822
return _global_constants[p_idx].is_bitfield;
823
}
824
825
bool CoreConstants::get_ignore_value_in_docs(int p_idx) {
826
return _global_constants[p_idx].ignore_value_in_docs;
827
}
828
#else
829
bool CoreConstants::is_global_constant_bitfield(int p_idx) {
830
return false;
831
}
832
833
bool CoreConstants::get_ignore_value_in_docs(int p_idx) {
834
return false;
835
}
836
#endif // DEBUG_ENABLED
837
838
const char *CoreConstants::get_global_constant_name(int p_idx) {
839
return _global_constants[p_idx].name;
840
}
841
842
int64_t CoreConstants::get_global_constant_value(int p_idx) {
843
return _global_constants[p_idx].value;
844
}
845
846
bool CoreConstants::is_global_constant(const StringName &p_name) {
847
return _global_constants_map.has(p_name);
848
}
849
850
int CoreConstants::get_global_constant_index(const StringName &p_name) {
851
ERR_FAIL_COND_V_MSG(!_global_constants_map.has(p_name), -1, "Trying to get index of non-existing constant.");
852
return _global_constants_map[p_name];
853
}
854
855
bool CoreConstants::is_global_enum(const StringName &p_enum) {
856
return _global_enums.has(p_enum);
857
}
858
859
void CoreConstants::get_enum_values(const StringName &p_enum, HashMap<StringName, int64_t> *p_values) {
860
ERR_FAIL_NULL_MSG(p_values, "Trying to get enum values with null map.");
861
ERR_FAIL_COND_MSG(!_global_enums.has(p_enum), "Trying to get values of non-existing enum.");
862
for (const _CoreConstant &constant : _global_enums[p_enum]) {
863
(*p_values)[constant.name] = constant.value;
864
}
865
}
866
867
#ifdef TOOLS_ENABLED
868
869
void CoreConstants::get_global_enums(List<StringName> *r_values) {
870
for (const KeyValue<StringName, Vector<_CoreConstant>> &global_enum : _global_enums) {
871
r_values->push_back(global_enum.key);
872
}
873
}
874
875
#endif
876
877