- Started setting up a thread safe window manager
- Created thread & atomic structures
This commit is contained in:
@@ -29,25 +29,22 @@ platform::platform() {
|
||||
}
|
||||
|
||||
void platform::initialize() {
|
||||
if (wmanager) {
|
||||
return;
|
||||
}
|
||||
|
||||
logger::log(format("Initializing platform {}", get_type().name()));
|
||||
|
||||
display_server::entrylist_t display_servers = display_server::get_type_list();
|
||||
while (not display_servers.empty()) {
|
||||
display_server::entry it = display_servers.front();
|
||||
display_servers.pop();
|
||||
|
||||
unique_ptr<display_server> server = unique_ptr(it.ctor(this));
|
||||
server->connect();
|
||||
if (server->connected()) {
|
||||
logger::log(format("Selected {} for the display server.", server->get_type().name()));
|
||||
display = move(server);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Setup Window Manager
|
||||
wmanager = make_unique<window_manager>(this);
|
||||
wmanager->initialize();
|
||||
}
|
||||
|
||||
void platform::shutdown() {
|
||||
display.reset();
|
||||
|
||||
// Cleanup Window Manager
|
||||
wmanager->shutdown();
|
||||
wmanager.reset();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,14 +29,20 @@
|
||||
///
|
||||
|
||||
#include <fennec/platform/interface/window.h>
|
||||
#include <fennec/platform/interface/display_server.h>
|
||||
#include <fennec/renderers/interface/gfxsurface.h>
|
||||
#include <fennec/platform/interface/display_server.h>
|
||||
|
||||
namespace fennec
|
||||
{
|
||||
|
||||
window* window::get_parent() const {
|
||||
return server->get_window(cfg.parent);
|
||||
window::window(display_server* server, const config& conf, window* parent)
|
||||
: server(server), parent(parent)
|
||||
, cfg(conf), state(), root(nullptr) {
|
||||
state.mode = conf.mode;
|
||||
}
|
||||
|
||||
window::~window() {
|
||||
|
||||
}
|
||||
|
||||
void window::begin_frame() {
|
||||
|
||||
Reference in New Issue
Block a user