test triangle
This commit is contained in:
71
src/example_apps/TriangleEmbed/TriangleEmbed.cpp
Normal file
71
src/example_apps/TriangleEmbed/TriangleEmbed.cpp
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
#include "TriangleEmbed.h"
|
||||||
|
|
||||||
|
bool TriangleEmbed::onEvent(const Archimedes::Event& event) {
|
||||||
|
|
||||||
|
unsigned int type = getEventType(event);
|
||||||
|
|
||||||
|
if(type == getEventType(Archimedes::DoLoadModuleEvent())) {
|
||||||
|
|
||||||
|
Archimedes::DoLoadModuleEvent& e = (Archimedes::DoLoadModuleEvent&) event;
|
||||||
|
|
||||||
|
startModule(e.module);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} else if(type == getEventType(Archimedes::DoUnloadModuleEvent())) {
|
||||||
|
|
||||||
|
Archimedes::DoUnloadModuleEvent& e = (Archimedes::DoUnloadModuleEvent&) event;
|
||||||
|
|
||||||
|
stopModule(e.module);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} else if(type == getEventType(Archimedes::LoadModuleEvent())) {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else if(type == getEventType(Archimedes::UnloadModuleEvent())) {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else if(type == getEventType(Archimedes::AnonymousEvent())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TriangleEmbed::run() {
|
||||||
|
|
||||||
|
for(std::string m : runOrder) {
|
||||||
|
modules[m]->onLoad();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Main loop
|
||||||
|
while (!done && !runOrder.empty()) {
|
||||||
|
|
||||||
|
for(std::string m : runOrder) {
|
||||||
|
modules[m]->run();
|
||||||
|
}
|
||||||
|
|
||||||
|
handleEvents();
|
||||||
|
|
||||||
|
for(std::string m : toClose) {
|
||||||
|
unload(m);
|
||||||
|
}
|
||||||
|
toClose.clear();
|
||||||
|
|
||||||
|
for(auto m : toOpen) {
|
||||||
|
static Archimedes::Module* n;
|
||||||
|
if(std::holds_alternative<std::string>(m)) {
|
||||||
|
n = load(std::get<std::string>(m));
|
||||||
|
} else {
|
||||||
|
n = load(std::get<Archimedes::Module*>(m));
|
||||||
|
}
|
||||||
|
if(n) {
|
||||||
|
n->onLoad();
|
||||||
|
n = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toOpen.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
29
src/example_apps/TriangleEmbed/TriangleEmbed.h
Normal file
29
src/example_apps/TriangleEmbed/TriangleEmbed.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#define ENTRYPOINT
|
||||||
|
#include "Archimedes.h"
|
||||||
|
|
||||||
|
#include "modules/Archimedes-Modules/TestTriangle/TestTriangle.h"
|
||||||
|
|
||||||
|
class TriangleEmbed : public Archimedes::App {
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
void printHelp() override {};
|
||||||
|
|
||||||
|
bool onEvent(const Archimedes::Event&) override;
|
||||||
|
|
||||||
|
public:
|
||||||
|
TriangleEmbed() {
|
||||||
|
Archimedes::Module* m = (Archimedes::Module*) new TestTriangle(Get(), nullptr);
|
||||||
|
|
||||||
|
load(m);
|
||||||
|
};
|
||||||
|
~TriangleEmbed() {};
|
||||||
|
|
||||||
|
void handleArgs(const int& argc, char* argv[]) override {};
|
||||||
|
|
||||||
|
void run() override;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#define APP_TYPE TriangleEmbed
|
||||||
|
#include "endApp.h"
|
||||||
Reference in New Issue
Block a user