55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
|
|
#include <QtCore/QCoreApplication>
|
||
|
|
#include <ecs_memorypool.h>
|
||
|
|
|
||
|
|
struct ComponentT {
|
||
|
|
double speed_x = 50, speed_y = 55, speed_z = 7;
|
||
|
|
|
||
|
|
static uint64_t typeCode() {
|
||
|
|
return __LINE__;
|
||
|
|
}
|
||
|
|
|
||
|
|
static uint16_t typeSize() {
|
||
|
|
return sizeof(ComponentT);
|
||
|
|
}
|
||
|
|
|
||
|
|
void loadFrom(const QJsonObject& o) {}
|
||
|
|
void saveTo(QJsonObject& o) {}
|
||
|
|
};
|
||
|
|
struct ComponentM {
|
||
|
|
double speed_x = 50, speed_y = 55, speed_z = 7;
|
||
|
|
|
||
|
|
static uint64_t typeCode() {
|
||
|
|
return __LINE__;
|
||
|
|
}
|
||
|
|
|
||
|
|
static uint16_t typeSize() {
|
||
|
|
return sizeof(ComponentM);
|
||
|
|
}
|
||
|
|
|
||
|
|
void loadFrom(const QJsonObject& o) {}
|
||
|
|
void saveTo(QJsonObject& o) {}
|
||
|
|
};
|
||
|
|
|
||
|
|
int main(int argc, char *argv[])
|
||
|
|
{
|
||
|
|
QCoreApplication app(argc, argv);
|
||
|
|
|
||
|
|
ComponentT o;
|
||
|
|
|
||
|
|
ECSMemoryPool pool;
|
||
|
|
pool.registerComponent<ComponentT>(o);
|
||
|
|
pool.registerComponent<ComponentM>(ComponentM());
|
||
|
|
|
||
|
|
auto refer1 = pool.generate<ComponentT>();
|
||
|
|
auto refer2 = pool.generate<ComponentT>();
|
||
|
|
auto refer3 = pool.generate<ComponentT>();
|
||
|
|
auto mm = refer2;
|
||
|
|
|
||
|
|
auto item = *mm.dataLock();
|
||
|
|
mm.unlock();
|
||
|
|
|
||
|
|
auto adf = pool.generate<ComponentM>();
|
||
|
|
|
||
|
|
return app.exec();
|
||
|
|
}
|