MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / create_test_scene

Function create_test_scene

samples/application/game/src/game_module.cpp:339–418  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

337}
338
339void create_test_scene(SRendererId renderer)
340{
341 // allocate 100 movable cubes
342 auto renderableT_builder = make_zeroed<sugoi::type_builder_t>();
343 renderableT_builder
344 .with<skr_translation_comp_t, skr_rotation_comp_t, skr_scale_comp_t>()
345 .with<skr_index_comp_t, skr_movement_comp_t>()
346 .with<skr_render_effect_t>()
347 .with(SUGOI_COMPONENT_GUID);
348 // allocate renderable
349 auto renderableT = make_zeroed<sugoi_entity_type_t>();
350 renderableT.type = renderableT_builder.build();
351 uint32_t init_idx = 0;
352 auto primSetup = [&](sugoi_chunk_view_t* view) {
353 auto translations = sugoi::get_owned_rw<skr_translation_comp_t>(view);
354 auto rotations = sugoi::get_owned_rw<skr_rotation_comp_t>(view);
355 auto scales = sugoi::get_owned_rw<skr_scale_comp_t>(view);
356 auto indices = sugoi::get_owned_rw<skr_index_comp_t>(view);
357 auto movements = sugoi::get_owned_rw<skr_movement_comp_t>(view);
358 auto states = sugoi::get_owned_rw<game::anim_state_t>(view);
359 auto guids = (skr_guid_t*)sugoiV_get_owned_ro(view, SUGOI_COMPONENT_GUID);
360 for (uint32_t i = 0; i < view->count; i++)
361 {
362 if (guids)
363 sugoi_make_guid(&guids[i]);
364 if (movements)
365 {
366 translations[i].value = { 0.f, 0.f, 0.f };
367 rotations[i].euler = { 0.f, 0.f, 0.f };
368 scales[i].value = { 8.f, 8.f, 8.f };
369 if (indices) indices[i].value = init_idx++;
370 }
371 else
372 {
373 translations[i].value = { 0.f, 30.f, -10.f };
374 rotations[i].euler = { 90.f, 0.f, 0.f };
375 scales[i].value = { .25f, .25f, .25f };
376 }
377 if (states)
378 {
379 using namespace skr::guid::literals;
380 states[i].animation_resource = u8"83c0db0b-08cd-4951-b1c3-65c2008d0113"_guid;
381 states[i].animation_resource.resolve(true, renderer->get_sugoi_storage());
382 }
383 }
384 if (auto feature_arrs = sugoiV_get_owned_rw(view, sugoi_id_of<skr_render_effect_t>::get()))
385 {
386 if (movements)
387 skr_render_effect_attach(renderer, view, u8"ForwardEffect");
388 else
389 skr_render_effect_attach(renderer, view, u8"ForwardEffectSkin");
390 }
391 };
392 sugoiS_allocate_type(renderer->get_sugoi_storage(), &renderableT, 512, SUGOI_LAMBDA(primSetup));
393
394 SKR_LOG_DEBUG(u8"Create Scene 0!");
395
396 // allocate 1 player entity

Callers 1

main_module_execMethod · 0.70

Calls 9

sugoiV_get_owned_roFunction · 0.85
sugoi_make_guidFunction · 0.85
sugoiV_get_owned_rwFunction · 0.85
skr_render_effect_attachFunction · 0.85
sugoiS_allocate_typeFunction · 0.85
getFunction · 0.50
withMethod · 0.45
buildMethod · 0.45
resolveMethod · 0.45

Tested by

no test coverage detected