mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-13 23:58:18 +07:00
fix some starter params
This commit is contained in:
@@ -62,7 +62,7 @@ namespace e2d
|
||||
|
||||
class engine::debug_parameters {
|
||||
public:
|
||||
debug_parameters& log_filename(str_view value);
|
||||
debug_parameters& log_filename(str value) noexcept;
|
||||
debug_parameters& file_logging(bool value) noexcept;
|
||||
debug_parameters& console_logging(bool value) noexcept;
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace e2d
|
||||
|
||||
class engine::window_parameters {
|
||||
public:
|
||||
window_parameters& caption(str_view value);
|
||||
window_parameters& caption(str value) noexcept;
|
||||
window_parameters& size(const v2u& value) noexcept;
|
||||
window_parameters& vsync(bool value) noexcept;
|
||||
window_parameters& resizable(bool value) noexcept;
|
||||
@@ -123,16 +123,16 @@ namespace e2d
|
||||
class engine::parameters {
|
||||
public:
|
||||
parameters() = delete;
|
||||
parameters(str_view game_name, str_view company_name);
|
||||
parameters(str game_name, str company_name) noexcept;
|
||||
|
||||
parameters& game_name(str_view value);
|
||||
parameters& company_name(str_view value);
|
||||
parameters& game_name(str value) noexcept;
|
||||
parameters& company_name(str value) noexcept;
|
||||
parameters& without_audio(bool value);
|
||||
parameters& without_network(bool value);
|
||||
parameters& without_graphics(bool value);
|
||||
parameters& debug_params(const debug_parameters& value);
|
||||
parameters& window_params(const window_parameters& value);
|
||||
parameters& timer_params(const timer_parameters& value);
|
||||
parameters& debug_params(debug_parameters value) noexcept;
|
||||
parameters& window_params(window_parameters value) noexcept;
|
||||
parameters& timer_params(timer_parameters value) noexcept;
|
||||
|
||||
str& game_name() noexcept;
|
||||
str& company_name() noexcept;
|
||||
@@ -145,9 +145,9 @@ namespace e2d
|
||||
|
||||
const str& game_name() const noexcept;
|
||||
const str& company_name() const noexcept;
|
||||
const bool& without_audio() const noexcept;
|
||||
const bool& without_network() const noexcept;
|
||||
const bool& without_graphics() const noexcept;
|
||||
bool without_audio() const noexcept;
|
||||
bool without_network() const noexcept;
|
||||
bool without_graphics() const noexcept;
|
||||
const debug_parameters& debug_params() const noexcept;
|
||||
const window_parameters& window_params() const noexcept;
|
||||
const timer_parameters& timer_params() const noexcept;
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace e2d
|
||||
|
||||
class library final : public module<library> {
|
||||
public:
|
||||
library(const url& root, deferrer& deferrer);
|
||||
library(url root);
|
||||
~library() noexcept final;
|
||||
|
||||
const url& root() const noexcept;
|
||||
@@ -101,7 +101,6 @@ namespace e2d
|
||||
void wait_all_loading_assets_() noexcept;
|
||||
private:
|
||||
url root_;
|
||||
deferrer& deferrer_;
|
||||
std::atomic<bool> cancelled_{false};
|
||||
private:
|
||||
mutable asset_cache cache_;
|
||||
|
||||
@@ -44,9 +44,8 @@ namespace e2d
|
||||
// library
|
||||
//
|
||||
|
||||
inline library::library(const url& root, deferrer& deferrer)
|
||||
: root_(root)
|
||||
, deferrer_(deferrer) {}
|
||||
inline library::library(url root)
|
||||
: root_(std::move(root)) {}
|
||||
|
||||
inline library::~library() noexcept {
|
||||
cancelled_.store(true);
|
||||
@@ -73,7 +72,7 @@ namespace e2d
|
||||
template < typename Asset >
|
||||
typename Asset::load_result library::load_main_asset(str_view address) const {
|
||||
auto p = load_main_asset_async<Asset>(address);
|
||||
deferrer_.active_safe_wait_promise(p);
|
||||
the<deferrer>().active_safe_wait_promise(p);
|
||||
return p.get_or_default(nullptr);
|
||||
}
|
||||
|
||||
@@ -146,7 +145,7 @@ namespace e2d
|
||||
template < typename Asset, typename Nested >
|
||||
typename Nested::load_result library::load_asset(str_view address) const {
|
||||
auto p = load_asset_async<Asset, Nested>(address);
|
||||
deferrer_.active_safe_wait_promise(p);
|
||||
the<deferrer>().active_safe_wait_promise(p);
|
||||
return p.get_or_default(nullptr);
|
||||
}
|
||||
|
||||
@@ -210,7 +209,7 @@ namespace e2d
|
||||
}
|
||||
const auto loading_asset_copy = loading_assets_.back();
|
||||
lock.unlock();
|
||||
loading_asset_copy->wait(deferrer_);
|
||||
loading_asset_copy->wait(the<deferrer>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace e2d
|
||||
class application;
|
||||
using application_uptr = std::unique_ptr<application>;
|
||||
public:
|
||||
class library_parameters;
|
||||
class parameters;
|
||||
public:
|
||||
starter(int argc, char *argv[], const parameters& params);
|
||||
@@ -41,6 +42,19 @@ namespace e2d
|
||||
virtual bool on_should_close();
|
||||
};
|
||||
|
||||
//
|
||||
// starter::library_parameters
|
||||
//
|
||||
|
||||
class starter::library_parameters {
|
||||
public:
|
||||
library_parameters& root(url value) noexcept;
|
||||
url& root() noexcept;
|
||||
const url& root() const noexcept;
|
||||
private:
|
||||
url root_{"resources://bin/library"};
|
||||
};
|
||||
|
||||
//
|
||||
// starter::parameters
|
||||
//
|
||||
@@ -48,19 +62,19 @@ namespace e2d
|
||||
class starter::parameters {
|
||||
public:
|
||||
parameters() = delete;
|
||||
parameters(const engine::parameters& engine_params);
|
||||
parameters(engine::parameters engine_params) noexcept;
|
||||
|
||||
parameters& library_root(const url& value);
|
||||
parameters& engine_params(const engine::parameters& value);
|
||||
parameters& engine_params(engine::parameters value) noexcept;
|
||||
parameters& library_params(library_parameters value) noexcept;
|
||||
|
||||
url& library_root() noexcept;
|
||||
engine::parameters& engine_params() noexcept;
|
||||
library_parameters& library_params() noexcept;
|
||||
|
||||
const url& library_root() const noexcept;
|
||||
const engine::parameters& engine_params() const noexcept;
|
||||
const library_parameters& library_params() const noexcept;
|
||||
private:
|
||||
url library_root_{"resources://bin/library"};
|
||||
engine::parameters engine_params_;
|
||||
library_parameters library_params_;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -67,8 +67,8 @@ namespace e2d
|
||||
// engine::debug_parameters
|
||||
//
|
||||
|
||||
engine::debug_parameters& engine::debug_parameters::log_filename(str_view value) {
|
||||
log_filename_ = value;
|
||||
engine::debug_parameters& engine::debug_parameters::log_filename(str value) noexcept {
|
||||
log_filename_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -120,8 +120,8 @@ namespace e2d
|
||||
// engine::window_parameters
|
||||
//
|
||||
|
||||
engine::window_parameters& engine::window_parameters::caption(str_view value) {
|
||||
caption_ = value;
|
||||
engine::window_parameters& engine::window_parameters::caption(str value) noexcept {
|
||||
caption_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -169,17 +169,17 @@ namespace e2d
|
||||
// engine::parameters
|
||||
//
|
||||
|
||||
engine::parameters::parameters(str_view game_name, str_view company_name)
|
||||
: game_name_(game_name)
|
||||
, company_name_(company_name) {}
|
||||
engine::parameters::parameters(str game_name, str company_name) noexcept
|
||||
: game_name_(std::move(game_name))
|
||||
, company_name_(std::move(company_name)) {}
|
||||
|
||||
engine::parameters& engine::parameters::game_name(str_view value) {
|
||||
game_name_ = value;
|
||||
engine::parameters& engine::parameters::game_name(str value) noexcept {
|
||||
game_name_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
engine::parameters& engine::parameters::company_name(str_view value) {
|
||||
company_name_ = value;
|
||||
engine::parameters& engine::parameters::company_name(str value) noexcept {
|
||||
company_name_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -198,18 +198,18 @@ namespace e2d
|
||||
return *this;
|
||||
}
|
||||
|
||||
engine::parameters& engine::parameters::debug_params(const debug_parameters& value) {
|
||||
debug_params_ = value;
|
||||
engine::parameters& engine::parameters::debug_params(debug_parameters value) noexcept {
|
||||
debug_params_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
engine::parameters& engine::parameters::window_params(const window_parameters& value) {
|
||||
window_params_ = value;
|
||||
engine::parameters& engine::parameters::window_params(window_parameters value) noexcept {
|
||||
window_params_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
engine::parameters& engine::parameters::timer_params(const timer_parameters& value) {
|
||||
timer_params_ = value;
|
||||
engine::parameters& engine::parameters::timer_params(timer_parameters value) noexcept {
|
||||
timer_params_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -253,15 +253,15 @@ namespace e2d
|
||||
return company_name_;
|
||||
}
|
||||
|
||||
const bool& engine::parameters::without_audio() const noexcept {
|
||||
bool engine::parameters::without_audio() const noexcept {
|
||||
return without_audio_;
|
||||
}
|
||||
|
||||
const bool& engine::parameters::without_network() const noexcept {
|
||||
bool engine::parameters::without_network() const noexcept {
|
||||
return without_network_;
|
||||
}
|
||||
|
||||
const bool& engine::parameters::without_graphics() const noexcept {
|
||||
bool engine::parameters::without_graphics() const noexcept {
|
||||
return without_graphics_;
|
||||
}
|
||||
|
||||
|
||||
@@ -116,46 +116,65 @@ namespace e2d
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// starter::library_parameters
|
||||
//
|
||||
|
||||
starter::library_parameters& starter::library_parameters::root(url value) noexcept {
|
||||
root_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
url& starter::library_parameters::root() noexcept {
|
||||
return root_;
|
||||
}
|
||||
|
||||
const url& starter::library_parameters::root() const noexcept {
|
||||
return root_;
|
||||
}
|
||||
|
||||
//
|
||||
// starter::parameters
|
||||
//
|
||||
|
||||
starter::parameters::parameters(const engine::parameters& engine_params)
|
||||
: engine_params_(engine_params) {}
|
||||
starter::parameters::parameters(engine::parameters engine_params) noexcept
|
||||
: engine_params_(std::move(engine_params)) {}
|
||||
|
||||
starter::parameters& starter::parameters::library_root(const url& value) {
|
||||
library_root_ = value;
|
||||
starter::parameters& starter::parameters::engine_params(engine::parameters value) noexcept {
|
||||
engine_params_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
starter::parameters& starter::parameters::engine_params(const engine::parameters& value) {
|
||||
engine_params_ = value;
|
||||
starter::parameters& starter::parameters::library_params(library_parameters value) noexcept {
|
||||
library_params_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
url& starter::parameters::library_root() noexcept {
|
||||
return library_root_;
|
||||
}
|
||||
|
||||
engine::parameters& starter::parameters::engine_params() noexcept {
|
||||
return engine_params_;
|
||||
}
|
||||
|
||||
const url& starter::parameters::library_root() const noexcept {
|
||||
return library_root_;
|
||||
starter::library_parameters& starter::parameters::library_params() noexcept {
|
||||
return library_params_;
|
||||
}
|
||||
|
||||
const engine::parameters& starter::parameters::engine_params() const noexcept {
|
||||
return engine_params_;
|
||||
}
|
||||
|
||||
const starter::library_parameters& starter::parameters::library_params() const noexcept {
|
||||
return library_params_;
|
||||
}
|
||||
|
||||
//
|
||||
// starter
|
||||
//
|
||||
|
||||
starter::starter(int argc, char *argv[], const parameters& params) {
|
||||
safe_module_initialize<engine>(argc, argv, params.engine_params());
|
||||
safe_module_initialize<luasol>();
|
||||
safe_module_initialize<engine>(
|
||||
argc, argv,
|
||||
params.engine_params());
|
||||
|
||||
safe_module_initialize<factory>()
|
||||
.register_component<actor>("actor")
|
||||
.register_component<behaviour>("behaviour")
|
||||
@@ -172,7 +191,12 @@ namespace e2d
|
||||
.register_component<spine_player_cmd>("spine_player_cmd")
|
||||
.register_component<spine_player_evt>("spine_player_evt")
|
||||
.register_component<sprite_renderer>("sprite_renderer");
|
||||
safe_module_initialize<library>(params.library_root(), the<deferrer>());
|
||||
|
||||
safe_module_initialize<library>(
|
||||
params.library_params().root());
|
||||
|
||||
safe_module_initialize<luasol>();
|
||||
|
||||
safe_module_initialize<world>();
|
||||
}
|
||||
|
||||
@@ -180,9 +204,9 @@ namespace e2d
|
||||
the<luasol>().collect_garbage();
|
||||
|
||||
modules::shutdown<world>();
|
||||
modules::shutdown<luasol>();
|
||||
modules::shutdown<library>();
|
||||
modules::shutdown<factory>();
|
||||
modules::shutdown<luasol>();
|
||||
modules::shutdown<engine>();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user