14 [](
const entt::meta_any& obj)
16 auto data = obj.try_cast<
light>();
24 [](
const entt::meta_any& obj)
26 auto data = obj.try_cast<
light>();
34 [](
const entt::meta_any& obj)
36 auto data = obj.try_cast<
light>();
45 [](
const entt::meta_any& obj)
47 auto data = obj.try_cast<
light>();
55 [](
const entt::meta_any& obj)
57 auto data = obj.try_cast<
light>();
66 [](
const entt::meta_any& obj)
68 auto data = obj.try_cast<
light>();
77 [](
const entt::meta_any& obj)
79 auto data = obj.try_cast<
light>();
87 entt::meta_factory<light::spot_shadowmap_params>{}
88 .type(
"light::spot_shadowmap_params"_hs)
94 entt::meta_factory<light::spot>{}
95 .type(
"light::spot"_hs)
100 .data<&light::spot::set_range, &light::spot::get_range>(
"range"_hs)
107 .data<&light::spot::set_inner_angle, &light::spot::get_inner_angle>(
"inner_angle"_hs)
116 .data<&light::spot::set_outer_angle, &light::spot::get_outer_angle>(
"outer_angle"_hs)
126 entt::meta_factory<light::point_shadowmap_params>{}
127 .type(
"light::point_shadowmap_params"_hs)
132 .data<&light::point_shadowmap_params::fov_x_adjust>(
"fov_x_adjust"_hs)
141 .data<&light::point_shadowmap_params::fov_y_adjust>(
"fov_y_adjust"_hs)
150 .data<&light::point_shadowmap_params::stencil_pack>(
"stencil_pack"_hs)
157 entt::meta_factory<light::point>{}
163 .data<&light::point::range>(
"range"_hs)
170 .data<&light::point::exponent_falloff>(
"exponent_falloff"_hs)
176 entt::attribute{
"tooltip",
"The falloff factor nearing the range edge."},
179 entt::meta_factory<light::directional_shadowmap_params>{}
180 .type(
"light::directional_shadowmap_params"_hs)
185 .data<&light::directional_shadowmap_params::num_splits>(
"splits"_hs)
193 .data<&light::directional_shadowmap_params::split_distribution>(
"distribution"_hs)
202 .data<&light::directional_shadowmap_params::stabilize>(
"stabilize"_hs)
209 entt::meta_factory<light::directional>{}
210 .type(
"light::directional"_hs)
216 entt::meta_factory<light_type>{}
217 .type(
"light_type"_hs)
222 .data<light_type::spot>(
"spot"_hs)
227 .data<light_type::point>(
"point"_hs)
232 .data<light_type::directional>(
"directional"_hs)
238 entt::meta_factory<sm_depth>{}
244 .data<sm_depth::invz>(
"invz"_hs)
249 .data<sm_depth::linear>(
"linear"_hs)
255 entt::meta_factory<sm_impl>{}
261 .data<sm_impl::hard>(
"hard"_hs)
266 .data<sm_impl::pcf>(
"pcf"_hs)
271 .data<sm_impl::pcss>(
"pcss"_hs)
276 .data<sm_impl::vsm>(
"vsm"_hs)
281 .data<sm_impl::esm>(
"esm"_hs)
287 entt::meta_factory<sm_resolution>{}
288 .type(
"sm_resolution"_hs)
293 .data<sm_resolution::low>(
"low"_hs)
298 .data<sm_resolution::medium>(
"medium"_hs)
303 .data<sm_resolution::high>(
"high"_hs)
308 .data<sm_resolution::very_high>(
"very_high"_hs)
314 entt::meta_factory<light::shadowmap_params>{}
315 .type(
"light::shadowmap_params"_hs)
320 .data<&light::shadowmap_params::type>(
"type"_hs)
326 .data<&light::shadowmap_params::depth>(
"depth"_hs)
332 .data<&light::shadowmap_params::resolution>(
"resolution"_hs)
338 .data<&light::shadowmap_params::bias>(
"bias"_hs)
347 .data<&light::shadowmap_params::normal_bias>(
"normal_bias"_hs)
356 .data<&light::shadowmap_params::near_plane>(
"near_plane"_hs)
364 .data<&light::shadowmap_params::far_plane>(
"far_plane"_hs)
372 .data<&light::shadowmap_params::show_coverage>(
"show_coverage"_hs)
380 entt::meta_factory<light>{}
386 .data<&light::color>(
"color"_hs)
391 .data<&light::intensity>(
"intensity"_hs)
396 .data<&light::ambient_intensity>(
"ambient_intensity"_hs)
404 .data<&light::type>(
"type"_hs)
409 .data<&light::directional_data>(
"directional_data"_hs)
416 .data<&light::point_data>(
"point_data"_hs)
423 .data<&light::spot_data>(
"spot_data"_hs)
430 .data<&light::casts_shadows>(
"casts_shadows"_hs)
435 .data<&light::shadow_params>(
"shadow_params"_hs)
442 .data<&light::directional_shadow_params>(
"directional_shadow_params"_hs)
446 entt::attribute{
"tooltip",
"Directional light shadow map parameters."},
447 entt::attribute{
"predicate", casts_shadows_and_is_directional_predicate_entt}
450 .data<&light::point_shadow_params>(
"point_shadow_params"_hs)
455 entt::attribute{
"predicate", casts_shadows_and_is_point_predicate_entt}
458 .data<&light::spot_shadow_params>(
"spot_shadow_params"_hs)
532 try_save(ar, ser20::make_nvp(
"type", obj.type));
533 try_save(ar, ser20::make_nvp(
"intensity", obj.intensity));
534 try_save(ar, ser20::make_nvp(
"ambient_intensity", obj.ambient_intensity));
535 try_save(ar, ser20::make_nvp(
"color", obj.color));
536 try_save(ar, ser20::make_nvp(
"casts_shadows", obj.casts_shadows));
538 try_save(ar, ser20::make_nvp(
"shadow_params", obj.shadow_params));
542 try_save(ar, ser20::make_nvp(
"spot_data", obj.spot_data));
543 try_save(ar, ser20::make_nvp(
"spot_shadow_params", obj.spot_shadow_params));
547 try_save(ar, ser20::make_nvp(
"point_data", obj.point_data));
548 try_save(ar, ser20::make_nvp(
"point_shadow_params", obj.point_shadow_params));
552 try_save(ar, ser20::make_nvp(
"directional_data", obj.directional_data));
553 try_save(ar, ser20::make_nvp(
"directional_shadow_params", obj.directional_shadow_params));
621 try_load(ar, ser20::make_nvp(
"type", obj.type));
622 try_load(ar, ser20::make_nvp(
"intensity", obj.intensity));
623 try_load(ar, ser20::make_nvp(
"ambient_intensity", obj.ambient_intensity));
624 try_load(ar, ser20::make_nvp(
"color", obj.color));
625 try_load(ar, ser20::make_nvp(
"casts_shadows", obj.casts_shadows));
626 try_load(ar, ser20::make_nvp(
"shadow_params", obj.shadow_params));
630 try_load(ar, ser20::make_nvp(
"spot_data", obj.spot_data));
631 try_load(ar, ser20::make_nvp(
"spot_shadow_params", obj.spot_shadow_params));
635 try_load(ar, ser20::make_nvp(
"point_data", obj.point_data));
636 try_load(ar, ser20::make_nvp(
"point_shadow_params", obj.point_shadow_params));
640 try_load(ar, ser20::make_nvp(
"directional_data", obj.directional_data));
641 try_load(ar, ser20::make_nvp(
"directional_shadow_params", obj.directional_shadow_params));