no src
This commit is contained in:
97
modules/WindowModule/WindowModule.cpp
Normal file
97
modules/WindowModule/WindowModule.cpp
Normal file
@@ -0,0 +1,97 @@
|
||||
#include "WindowModule.h"
|
||||
|
||||
WindowModule::~WindowModule() {
|
||||
if(app) {
|
||||
app->unregisterEvent(Archimedes::ResizeWindowEvent());
|
||||
app->unregisterEvent(Archimedes::CloseWindowEvent());
|
||||
app->unregisterEvent(Archimedes::KeyPressedWindowEvent());
|
||||
app->unregisterEvent(Archimedes::KeyReleasedWindowEvent());
|
||||
app->unregisterEvent(Archimedes::MouseButtonPressedWindowEvent());
|
||||
app->unregisterEvent(Archimedes::MouseButtonReleasedWindowEvent());
|
||||
app->unregisterEvent(Archimedes::ScrollWindowEvent());
|
||||
app->unregisterEvent(Archimedes::MouseMovedWindowEvent());
|
||||
app->unregisterEvent(Archimedes::FocusedWindowEvent());
|
||||
app->unregisterEvent(Archimedes::FocusLostWindowEvent());
|
||||
app->unregisterEvent(Archimedes::MovedWindowEvent());
|
||||
|
||||
if(renderer) {
|
||||
renderer->getCmdList().clear();
|
||||
delete renderer;
|
||||
}
|
||||
|
||||
if(window)
|
||||
releaseWindow(window);
|
||||
}
|
||||
}
|
||||
|
||||
void WindowModule::onLoad() {
|
||||
|
||||
app->registerEvent(Archimedes::ResizeWindowEvent());
|
||||
app->registerEvent(Archimedes::CloseWindowEvent());
|
||||
app->registerEvent(Archimedes::KeyPressedWindowEvent());
|
||||
app->registerEvent(Archimedes::KeyReleasedWindowEvent());
|
||||
app->registerEvent(Archimedes::MouseButtonPressedWindowEvent());
|
||||
app->registerEvent(Archimedes::MouseButtonReleasedWindowEvent());
|
||||
app->registerEvent(Archimedes::ScrollWindowEvent());
|
||||
app->registerEvent(Archimedes::MouseMovedWindowEvent());
|
||||
app->registerEvent(Archimedes::FocusedWindowEvent());
|
||||
app->registerEvent(Archimedes::FocusLostWindowEvent());
|
||||
app->registerEvent(Archimedes::MovedWindowEvent());
|
||||
|
||||
renderer = new Archimedes::Renderer();
|
||||
}
|
||||
|
||||
void WindowModule::run() {
|
||||
|
||||
if(window)
|
||||
window->doFrame();
|
||||
else
|
||||
app->emitEvent(new Archimedes::DoUnloadModuleEvent(name));
|
||||
}
|
||||
|
||||
bool WindowModule::onEvent(const Archimedes::Event& e) {
|
||||
|
||||
unsigned int type = app->getEventType(e);
|
||||
|
||||
if(type == app->getEventType(Archimedes::ResizeWindowEvent())) {
|
||||
Archimedes::ResizeWindowEvent& event = (Archimedes::ResizeWindowEvent&) e;
|
||||
renderer->w = event.width;
|
||||
renderer->h = event.height;
|
||||
#if WINDOW == 2
|
||||
window->getWindowImpl().setSize(event.width, event.height);
|
||||
#endif
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::CloseWindowEvent())) {
|
||||
app->emitEvent(new Archimedes::DoUnloadModuleEvent(name));
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::KeyPressedWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::KeyReleasedWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::MouseButtonPressedWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::MouseButtonReleasedWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::ScrollWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::MouseMovedWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::FocusedWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::FocusLostWindowEvent())) {
|
||||
|
||||
return true;
|
||||
} else if(type == app->getEventType(Archimedes::MovedWindowEvent())) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user