initial
This commit is contained in:
+19
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||
}
|
||||
Vendored
+10
@@ -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
|
||||
Reference in New Issue
Block a user