17 entt::meta_factory<settings::app_settings>{}
18 .type(
"app_settings"_hs)
23 .data<&settings::app_settings::company>(
"company"_hs)
29 .data<&settings::app_settings::product>(
"product"_hs)
35 .data<&settings::app_settings::version>(
"version"_hs)
45 try_save(ar, ser20::make_nvp(
"company", obj.company));
46 try_save(ar, ser20::make_nvp(
"product", obj.product));
47 try_save(ar, ser20::make_nvp(
"version", obj.version));
52 try_load(ar, ser20::make_nvp(
"company", obj.company));
53 try_load(ar, ser20::make_nvp(
"product", obj.product));
54 try_load(ar, ser20::make_nvp(
"version", obj.version));
60 entt::meta_factory<settings::asset_settings::texture_importer_settings>{}
61 .type(
"texture_importer_settings"_hs)
66 .data<&settings::asset_settings::texture_importer_settings::default_max_size>(
"default_max_size"_hs)
72 .data<&settings::asset_settings::texture_importer_settings::default_compression>(
"default_compression"_hs)
82 try_save(ar, ser20::make_nvp(
"default_max_size", obj.default_max_size));
83 try_save(ar, ser20::make_nvp(
"default_compression", obj.default_compression));
88 try_load(ar, ser20::make_nvp(
"default_max_size", obj.default_max_size));
89 try_load(ar, ser20::make_nvp(
"default_compression", obj.default_compression));
94 try_save(ar, ser20::make_nvp(
"texture", obj.texture));
99 try_load(ar, ser20::make_nvp(
"texture", obj.texture));
105 entt::meta_factory<settings::graphics_settings>{}
106 .type(
"graphics_settings"_hs)
130 entt::meta_factory<settings::standalone_settings>{}
131 .type(
"standalone_settings"_hs)
136 .data<&settings::standalone_settings::startup_scene>(
"startup_scene"_hs)
146 try_save(ar, ser20::make_nvp(
"startup_scene", obj.startup_scene));
151 try_load(ar, ser20::make_nvp(
"startup_scene", obj.startup_scene));
156 entt::meta_factory<settings::time_settings>{}
157 .type(
"time_settings"_hs)
162 .data<&settings::time_settings::fixed_timestep>(
"fixed_timestep"_hs)
167 entt::attribute{
"tooltip",
"A framerate-idependent interval which dictates when physics calculations and FixedUpdate events are performed."},
169 .data<&settings::time_settings::max_fixed_steps>(
"max_fixed_steps"_hs)
173 entt::attribute{
"tooltip",
"A cap for framerate-idependent worst case scenario. No more than this much fixed updates per frame."},
179 try_save(ar, ser20::make_nvp(
"fixed_timestep", obj.fixed_timestep));
180 try_save(ar, ser20::make_nvp(
"max_fixed_steps", obj.max_fixed_steps));
185 try_load(ar, ser20::make_nvp(
"fixed_timestep", obj.fixed_timestep));
186 try_load(ar, ser20::make_nvp(
"max_fixed_steps", obj.max_fixed_steps));
191 entt::meta_factory<settings::layer_settings>{}
192 .type(
"layer_settings"_hs)
197 .data<&settings::layer_settings::layers>(
"layers"_hs)
208 try_save(ar, ser20::make_nvp(
"layers", obj.layers));
213 try_load(ar, ser20::make_nvp(
"layers", obj.layers));
218 try_save(ar, ser20::make_nvp(
"actions", obj.actions));
223 try_load(ar, ser20::make_nvp(
"actions", obj.actions));
229 try_save(ar, ser20::make_nvp(
"name", obj.name));
230 try_save(ar, ser20::make_nvp(
"width", obj.width));
231 try_save(ar, ser20::make_nvp(
"height", obj.height));
232 try_save(ar, ser20::make_nvp(
"aspect", obj.aspect));
237 try_load(ar, ser20::make_nvp(
"name", obj.name));
238 try_load(ar, ser20::make_nvp(
"width", obj.width));
239 try_load(ar, ser20::make_nvp(
"height", obj.height));
240 try_load(ar, ser20::make_nvp(
"aspect", obj.aspect));
245 try_save(ar, ser20::make_nvp(
"resolutions", obj.resolutions));
246 try_save(ar, ser20::make_nvp(
"current_resolution", obj.current_resolution));
251 try_load(ar, ser20::make_nvp(
"resolutions", obj.resolutions));
252 try_load(ar, ser20::make_nvp(
"current_resolution", obj.current_resolution));
257 entt::meta_factory<settings::resolution_settings::resolution>{}
258 .type(
"resolution"_hs)
263 .data<&settings::resolution_settings::resolution::name>(
"name"_hs)
269 .data<&settings::resolution_settings::resolution::width>(
"width"_hs)
276 .data<&settings::resolution_settings::resolution::height>(
"height"_hs)
283 .data<&settings::resolution_settings::resolution::aspect>(
"aspect"_hs)
294 entt::meta_factory<settings::resolution_settings>{}
295 .type(
"resolution_settings"_hs)
300 .data<&settings::resolution_settings::resolutions>(
"resolutions"_hs)
306 .data<&settings::resolution_settings::current_resolution>(
"current_resolution"_hs)
317 entt::meta_factory<settings>{}
323 .data<&settings::app>(
"app"_hs)
329 .data<&settings::graphics>(
"graphics"_hs)
335 .data<&settings::standalone>(
"standalone"_hs)
341 .data<&settings::resolution>(
"resolution"_hs)
351 try_save(ar, ser20::make_nvp(
"app", obj.app));
352 try_save(ar, ser20::make_nvp(
"assets", obj.assets));
353 try_save(ar, ser20::make_nvp(
"graphics", obj.graphics));
354 try_save(ar, ser20::make_nvp(
"standalone", obj.standalone));
355 try_save(ar, ser20::make_nvp(
"layer", obj.layer));
356 try_save(ar, ser20::make_nvp(
"input", obj.input));
357 try_save(ar, ser20::make_nvp(
"time", obj.time));
358 try_save(ar, ser20::make_nvp(
"resolutions", obj.resolution));
365 try_load(ar, ser20::make_nvp(
"app", obj.app));
366 try_load(ar, ser20::make_nvp(
"assets", obj.assets));
367 try_load(ar, ser20::make_nvp(
"graphics", obj.graphics));
368 try_load(ar, ser20::make_nvp(
"standalone", obj.standalone));
369 try_load(ar, ser20::make_nvp(
"layer", obj.layer));
370 try_load(ar, ser20::make_nvp(
"input", obj.input));
371 try_load(ar, ser20::make_nvp(
"time", obj.time));
372 try_load(ar, ser20::make_nvp(
"resolutions", obj.resolution));
379 std::ofstream stream(absolute_path);
383 try_save(ar, ser20::make_nvp(
"settings", obj));
389 std::ofstream stream(absolute_path, std::ios::binary);
393 try_save(ar, ser20::make_nvp(
"settings", obj));
399 std::ifstream stream(absolute_path);
403 return try_load(ar, ser20::make_nvp(
"settings", obj));
411 std::ifstream stream(absolute_path, std::ios::binary);
415 return try_load(ar, ser20::make_nvp(
"settings", obj));
attributes::value_type attribute
std::map< std::string, meta_any > attributes
auto create_oarchive_associative(std::ostream &stream)
BinaryInputArchive iarchive_binary_t
auto create_iarchive_associative(std::istream &stream)
simd::JSONOutputArchive oarchive_associative_t
BinaryOutputArchive oarchive_binary_t
simd::JSONInputArchive iarchive_associative_t
void save_to_file_bin(const std::string &absolute_path, const animation_clip &obj)
void load_from_file(const std::string &absolute_path, animation_clip &obj)
auto get_reserved_layers() -> const std::vector< std::string > &
void save_to_file(const std::string &absolute_path, const animation_clip &obj)
void load_from_file_bin(const std::string &absolute_path, animation_clip &obj)
#define REFLECT_INLINE(cls)
#define SAVE_INSTANTIATE(cls, Archive)
auto try_save(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool
#define LOAD_INSTANTIATE(cls, Archive)
auto try_load(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool