diff options
author | Mikael Hermansson <mikael@hermansson.io> | 2023-11-28 00:16:46 +0100 |
---|---|---|
committer | Mikael Hermansson <mikael@hermansson.io> | 2023-11-28 01:03:41 +0100 |
commit | 943d1c8cdf3767a39b8dc053f91479976a43d92e (patch) | |
tree | c543ca1d9c3ec776c346c29ea4a294dc811a23f6 | |
parent | 588d869a3ba91ecef8b42303e27066006f5f7d0e (diff) | |
download | redot-cpp-943d1c8cdf3767a39b8dc053f91479976a43d92e.tar.gz |
Change bit field enums to use `uint64_t` as underlying type
-rw-r--r-- | binding_generator.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/binding_generator.py b/binding_generator.py index 6ebee3d..478dafe 100644 --- a/binding_generator.py +++ b/binding_generator.py @@ -1329,7 +1329,11 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us if "enums" in class_api: for enum_api in class_api["enums"]: - result.append(f'\tenum {enum_api["name"]} {{') + if enum_api["is_bitfield"]: + result.append(f'\tenum {enum_api["name"]} : uint64_t {{') + else: + result.append(f'\tenum {enum_api["name"]} {{') + for value in enum_api["values"]: result.append(f'\t\t{value["name"]} = {value["value"]},') result.append("\t};") @@ -1686,6 +1690,8 @@ def generate_global_constants(api, output_dir): header.append(f"#ifndef {header_guard}") header.append(f"#define {header_guard}") header.append("") + header.append("#include <cstdint>") + header.append("") header.append("namespace godot {") header.append("") @@ -1698,7 +1704,11 @@ def generate_global_constants(api, output_dir): if enum_def["name"].startswith("Variant."): continue - header.append(f'\tenum {enum_def["name"]} {{') + if enum_def["is_bitfield"]: + header.append(f'\tenum {enum_def["name"]} : uint64_t {{') + else: + header.append(f'\tenum {enum_def["name"]} {{') + for value in enum_def["values"]: header.append(f'\t\t{value["name"]} = {value["value"]},') header.append("\t};") |