WsComponentPool/QtConsoleApplication1/main.cpp

55 lines
1.1 KiB
C++
Raw Permalink Normal View History

2025-09-11 22:36:56 +00:00
#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();
}