This commit is contained in:
Martin Slachta
2026-07-18 14:31:15 +02:00
commit a04f0dc262
3343 changed files with 1140208 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
#define CR_HOST
#include <gtest/gtest.h>
#include <cr.h>
#include "../types.h"
TEST(Lib, View) {
view_type view{};
cr_plugin ctx;
cr_plugin_load(ctx, PLUGIN);
ctx.userdata = &view;
cr_plugin_update(ctx);
ASSERT_EQ(ctx.userdata, nullptr);
cr_plugin_close(ctx);
}
+19
View File
@@ -0,0 +1,19 @@
#include <cr.h>
#include "../types.h"
CR_EXPORT int cr_main(cr_plugin *ctx, cr_op operation) {
switch(operation) {
case CR_STEP: {
// unset filter fallback should not be accessible across boundaries
auto &view = *static_cast<view_type *>(ctx->userdata);
ctx->userdata = view.storage<1u>();
} break;
case CR_CLOSE:
case CR_LOAD:
case CR_UNLOAD:
// nothing to do here, this is only a test.
break;
}
return 0;
}
+10
View File
@@ -0,0 +1,10 @@
#include <entt/core/attribute.h>
#include "../types.h"
ENTT_API const void *filter(const view_type &view) {
// forces the creation of all symbols for the view type
[[maybe_unused]] const view_type other{};
// unset filter fallback should not be accessible across boundaries
return view.storage<1u>();
}
+12
View File
@@ -0,0 +1,12 @@
#include <gtest/gtest.h>
#include <entt/core/attribute.h>
#include "../types.h"
ENTT_API const void *filter(const view_type &);
TEST(Lib, View) {
view_type view{};
const void *storage = filter(view);
ASSERT_EQ(storage, nullptr);
}
+10
View File
@@ -0,0 +1,10 @@
#ifndef ENTT_LIB_VIEW_TYPE_H
#define ENTT_LIB_VIEW_TYPE_H
#include <entt/entity/storage.hpp>
#include <entt/entity/view.hpp>
#include "../../common/empty.h"
using view_type = entt::basic_view<entt::get_t<entt::storage<test::empty>>, entt::exclude_t<entt::storage<test::empty>>>;
#endif