Files
panopainter/src/legacy_app_startup_services.cpp

118 lines
2.6 KiB
C++

#include "pch.h"
#include "legacy_app_startup_services.h"
#include "app.h"
#include "renderer_gl/opengl_capabilities.h"
#include "serializer.h"
#include "settings.h"
namespace pp::panopainter {
namespace {
class LegacyAppStartupServices final
: public pp::app::AppStartupServices
, public pp::app::AppStartupResourceServices {
public:
explicit LegacyAppStartupServices(App& app) noexcept
: app_(app)
{
}
void store_run_counter(int value) override
{
Settings::set("run_counter", Serializer::Integer(value));
LOG("run_counter %d", value);
}
void save_preferences() override
{
if (!Settings::save())
LOG("save preferences failed");
}
void start_timelapse_recording() override
{
app_.rec_start();
}
void apply_vr_controllers_enabled(bool enabled) override
{
app_.vr_controllers_enabled = enabled;
}
void show_license_warning() override
{
app_.message_box("License", "Could not validate this license, running in demo mode.");
}
void initialize_shaders() override
{
app_.initShaders();
}
void initialize_assets() override
{
app_.initAssets();
}
void initialize_layout() override
{
app_.initLayout();
}
void update_title() override
{
app_.title_update();
}
void create_ui_render_target(int width, int height) override
{
app_.uirtt.create(
width,
height,
-1,
static_cast<GLint>(pp::renderer::gl::rgba8_internal_format()),
true);
}
private:
App& app_;
};
} // namespace
pp::foundation::Status execute_legacy_app_startup_plan(
App& app,
const pp::app::AppStartupPlan& plan)
{
LegacyAppStartupServices services(app);
return pp::app::execute_app_startup_plan(plan, services);
}
pp::foundation::Status execute_legacy_app_startup_persistence_plan(
App& app,
const pp::app::AppStartupPlan& plan)
{
LegacyAppStartupServices services(app);
return pp::app::execute_app_startup_persistence_plan(plan, services);
}
pp::foundation::Status execute_legacy_app_startup_runtime_plan(
App& app,
const pp::app::AppStartupPlan& plan)
{
LegacyAppStartupServices services(app);
return pp::app::execute_app_startup_runtime_plan(plan, services);
}
pp::foundation::Status execute_legacy_app_startup_resources(
App& app,
const pp::app::AppStartupResourcePlan& plan)
{
LegacyAppStartupServices services(app);
return pp::app::execute_app_startup_resources(plan, services);
}
} // namespace pp::panopainter