aquire and release
This commit is contained in:
@@ -95,14 +95,19 @@ namespace Archimedes {
|
||||
std::list<std::variant<std::string, Module*>> toOpen;
|
||||
|
||||
void handleEvents() {
|
||||
bool handled = false;
|
||||
static bool handled;
|
||||
while(!events.empty()) {
|
||||
|
||||
handled = false;
|
||||
|
||||
for(auto it = runOrder.rbegin(); it != runOrder.rend(); it++) {
|
||||
if(modules[*it]->onEvent(*events.front())) {
|
||||
|
||||
handled = modules[*it]->onEvent(*events.front());
|
||||
|
||||
if(handled) {
|
||||
Event* e = events.front();
|
||||
events.pop_front();
|
||||
delete e;
|
||||
handled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -110,7 +115,6 @@ namespace Archimedes {
|
||||
if(!handled) {
|
||||
std::cout << "Error: Unhandled Event: " << (std::string) *events.front() << std::endl;
|
||||
}
|
||||
handled = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,12 +18,14 @@ namespace Archimedes {
|
||||
|
||||
bool shouldClose() { return window.shouldClose(); }
|
||||
|
||||
void getSize(int& w, int& h) {
|
||||
window.getSize(w, h);
|
||||
}
|
||||
|
||||
void doFrame() {
|
||||
|
||||
window.pollEvents();
|
||||
|
||||
window.getSize(renderer->w, renderer->h);
|
||||
|
||||
renderer->render();
|
||||
|
||||
window.doFrame();
|
||||
|
||||
Reference in New Issue
Block a user