27 lines
852 B
Django/Jinja
27 lines
852 B
Django/Jinja
|
|
{%- set enum_config = 'iwa_enums' | load_config -%}
|
|
{% macro cpp_enum(name) -%}
|
|
enum class {{ enum_config[name].cpp_type_name }}
|
|
{
|
|
{%- for key, value in enum_config[name].entries.items(): %}
|
|
{{ key }} = {{ value }},
|
|
{%- endfor %}
|
|
};
|
|
|
|
inline mijin::Optional<{{ enum_config[name].cpp_type_name }}> {{ enum_config[name].cpp_type_name[0] | lower }}{{ enum_config[name].cpp_type_name[1:] }}FromString(std::string_view name)
|
|
{
|
|
{%- for key in enum_config[name].entries.keys(): %}
|
|
if (name == "{{ key | lower }}") {
|
|
return {{ enum_config[name].cpp_type_name }}::{{ key }};
|
|
}
|
|
{%- endfor %}
|
|
return mijin::NULL_OPTIONAL;
|
|
}
|
|
|
|
{%- endmacro %}
|
|
{% macro glsl_enum(name) -%}
|
|
{%- for key, value in enum_config[name].entries.items(): -%}
|
|
const int {{ enum_config[name].glsl_prefix }}{{ key }} = {{ value }};
|
|
{% endfor -%}
|
|
{%- endmacro %}
|