Implement UIs using RmlUi
This commit is contained in:
parent
8039b1276e
commit
7f37be386d
27 changed files with 1457 additions and 42 deletions
|
|
@ -7,6 +7,7 @@ export module rutile.core.engine;
|
|||
|
||||
import rutile.config;
|
||||
import rutile.core.render_server;
|
||||
import rutile.core.ui.ui_server;
|
||||
import wrappers.sdl;
|
||||
|
||||
export namespace rutile
|
||||
|
|
@ -21,11 +22,13 @@ export namespace rutile
|
|||
|
||||
sdl::Window window_;
|
||||
RenderServer render_server_;
|
||||
UIServer ui_server_;
|
||||
|
||||
// Private constructor
|
||||
Engine(sdl::Window&& window, sdl::Renderer&& renderer)
|
||||
: window_{std::move(window)},
|
||||
render_server_{std::move(renderer)}
|
||||
render_server_{std::move(renderer)},
|
||||
ui_server_{render_server_.get_renderer(), window_}
|
||||
{
|
||||
instantiated_ = true;
|
||||
}
|
||||
|
|
@ -56,12 +59,14 @@ export namespace rutile
|
|||
0
|
||||
);
|
||||
|
||||
// NOLINTBEGIN: "Allocated memory is leaked"
|
||||
return std::unique_ptr<Engine>{
|
||||
new Engine{
|
||||
std::move(sdl_window),
|
||||
std::move(sdl_renderer)
|
||||
}
|
||||
};
|
||||
// NOLINTEND
|
||||
}
|
||||
|
||||
bool keep_running() const
|
||||
|
|
@ -79,15 +84,24 @@ export namespace rutile
|
|||
return render_server_;
|
||||
}
|
||||
|
||||
// Handles an SDL event. Returns true if the event has been handled.
|
||||
bool handle_event(const sdl::Event* event)
|
||||
UIServer& get_ui_server()
|
||||
{
|
||||
if (event->type == sdl::EventType::Quit) {
|
||||
return ui_server_;
|
||||
}
|
||||
|
||||
// Handles an SDL event. Returns true if the event has been handled.
|
||||
bool handle_event(const sdl::Event& event)
|
||||
{
|
||||
if (event.type == sdl::EventTypes::Quit) {
|
||||
// Exit the application
|
||||
keep_running_ = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ui_server_.handle_event(event)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue