#include #include #include #include "types.h" template struct entt::type_index {}; CR_EXPORT int cr_main(cr_plugin *ctx, cr_op operation) { switch (operation) { case CR_STEP: [ctx]() { auto ®istry = *static_cast(ctx->userdata); const auto position_view = registry.view(entt::exclude); registry.insert(position_view.begin(), position_view.end(), velocity{1., 1.}); registry.view().each([](auto &pos, auto &vel) { pos.x += static_cast(16 * vel.dx); pos.y += static_cast(16 * vel.dy); }); const auto tag_view = registry.view(); registry.destroy(tag_view.begin(), tag_view.end()); }(); break; case CR_CLOSE: case CR_LOAD: case CR_UNLOAD: // nothing to do here, this is only a test. break; } return 0; }